Công nghệ xây dựng ứng dụng di động đang trở nên phát triển mạnh mẽ hơn bao giờ hết. Trước đây, chúng ta chỉ có thể sử dụng Java để xây dựng ứng dụng Android hoặc Objective-C để tạo ứng dụng iOS. Nhưng hiện nay, bất kỳ ngôn ngữ lập trình nào cũng có thể được sử dụng để xây dựng ứng dụng di động. Có rất nhiều framework hỗ trợ việc lập trình ứng dụng di động nhanh chóng, như React Native, Flutter, NativeScript, và nhiều hơn nữa.
Tuy nhiên, đối với những người yêu thích Microsoft, C#, và Visual Studio, có một sự lựa chọn hàng đầu không thể không kể đến đó là Xamarin. Trong bài viết này, mình sẽ chia sẻ với các bạn những kiến thức cơ bản về Xamarin trong seri Lập trình Xamarin. Hy vọng nó sẽ giúp ích cho các bạn trong quá trình học tập và làm việc với Xamarin.
Xamarin là gì?
Xamarin là một framework để xây dựng các ứng dụng di động đa nền tảng. Nó được tạo ra bởi hãng phần mềm di động cùng tên vào ngày 16 tháng 5 năm 2011. Xamarin sử dụng ngôn ngữ lập trình C# để viết các ứng dụng chạy trên Mac, Android, và Windows. Ý tưởng của Xamarin là triển khai các ứng dụng đa nền tảng bằng việc sử dụng Common Language Infrastructure (CLI) và Common Language Specifications (thường được gọi là Microsoft .NET). Microsoft đã mua lại Xamarin và tích hợp nó vào môi trường Windows 8 vào tháng 11/2013. Với lợi thế của mã nguồn mở của C#, lập trình viên có thể sử dụng các công cụ Xamarin để viết ứng dụng native cho Android, iOS và Windows với giao diện người dùng native và sự chia sẻ mã nguồn trên nhiều nền tảng, bao gồm cả Windows và macOS. Theo dữ liệu từ Xamarin, hơn 1.4 triệu lập trình viên đang sử dụng sản phẩm của Xamarin ở 120 quốc gia trên toàn thế giới tính đến tháng 4 năm 2017.
Công cụ Xamarin đã được giới thiệu tại Việt Nam vào ngày 18/04/2014 dành cho cộng đồng các giảng viên và sinh viên tại TPHCM. Nó đã được chuyển giao các tài liệu và bản quyền với giá ưu đãi cho các sinh viên sử dụng Microsoft Visual Studio. Các chuyên gia từ Microsoft đã giới thiệu lập trình Xamarin để chạy ứng dụng trên môi trường iOS, Android, Windows Phone và Windows 8.1 với nhiều công cụ khác nhau. Tại sự kiện Microsoft Build 2016, Microsoft đã công bố mã nguồn mở Xamarin SDK và cung cấp các công cụ để phát triển ứng dụng sử dụng Xamarin miễn phí trên Visual Studio.
Xamarin.Forms: Công cụ tiện ích cho việc chia sẻ giao diện người dùng
Xamarin.Forms là một công cụ giúp chia sẻ giao diện người dùng trên các ứng dụng iOS, Android và Universal Windows Platform với 100% mã nguồn C#. Xamarin.Forms cung cấp hơn 40 điều khiển và bố cục được ánh xạ tới các điều khiển gốc khi chạy. Nó hỗ trợ các nền tảng như Android 4.4+, iOS 8+, và Windows 10 Universal Windows Platform. Ngoài ra, nó còn hỗ trợ một số nền tảng khác như Samsung Tizen, macOS, GTK#, và WPF, nhưng đang ở chế độ xem trước hoặc do bên thứ ba phát triển.
Dưới đây là hình ảnh so sánh sự chia sẻ mã nguồn giữa việc sử dụng Xamarin truyền thống và Xamarin.Forms. Rõ ràng, khi sử dụng Xamarin.Forms, chúng ta có thể chia sẻ mã nguồn chung cho toàn bộ ứng dụng.
Giao diện của các ứng dụng sử dụng Xamarin được viết trong một file XAML, có cấu trúc giống với XML của Android hoặc Winform. Với một đoạn mã như thế này, chúng ta có thể xây dựng ứng dụng cho 3 nền tảng khác nhau:
Ví dụ code ở đây
Ưu điểm của Xamarin
- Chia sẻ mã nguồn ở mọi nơi: Khi sử dụng Xamarin, bạn sử dụng cùng một ngôn ngữ, API và cấu trúc dữ liệu để chia sẻ khoảng 75% mã nguồn trên các nền tảng di động. Điều này giúp giảm chi phí và thời gian phát triển ứng dụng di động cho ba nền tảng phổ biến nhất.
- Hiệu suất tương đương với ứng dụng native: Ứng dụng Xamarin có hiệu suất tương đương với ứng dụng native, không giống như các ứng dụng kết hợp truyền thống dựa trên công nghệ web. Xamarin cung cấp giải pháp cho việc kiểm tra và theo dõi hiệu suất ứng dụng. Hơn nữa, Xamarin Test Cloud cho phép bạn chạy các bài kiểm tra giao diện người dùng tự động và xác định các vấn đề về hiệu suất trước khi phát hành ứng dụng.
- Các tính năng tiện ích bổ sung: Xamarin cung cấp nhiều tính năng tiện ích như lựa chọn giao diện người dùng, tích hợp OAuth, tích hợp REST APIs từ xa, định vị, tích hợp mạng xã hội, cơ sở dữ liệu SQLite nhúng, thư viện XAML, và hỗ trợ data binding.
Nhược điểm của Xamarin
- Kích thước ứng dụng lớn: Ứng dụng Xamarin có kích thước lớn hơn và yêu cầu nhiều dung lượng hơn so với ứng dụng native. Kích thước của một ứng dụng viết bằng Xamarin là khoảng 3Mb, trong khi ứng dụng viết bằng Objective-C chỉ chiếm 172 Kb. Sử dụng nhiều API và lưu trữ hơn trên thiết bị sẽ làm tăng kích thước của ứng dụng.
- Khuyết điểm của AOT Compiler: Xamarin.Forms cũng có một số khuyết điểm của AOT compiler. Nó không thể compile mã nguồn gọn nhẹ như Xcode, và điều này ảnh hưởng đến việc phát triển, kiểm tra và tải ứng dụng lên cửa hàng. Đối với iOS, nó không hỗ trợ tự động sinh code. Việc build mã nguồn trên Visual Studio mất thời gian khá lâu. Điều này là thách thức mà tất cả các lập trình viên Xamarin đều đang phải đối mặt.
- Hỗ trợ cộng đồng ít: Cộng đồng Xamarin ít hơn so với cộng đồng iOS hoặc Android, do đó việc tìm kiếm những lập trình viên có kinh nghiệm với Xamarin không dễ dàng. Tuy nhiên, Microsoft đang cố gắng hỗ trợ cộng đồng này thông qua các khóa học và tài liệu giáo trình tại các trường đại học.
Kết luận
Đó là một cái nhìn tổng quan về Xamarin. Trong bài viết tiếp theo, mình sẽ giới thiệu cụ thể về các thành phần trong gia đình Xamarin. Hãy cùng đón chờ nhé!