Nội Dung Chính
Xamarin là gì?
Xamarin được xây dựng vào tháng 5 năm 2011 bởi các kỹ sư đã tạo ra Mono. Mono cho Android và MonoTouch. Mục đích là triển khai chạy ứng dụng trên nhiều nền tảng của Common Language Infrastructure (CLI). Và Common Language Specifications ( Thường được gọi là Microsoft .NET).
Dựa trên ngôn ngữ C#, các nhà phát triển có thể sử dụng các công cụ Xamarin để viết các ứng dụng Android, iOS trên cùng một code project.
Là 1 nền tảng lập trình ứng dụng di động. Thiết kế app giá rẻ cross-platform (có nghĩa là code một lúc có thể chạy trên được cả iOS lẫn Android). Xamarin có những đặc điểm riêng biệt, hiếm có so với các frameworks hiện tại trên thị trường khi mà khả năng native access. Và trải nghiệm người dùng native vẫn đang bị đặt nghi vấn.
Ưu điểm của thiết kế app bằng Xamarin
Tái sử dụng code tại nhiều chỗ, giảm thời gian thiết kế ứng dụng trên nhiều nền tảng
Xamarin sử dụng ngôn ngữ C# cùng với framework.Net để tạo ra ứng dụng cho mọi nền tảng bất kì. Khi bạn tạo ứng dụng di động trên Xamarin. Bạn sử dụng cùng ngôn ngữ là C#, API. Và cấu trúc dữ liệu hay logic của ứng dụng nên thường là 90% code chức năng có thể được dùng trên iOS và Android.
Qua đó có thể giảm đáng kể chi phí và thời gian phát triển ứng dụng di động cho 2 nền tảng phổ biến nhất. Ngoài ra có nhiều IDE hỗ trợ rất tốt mà miễn phí với nó như. Xamarin IDE (dành cho Mac) hay Visual Studio (dành Windows).
Performance gần như native
Các số liệu performances là tương đương khi so sánh với các số liệu performance của Java cho Android và Objective-C hoặc Swift cho ứng dụng phát triển ứng dụng iOS native. Hơn thế nữa, performance của Xamarin liên tục được cải thiện để phù hợp hoàn toàn với tiêu chuẩn của lập trình native.
Ngoài ra, nền tảng Xamarin cung cấp thêm các giải pháp để testing. Và theo dõi hoạt động của ứng dụng. Xamarin Test Cloud kết hợp với công cụ Xamarin Test Recorder cho phép bạn chạy các UI test tự động và xác định các vấn đề về performance trước khi ứng dụng release. Tuy nhiên, dịch vụ này có tính phí nhưng cũng đáng lưu tâm.
Hỗ trợ tất cả phần cứng
Với thiết kế app mobile bằng Xamarin, giải pháp của bạn sẽ giúp cách chức năng của ứng dụng đạt được native-level. Loại trừ tất cả vấn đề tương thích với phần cứng, sử dụng plugins và APIs đặc biệt để làm việc với các chức năng thiết bị thông thường đa nền tảng. Ngoài khả năng truy cập vào API riêng biệt cho mỗi nền tảng, Xamarin còn hỗ trợ liên kết với thư viện native. Từ đó, functionality được tối ưu hóa và đạt được mức độ native tốt hơn với ít chi phí hơn.
Nhiều thư viện hỗ trợ làm ứng dụng cực nhanh có sẵn
Component Xamarin cung cấp đến hàng ngàn UI controls tùy chỉnh, các charts, biểu đồ, themes đa dạng. Và các chức năng mạnh mẽ khác có thể được thêm vào ứng dụng chỉ với vài cú click. Điều này bao gồm quá trình xử lý payment built-in (như Stripe chẳng hạn). Tích hợp Beacons và các thiết bị di động, các services notification box push, giải pháp lưu trữ đám mây. Các tính năng streaming multimedia và hơn thế nữa.
Khuyết điểm
Hỗ trợ chậm các updates mới nhất của các hệ điều hành mobile
Điều này phụ thuộc hoàn toàn vào đội ngũ developer của Xamarin. Khi iOS hoặc Android tung ra các phiên bản mới. Phải mất một khoảng thời gian để thực hiện những thay đổi hay đưa vào một plugins mới, v.v.. Mặc dù Xamarin khẳng định sẽ hỗ trợ cùng lúc với những cập nhật mới nhất nhưng vẫn có những thời điểm bị trì hoãn.
Giới hạn truy cập vào thư viện mã nguồn mở
Native development giúp thói quen sử dụng công nghệ mã nguồn mở trở nên quen thuộc, rộng rãi hơn. Với Xamarin, cả developer đều phải sử dụng duy nhất môt component được cung cấp bởi Xamarin và một số mã nguồn mở .Net.
Trong khi native development có rất nhiều lựa chọn thư viện opensource cho ứng dụng phát triển điện thoại Android và iOS. Rất tiếc là vẫn còn nhiều native library ngon vẫn chưa hỗ trợ cho Xamarin.
Vấn đề hệ sinh thái của Xamarin
Dĩ nhiên, cộng đồng Xamarin ít hơn so với cộng đồng của iOS hay Android nên để tìm kiếm được 1 developer Xamarin. Có kinh nghiệm là chuyện không dễ dàng gì dù Xamarin là nền tảng được phát triển nhờ sự hỗ trợ từ Microsoft.
Theo nhiều nguồn, cộng đồng Xamarin chiếm 10% cộng động lập trình mobile toàn cầu.
Apps thực hiện chậm hơn và yêu cầu nhiều dung lượng hơn trên thiết bị
Ứng dụng Xamarin lớn hơn, nặng hơn so với ứng dụng native. So sánh với ứng dụng native nó chiếm nhiều hơn vài Mb so với Java/Objective C tương ứng. Kích thước của một ứng dụng code bằng xamarin là 5Mb, trong khi code bằng Objective C chỉ chiếm 200 Kb. Càng sử dụng nhiều API, càng nhiều lưu trữ bị chiếm trên thiết bị.
Tổng kết
Nhiều developer đã sử dụng Xamarin như là một công cụ phát triển ứng dụng. Được support bởi Microsoft, bạn sẽ an tâm hơn khi đào sâu nghiên cứu cũng như học cách làm ứng dụng nhanh hơn. Ngôn ngữ C# lại dễ học và dễ hiểu. Làm web hay thiết kế app giá rẻ để trở nên dễ dàng hơn bao giờ hết.
Hiện nay có rất nhiều các nền tảng Hydrid để hỗ trợ làm app trên nhiều nền tảng như React Native (Sử dụng Javascript) support bởi Facebook. Flutter (Sử dụng ngôn ngữ Dart, xem thêm Flutter là gì?) được support bởi Google…nên bạn chắc chắn sẽ đắng đo lựa chọn nên dùng nền tảng nào.
Lời khuyên của mevivu là nếu bạn chuyên sâu vào ngôn ngữ lập trình nào thì hãy chọn nền tảng đó mà base. Và hybrid chỉ thật sự phù hợp với các ứng dụng đơn giản. Không có quá nặng về UI hoặc app có độ lớn vừa phải. Khi gặp ứng dụng đòi hỏi sự phức tạp, hãy cân nhắc native bạn nhé.