Top 10 công cụ lập trình di động cross-platform (phần 1)

452

Write Once Run Anywhere (WORA – Code 1 lần, chạy mọi nơi) ám chỉ các dòng code được viết 1 lần duy nhất trên 1 nền tảng nhưng có thể chạy trên nhiều platforms. Khi số lượng các platform di động gia tăng, các dev lại gặp khó khăn để lập trình các ứng dụng sử dụng được trong khi người dùng có thể đang dùng các nền tảng khác nhau.

Với mục đích tiết kiệm thời gian và công sức, mục tiêu của bài viết này là tạo ứng dụng nền tảng chéo (cross-platform) với code reuse. Để hỗ trợ bạn phát triển ứng dụng di động nền tảng chéo, chúng ta sẽ phân tích 10 frameworks cross-platforms tốt nhất dành cho các ứng dụng chạy trên nhiều nền tảng gồm Android, iOS, Windows Phone, BlackBerry OS…

1. PhoneGap

Nguồn mở PhoneGap là lựa chọn tuyệt vời để lập trình các ứng dụng mobile nền tảng chéo bằng cách tận dụng các công nghệ web. PhoneGap phù hợp nhất với các ứng dụng di động không sử dụng đáng kể các tính năng native của điện thoại. Nó gói gọn các ứng dụng trong 1 container ứng dụng native, cho phép JavaScript tiếp cận APIs ở cấp độ thiết bị, tương tự như các ứng dụng thông thường vẫn làm.

PhoneGap

Ưu điểm:

  • Framework này cho phép tạo các ứng dụng hybrid sử dụng các công nghệ web nổi tiếng (HTML5, CSS3 àv JavaScript) với bộ skill có sẵn.
  • Bạn có thể triển khai 1 code base đơn cho các nền tảng khác nhau gồm iOS, Android, Windows Phone, BlackBerry, Firefox OS…
  • Cho phép kiến trúc plugin được, đồng nghĩa với khả năng tiếp cận các native device APIs và có thể mở rộng trong 1 module.
  • Tận dụng các thanh toán tích hợp, in-app qua App Store dành cho iOS, Google Play Store dành cho Android…

Nhược điểm: Đối với các ứng dụng thiên về graphic sử dụng PhoneGap thì hiệu suất của chúng khá tệ. Bạn có thể dễ dàng tìm các plugins cho PhoneGap ở mỗi requirements, nhưng các plugins đó có thể đã cũ hoặc không còn hỗ trợ (các) nền tảng mục tiêu nữa.

2. Appcelerator

Appcelerator giúp xây dựng các ứng dụng native bằng cách triển khai 1 code base JavaScript đơn. Nó hỗ trợ nội dung web trong ứng dụng native, đảm bảo code không bị wrap quanh 1 web container.

Appcelerator

Ưu điểm:

  • Đem đến các công cụ giúp lập trình ứng dụng nhanh. Bạn sẽ tốn ít thời gian hơn, ít phải tốn sức để phát triển 1 prototype (mẫu thử nghiệm) nhằm đánh giá tương tác người dùng với UI
  • Framework gồm ArrowDB – 1 kho dữ liệu ít lược đồ hơn, triển khai các models dữ liệu mà không hề tốn chút sức lực nào.
  • Khả năng tích hợp liền mạch đối với hệ thống delivery liên tục như các giải pháp SCM và MDM
  • Sở hữ các connecters được xây dựng trước đó dành cho MS Azure, MS SQL, Salesforce, MongoDB, Box…

Nhược điểm: Dù phiên bản mới đã ổn định hơn, Appcelerator vẫn bị lỗi và lag khá nhiều. Ngoài ra còn có các phàn nàn của người dùng về sự hỗ trợ nghèo nàn của cộng đồng lập trình viên.

3. Xamarin

Xamarin giúp lập trình các ứng dụng native cho nhiều platforms sử dụng code base C# được chia sẻ. Với Xamarin, bạn có thể làm mọi thứ với ngôn ngữ C# như với Objective-C, Swift hoặc Java. Nó cho phép sử dụng cùng 1 IDE, ngôn ngữ và APIs ở mọi nơi. Hơn nữa, tích hợp Git được xây dựng trực tiếp trong Xamarin Studio.

Xamarin

Ưu điểm:

  • Các ứng dụng mẫu sẽ khiến mọi thứ bắt đầu nhanh và dễ dàng hơn; các ứng dụng này được viết rõ ràng và có thể được dùng để tham khảo.
  • Khoảng 75% code được lập trình có thể chia sẻ qua nhiều nền tảng di động chính sử dụng Xamarin, giảm đáng kể chi phí và thời gian đưa ra thị trường
  • Framework này còn cung cấp tính năng functionality testing và bảo hành chất lượng cho nhiều thiết bị, đảm bảo khả năng tích hợp liền mạch (thậm chí còn cung cấp Android emulator riêng)

Nhược điểm: Vì các vấn đề tương thích, khi sử dụng Xamarin, bạn có thể không sử dụng được nhiều thư viện nguồn mở dành cho lập trình iOS và Android. Phiên bản miễn phí được giới hạn chặt chẽ cho dự án lập trình trọng yếu.

4. Sencha Touch

Sencha Touch là 1 framework ứng dụng web cross-platform hàng đầu, dùng để xây dựng các apps hiệu quả bằng các kỹ thuật tăng tốc phần cứng. Tại Sencha, các dev có thể lập trình các apps có chất lượng hàng đầu với các thư viện, các thành tố UI được tích hợp gọn gàng và được test tốt. Sensa Touch còn có thể xây dựng các ứng dụng doanh nghiệp lớn và duy trì các ứng dụng đó 1 cách dễ dàng.

Sencha Touch

Ưu điểm:

  • Đem đến các themes built-in có giao diện native cho mỗi platform chính
  • Hỗ trợ Android, iOS, BlackBerry, Windows Phone…
  • Làm việc với các nguồn dữ liệu bằng gói dữ liệu backend agnostic
  • Hỗ trợ tích hợp PhoneGap/Cordova để tiếp cận native API và packaging

Nhược điểm: Mặc dù Sencha Touch có themes native, nhưng số lượng themes có sẵn lại rất hạn chế. Hơn nữa, giấy phép thương mại của Sencha Touch cũng rất khó hiểu.

5. Monocross

Monocross là 1 framework di động cross-platform nguồn mở, để dev tạo được các ứng dụng đẹp cho iPads và iPhones, các smartphones và tablets Android, Windows Phone và các thiết bị kích hoạt Webkit. Monocross sử dụng C#, Microsoft .NET và framework Mono để lập trình các apps hỗ trợ cross-platform.

Monocross

Ưu điểm:

  • Giúp bạn tiếp cận đầy đủ tính năng của các APIs device native trong khi vẫn code với ngôn ngữ C#
  • Tiếp cận được nhiều APIs bạn cần để triển khai các ứng dụng an toàn; không cần phải nghiên cứu các chi tiết phức tạp cấp độ thấp của mọi platform
  • Sử dụng Monocross để lập trình các ứng dụng chỉ yêu cầu ngôn ngữ C# và tính năng tương thích .NET hỗ trợ lập trình liên tục lẫn các hoạt động duy trì

Nhược điểm: Tài liệu, nguồn lực và khả năng hỗ trợ cho Monocross trên Internet rất hiếm, nên lập trình apps với framework này khó hơn bình thường.

Nguồn: IDE Academy via Hongkiat (còn tiếp)