Lựa chọn công cụ nào để phát triển ứng dụng di động đa nền tảng? (PI)
19/11/2014
FacebookTwitterDeliciousStumbleuponDiggMyspaceLinkedInZingmegovnlinkhay


Tác giả John Sonmez- một người có bề dày kinh nghiệm cũng như trải nghiệm với hầu hết các giải pháp phát triển các ứng dụng di động đa nền tảng đã có bài viết rất hữu ích về vấn đề này.

Trong nội dung chia sẻ của mình, John Sonmez chỉ tập trung vào hai nền tảng chính là Android và iOS, vốn đang chiếm phần lớn thị phần ngành di động hiện nay. Với mỗi phương pháp, tác giả đưa ra điểm mạnh- yếu và lời khuyên cho các lập trình viên khi muốn lựa chọn công cụ phát triển phù hợp cho mình.

Phát triển ứng dụng dạng gốc

Lựa chọn công cụ nào để phát triển ứng dụng di động đa nền tảng? (PI)-1

Cách phổ biến nhất để xây dựng các ứng dụng di động là sử dụng các công cụ gốc- ( native ) đi cùng với nền tảng đó. Hiện nay, lập trình Android sử dụng Java và Eclipse hoặc  Android Studio đi kèm Android SDK.. Trong khi đó,  Objective-C hoặc Swift và Xcode là công cụ của lập trình iOS.

Để có được kiến thức và trải nghiệm thật sự tốt, bạn nên tạo ra một ứng dụng đơn giản, lập trình nó hoạt động độc lập trên iOS và Android. Chính quá trình này sẽ giúp bạn hiểu một cách thực sự về mỗi nền tảng cũng như điểm mạnh/ yếu của chúng.

Tuy nhiên, khi bước vào thực tế xây dựng sản phẩm, việc duy trì mã nguồn của hai ứng dụng theo cách hoàn toàn tách biệt khiến giải pháp này trở nên mất thời gian và mang lại lợi ích thấp cho lập trình viên.

Xamarin Tools

Lựa chọn công cụ nào để phát triển ứng dụng di động đa nền tảng? (PI)-2

Các công cụ của Xamarin có thể nói là rất tuyệt vời. Về cơ bản, nó sẽ cho phép bạn phát triển các ứng dụng Android hoặc iOS bằng ngôn ngữ C# và tạo ra ứng dụng có khả năng biểu thị tương đồng gần như hoàn toàn với ứng dụng gốc. Xamarin có một IDE riêng là Xamarin Studio. IDE được thiết kế tốt, dễ sử dụng và dùng cho đa nền tảng. Trong khi đó, plugin cho Visual Studio của Xamarin cho phép bạn phát triển ứng dụng của mình trong Visual Studio.

Việc chia sẻ phần code giữa các ứng dụng cũng được Xamarin tích hợp tốt. Đơn cử như khi phát triển một ứng dụng sử dụng công cụ của Xamarin, bạn sẽ xây dựng phần lõi của ứng dụng mà code của nó có thể chia sẻ giữa hai nền tảng iOS và Android. Nhờ vậy, bạn có khả năng sử dụng lại từ 60-70% code của ứng dụng, giảm tải khá nhiều công sức khi lập trình.

Tham khảo tài liệu hữu ích về  công cụ Xamarin:

Mobile Development with C#: Building Native iOS, Android, and Windows Phone Applications (Tác giả Greg Shackles)

Developing C# Apps for iPhone and iPad using MonoTouch: iOS Apps Development for .NET Developers (Tác giả Bryan Costanich)

PhoneGap

Lựa chọn công cụ nào để phát triển ứng dụng di động đa nền tảng? (PI)-3

Ứng dụng tạo ra từ PhoneGap giống như một trang web di động đa nền tảng. Là một tập các hàm JavaScript AP, PhoneGap phát triển ứng dụng tương tự như xây dựng một trang web di động sử dụng HTML5 và JavaScript. Chỉ khác là bạn đang đặt mã HTML và JavaScript đó trên thiết bị di động. Ngoài ra, bạn có thể sử dụng bất kỳ mobile framework mà bạn muốn, như Sencha Touch, hoặc JQuery Mobile, v.v…

Ứng dụng PhoneGap của bạn sẽ chạy trong một trình duyệt nên nó sẽ hoạt động khá khác biệt với giao diện gốc của ứng dụng. Điều này đảm bảo rằng PhoneGap có khả năng chia sẻ khá cao giữa các nền tảng. Còn nếu bạn muốn ứng dụng của mình gần với cách thể hiện của ứng dụng gốc hơn, một vài đoạn code riêng sẽ không là trở ngại quá lớn. Tuy nhiên, việc sở hữu một ứng dụng gốc hoàn toàn trong trường hợp này là điều gần như không thể.

Thế mạnh đáng kể tiếp theo của PhoneGap là cho phép upload dự án của bạn vào bất cứ môi trường nào khác môi trường mà bạn đã tạo ra ứng dụng. Nếu muốn phát triển tiếp app của mình trên nền tảng khác, PhoneGap có thể giúp bạn xây dựng nó một cách tự động.

Tài liệu tham khảo về PhoneGap:

PhoneGap Essentials (Tác giả John M. Wargo)

PhoneGap 2.x Mobile Application Development (Tác giả Kerri Shotts)

Dương Linh Theo simpleprogrammer