[CODEWELL] モバイルアプリケーション向けのおすすめフレームワーク
15/01/2018 1684
Sức mạnh của Smartphone nằm ở sự đa tiện ích từ những ứng dụng tích hợp trong một thiết bị, nhỏ gọn và cơ động. Phát triển Smartphone app đã tạo nên nhiều “tỷ phú trẻ” trong thời đại công nghệ 4.0 này. Nếu bạn muốn bắt đầu sự nghiệp với smartphone app thì đây sẽ là những thông tin cần thiết ban đầu để các bạn đi đúng và đi nhanh hơn!
Điều gì làm nên sức mạnh của Smartphone? Không chỉ là tính nhỏ gọn, cơ động, smartphone còn cực mạnh bởi các ứng dụng đa dạng và ngày càng được phát triển đa dạng, phục vụ bất kỳ nhu cầu nào của người dùng. Vậy nếu bạn yêu thích phát triển ứng dụng cho smartphone, bạn có biết các loại ứng dụng được phân loại như thế nào không? Bài viết dưới đây sẽ chia sẻ với các bạn không chỉ về phân loại theo ngôn ngữ lập trình mà còn đưa ra ưu nhược điểm của từng loại app với ngôn ngữ lập trình khác nhau.
Ứng dụng smartphone có thể phân làm 3 loại theo ngôn ngữ lập trình: Native App, Mobile Web Application, Hybrid App. Ta sẽ cùng tìm hiểu và so sánh các loại trên.
1. Native App:
Là những ứng dụng sử dụng công cụ lập trình, ngôn ngữ và framework của hệ thống do chính các hãng phân phối. Ví dụ như với iOS chúng ta dùng IDE là Xcode với iOS SDK sử dụng ngôn ngữ là Objective-C hoặc Swift, với Android thì dùng Android Studio sử dụng ngôn ngữ Java, WinPhone thì có VisualStudio sử dụng ngôn ngữ C#.
- Ưu điểm: Khi sử dụng ngôn ngữ gần với nhân của hệ điều hành nên chúng ta có thể sự dụng các tiện ích của hệ điều hành và phần cứng thiết bị mạnh mẽ nhất. Hiệu năng thực thi ứng dụng nhanh và hiệu quả. Không phụ thuộc vào bên thứ 3.
- Nhược điểm: Chỉ thực thi ứng dụng trên 1 nền tảng. Khi muốn phát triển trên nhiều nền tảng khác nhau thì mỗi hệ điều hành người lập trình phải viết riêng Native code cho nó, dẫn đến không nhất quán giữa các phiên bản ứng dụng, chi phí phát triển cao đòi hỏi lập trình viên phải thành thạo nhiều ngôn ngữ. Khi bảo trì nâng cấp sẽ mất nhiều thời gian do phải sửa chữa từng app trên từng hệ điều hành.
2. Mobile Web Application hoặc Responsive Web:
Là ứng dụng chạy trên nền web, được viết bằng các ngôn ngữ web như HTML5, CSS, Javascript hoặc jQuery Mobile. Về cơ bản, website sẽ có giao diện giống như app và nội dung được load từ web.
- Ưu điểm:
- Có thể chạy trên tất cả các trình duyệt mobile có hỗ trợ phên bản HTML và Javascript.
- Không cần cài đặt app trên máy. Chỉ cần viết 1 lần và cài đặt trên server, giảm chi phí và thời gian cho phát triển bảo trì năng cấp.
- Ngôn ngữ HTML và Javascript phổ biến và dễ tiếp cận với hầu hết các lập trình viên.
- Khi cập nhập phiên bản mới không cần phải phát triển lại qua SDK (Software Development Kit), chỉ cần cài đặt trên server và chờ được thông qua để lên store, gần như ngay lập tức.
- Nhược điểm:
- Mặc dù HTML5 có tính tương thích lớn nhưng vẫn phụ thuộc vào trình duyệt và nền tảng loại máy.
- Về hiệu năng, Web-app không thể chạy nhanh và mượt như Native App, không sử dụng hết được hiệu năng của nền tảng cung cấp. Ngoài ra, Web-app để sử dụng cần luôn duy trì trong điều kiện có mạng.
3. Hybrid Mobile App hay Framework Development
Là ứng dụng kết hợp những ưu điểm của cả Mobile Web App và Native App. Sự dụng những framework cua bên thứ 3 như AngularJS, Cordova, React Native, Xamarin để phát triển ứng dụng SmartPhone dùng ngôn ngữ HTML, Javascrip, CSS (Xamarin sử dụng C#).
- Ưu điểm:
Hybrid có thể kết hợp điểm mạnh của cả Native App và Mobile Web App để khai thác được trải nghiệm cao nhất của nền tảng.
- Nhược điểm:
Hiệu năng thực thi ứng dụng trên từng nền tảng chậm, do đó khi viết ứng dụng Game thì nên dùng những framework khác chuyên viết Game chứ không nên dùng cách này. Đặc biệt, nếu viết không khéo và không giống ứng dụng trên mobile thì sẽ bị Apple từ chối.
Native | Hybrid | HTML5 (Mobile web) | |
---|---|---|---|
Các kỹ năng cần thiết để lập trình iOS và Android | Objective-C,Swift , iOS SDK, Java, Android SDK | HTML, CSS, Javascript, Mobile Development Framework | HTML, CSS, Javascript |
Phân phối | App Store/Market | App Store/Market | Web |
Tốc độ phát triển | Chậm | Trung Bình | Nhanh |
Chi phí phát triển | Cao | Trung Bình | Thấp |
Chi phí bảo trì | Cao | Trung Bình | Thấp |
Hiệu suất đồ hoạ | Cao | Trung Bình | Trung Bình |
Hiệu suất ứng dụng | Nhanh | Trung Bình | Trung Bình |