Phát triển ứng dụng di động: Các tính năng cần cân nhắc khi lựa chọn cách tiếp cận phát triển ứng dụng (Phần 1)
Điện thoại di động thông minh hiện đã trở thành vật dụng thiết yếu hàng ngày của hơn 3 tỷ người trên thế giới. Các thiết bị này cho phép người dùng có thể thực hiện ngày càng nhiều những hoạt động phức tạp trong công việc, giao tiếp, và các hoạt động vui chơi giải trí. Sự phát triển chóng mặt của các ứng dụng di động tạo áp lực lớn đối với đội ngũ phát triển phần mềm trong việc liên tục cải thiện năng lực thiết kế và chất lượng của sản phẩm.
Việc lựa chọn phương án phát triển ứng dụng di động phụ thuộc vào nhiều yếu tố trong đó có thời gian sản xuất, ngân sách của dự án, và hiệu suất của sản phẩm. Hiện nay, hai Hệ điều hành phổ biến nhất được sử dụng trên các thiết bị di động là Android và iOS và mỗi hệ điều hành sử dụng một nền tảng hạ tầng phát triển khác nhau. Do đó, một thách thức khác của các nhà cung cấp ứng dụng di động là phải đưa các giải pháp phù hợp cho tất cả các nền tảng khác nhau.
Bài viết này giới thiệu một số cách tiếp cận thường được sử dụng trong phát triển ứng dụng di động và các tính năng của sản phẩm cần phải được cân nhắc trước khi đưa ra phương án kỹ thuật tối ưu nhất cho sản phẩm.
Các cách tiếp cận phát triển phần mềm phổ biến:
A. Ứng dụng Native
Các ứng dụng Native được phát triển dành riêng cho một nền tảng nhất định do đó đã tối ưu hóa đối với các yêu cầu của từng nền tảng. Các ứng dụng này thường được phép truy cập vào tất cả các phần cứng của thiết bị như cảm ứng, camera, microphone, v.v. nên có thể sử dụng ngay cả khi không có kết nối Internet hoặc chạy nền. Ngoài ra, ứng dụng Native còn cho phép người dùng có những trải nghiệm tốt nhất khi sử dụng, phần UI sẽ đạt chuẩn như nguyên bản và ứng dụng thường chạy mượt mà, ít bị lỗi. Tuy nhiên, nếu yêu cầu ứng dụng này phải dùng được trên đa nền tảng, phương pháp phát triển này sẽ vô cùng tốn kém do code không thể được tái sử dụng và các nền tảng khác nhau sẽ có các yêu cầu khác nhau về kiểm thử, bảo trì và phân phối.
B. Ứng dụng web
Các ứng dụng web có thể dễ dàng mở trực tiếp từ bất kỳ trình duyệt nào cài đặt trên thiết bị. Quy trình phát triển các ứng dụng web trên điện thoại di động cũng tương tự như đối với ứng dụng trên máy tính với các công nghệ như HTML, CSS, Javascript. Lợi thế của ứng dụng web là nhà cung cấp có thể trực tiếp cập nhật các thay đổi nên người dùng sẽ luôn được sử dụng phiên bản mới nhất. Tuy nhiên do các hạn chế liên quan đến bảo mật khi chạy ứng dụng thông qua trình duyệt, hiệu suất của ứng dụng và trải nghiệm của người dùng có thể bị ảnh hưởng tiêu cực.
C. Ứng dụng Hybrid
Mặc dù được phát triển dựa trên các công cụ phát triển web (HTML, CSS, và Javascript), các ứng dụng này không được chạy trên trình duyệt mà được cài đặt trên thiết bị thông qua một web container nội bộ. Các ứng dụng Hybrid mang đến rất nhiều lợi ích như cho phép tái sử dụng code trên nhiều nền tảng khác nhau, được phép tiếp cận các phần cứng của thiết bị và được phân phối thông qua app store. Tuy nhiên những ứng dụng này có 2 nhược điểm lớn đó là không sử dụng các yếu tố UI nguyên bản và tốc độ xử lý chậm.

D. Ứng dụng Interpreted
Các ứng dụng Interpreted được xây dựng từ 1 dự án duy nhất. Phần lớn code được chuyển thành code theo nguyên bản, và phần còn lại sẽ được diễn dịch trong thời gian chạy ứng dụng. Các công nghệ thường được sử dụng cho ứng dụng này gồm Java, Ruby, XML. Lợi thế lớn nhất của ứng dụng này là giữ được giao diện nguyên bản, thân thiện với người sử dụng. Một số môi trường phát triển ứng dụng Interpreted phổ biến nhất là Appcelerator Titanium và NativeScript.
Appcelerator Titanium là một framework mã nguồn mở cho phép phát triển các ứng dụng di động trên iOS và Android. Ngôn ngữ lập trình là JavaScript và code sẽ được diễn dịch khi chạy ứng dụng theo hệ điều hành của ứng dụng. Khi sử dụng Titanium API, mỗi phần tử (element) của mã code JavaScript được gán cho phần tử gốc tương ứng. Do đó, Titanium API được xem như là cầu nối cung cấp các giao diện gốc cho người dùng.
NativeScript là một dự án mã nguồn mở dùng để xây dựng ứng dụng native sử dụng JavaScript hoặc TypeScript. Framework này cho phép tạo giao diện với các component gốc và truy cập các chức năng của thiết bị. Khi ứng dụng được biên dịch, một phần của code được dịch thành mã gốc, phần còn lại được diễn giải trong thời gian chạy.
E. Ứng dụng được tạo bởi cross-compilation
Các ứng dụng này được được biên dịch thành nguyên bản bằng cách tạo ra một phiên bản riêng cho mỗi nền tảng đích. Một số môi trường phát triển thường gặp với những ứng dụng này là Xamarin và Corona.
Xamarin cho phép tạo ra các ứng dụng native cho Android, iOS, và OS X, sử dụng chung mã code viết bằng C#. Các giao diện được lập trình chính xác cho từng nền tảng đích.
Corona là một framework đa nền tảng được sử dụng để phát triển các ứng dụng đa năng và game cho các nền tảng phổ biến như OS X, Windows, iOS, Android, Kindle, Windows Phone 8, Apple TV và Android TV. Việc lập trình được thực hiện với Lua, một ngôn ngữ kịch bản (scripting language) đơn giản. Khác với Xamarin, Corona không yêu cầu viết lại các giao diện cho mỗi nền tảng.
Nếu bạn muốn tìm hiểu thêm về các công nghệ đang được sử dụng tại Sioux, hãy liên hệ ngay với Sioux nhé!
#We together bring high-tech to life
Address: 10th Floor, Petrolimex Building, 122 2/9 Street, Danang, Vietnam
Email: jobs@sioux.asia
Phone: +84 236 3 888 756
Bài viết được dịch tóm tắt theo bài nghiên cứu Development Approaches for Mobile Applications: Comparative Analysis of Features của nhóm tác giả Lisandro Delia, Pablo Thomas, Leonardo Corbalan, Juan Fernandez Sosa, Alfonso Cuitiño, Germán Cáseres, Patricia Pesado