Như bài blog trước mình có điểm sơ qua về môi trường phát triển ứng dụng di động, ta có thể thấy Microsoft Xamarin là một trong những nền tảng mạnh mẽ và tối ưu nhất để phát triển ứng dụng di động đa nền tảng, cùng với ngôn ngữ lập trình C# giờ đây bạn đã có đầy đủ những yếu tố cũng như công cụ để xây dựng ứng dụng trên bất kỳ thiết bị cũng như hạ tầng nào.

Screenshot (6)

Xamarin là nền tảng cho phép nhà phát triển có thể xây dựng ứng dụng Native Android, iOS với C#, hỗ trợ xây dựng Native UI và Share code đa nền tảng.

Một vài số liệu bạn có thể quan tâm

90%

code có thể được chia sẻ (dùng chung) giữa các nền tảng

1

ngôn ngữ lập trình duy nhất – C#

48h

là thời gian Xamarin cam kết update Xamarin SDK sau khi Android và iOS SDK có update mới

2.000+

thiết bị ‘thật’ trên Test Cloud mà bạn có thể sử dụng làm testing

1.400.000+

developers

15.000+

doanh nghiệp chọn Xamarin làm giải pháp cho họ

$0

Xamarin for Everyone

Capture

Sử dụng Xamarin thế nào?

Xamarin cung cấp 2 giải pháp để bạn có thể xây dựng ứng dụng di động trên các nền tảng với C#

Xamarin Platform: Nói đơn giản, chỉ khác với app truyền thống là dùng C# thay cho Java/ObjC còn mọi thứ còn lại vẫn được giữ nguyên như cấu trúc Files & Resources, UI (XML, XIB, StoryBoard),… cụ thể bao gồm:

  • Xamarin.Android
  • Xamarin.iOS

http://thatcsharpguy.com/postimages/xamarin-android-vs-traditional/comparison.png

Xamarin Forms: Giúp bạn có thể xây dựng ứng dụng đa nền tảng một cách nhanh chóng, với việc chia sẻ code Backend lẫn UI code (viết bằng C#/XAML)

Capture4

Xamarin.Forms

Dùng Xamarin Form khi:

  • Ứng dụng không yêu cầu nhiều chức năng đặc trưng trên thiết bị.
  • Ứng dụng không yêu cầu cao về UI/UX.
  • Sử dụng ngôn ngữ XAML thành thạo.
  • Có hiểu biết về code sharing

 

Xamarin Platform

Dùng Xamarin.Android, Xamarin.iOS khi:

  • Ứng dụng đòi hỏi các chức năng đặc trưng
  • Ứng dụng yêu cầu cao về UI/UX
  • Ứng dụng đòi hỏi hiệu năng cao
  • Có hiểu biết về code app Android và iOS Native

Môi trường phát triển ứng dụng với Xamarin

Bản quyền + Công cụ

Capture5

Truy cập vào https://store.xamarin.com/ để đăng ký và download Xamarin SDK + IDE

Bạn có 2 nhóm lựa chọn:

  • Windows:
    • Visual Studio IDE – Hỗ trợ Xamarin.Forms, Xamarin.Android, Xamarin.iOS
    • Xamarin Studio IDE – Hỗ trợ Xamarin.Forms, Xamarin.Android
    • Xamarin SDK
    • Android SDK/NDK
  • Mac OS:
    • Xamarin Studio IDE – Hỗ trợ Xamarin.Forms, Xamarin.Android, Xamarin.iOS
    • Xamarin SDK
    • Android SDK/NDK
    • Xcode

Lưu ý: Để phát triển ứng dụng iOS trên Windows – Visual Studio, bạn cần bộ máy tính Mac OS cài đặt đầy đủ các gói trên để làm Build host.

Xamarin.Android

Xamarin.iOS

Xamarin.Forms

  • Emulators (XAP, VSAE,..)
  • UI Designer
  • Tạo native app package (apk)
  • 100% code native
  • Android Wear, Android TV,..
  • Gọi code Java có sẵn với C#
  • Luôn cập nhật với Google
  • Xcode Simulators
  • UI Designer, Xcode Designer
  • Đẩy app lên thẳng Apple Store
  • 100% code native
  • Apple Watch, tvOS,…
  • Gọi code ObjC có sẵn với C#
  • Luôn cập nhật với Apple
  • Tương tự
  • UI Previewer (alpha)
  • Tương tự
  • Hạn chế
  • Hạn chế
  • Hạn chế
  • Tương tự

Thư viện và cộng đồng

Cộng đồng Xamarin hiện ngày càng được mở rộng, ngoài ra ngày 27/4/2016 trong sự kiện Xamarin Evolve 2016 Xamarin SDK đã chính thức Open Source.

Bạn có 2 nguồn cung cấp các thư viện là Xamarin Componentsnuget để truy cập và cài đặt các thư viện có sẵn hỗ trợ xây dựng app nhanh hơn.

https://www.xamstatic.com/dist/images/pages/platform/components-and-nuget@2x-araELsS6.png

Tại sao là C#?

Như bạn biết Xamarin hỗ trợ bạn chuyển đổi 100% Code native Android/iOS sang C#, nhưng không dừng ở đó Xamarin còn cho phép sử dụng các thư viện có sẵn từ .NET C# để hỗ trợ việc lập trình ứng dụng di động như System.Net, System.Linq, System.Xml,…

Capture7

Bạn thấy sau đây là sự khác biệt khi khai báo một class với các property và method cơ bản bằng ObjC và C# với hỗ trợ từ LINQ

Picture1 Picture2

Mội ví dụ khác về Event Handle và Async

Capture8Screenshot (8)