Lập trình Xamarin cho người mới bắt đầu

ngày 10-07-2019

1. Giới thiệu về lập trình di động

Lập trình ứng dụng di động đang là xu hướng mạnh mẽ của ngành công nghệ thông tin và đang rất cần nguồn nhân lực khổng lồ.
Trên thị trường ứng dụng di động hiện nay, 3 hệ điều hành chiếm thị phần cao nhất là: Android, iOS và Window Phone, tiếp sau là một số hệ điều hành khác như BlackBerry, Sailfish, Firefox, …

2. Giới thiệu lập trình đa nền tảng

Đa nền tảng là gì?
Đa nền tảng (cross-platform hay multi-platform) là một thuật ngữ chỉ các phần mềm máy tính, di động hay các phương thức điện toán và các khái niệm được thực thi đầy đủ và vận hành cùng nhau trên nhiều nền tảng máy tính, di động.
Ví dụ: ứng dụng di động có thể thực thi đầy đủ các chức năng trên hệ điều hành Android, iOS, Windows Phone thì được gọi là ứng dụng chạy được đa nền tảng.
Có một số công cụ hỗ trợ lập trình đa nền tảng như: PhoneGap, Titanium, Xamarin, …

3. Giới thiệu về Xamarin

3.1. Tại sao nên học lập trình di động với Xamarin?

- Viết một lần, chạy nhiều nơi (write once, run anywhere): iOS, Android và Windows Phone là ba nền tảng di động được sử dụng phổ biến nhất hiện nay, nhưng chúng đều có những điểm riêng và được phát triển trên các ngôn ngữ khác nhau. Ứng dụng iOS đa phần được viết bằng Objective-C, trong khi đó Android thì được viết bằng Java, còn Windows Phone thì dùng .Net Framework (C# hoặc VB.NET). Thế nhưng, chúng ta cũng có thể dùng C/C++ để lập trình ứng dụng cho iOS, Android và cả Windows Phone (hỗ trợ tốt từ phiên bản 8.1). Dù vậy, do cấu trúc C/C++ khá phức tạp và đa phần vẫn chưa thể “cross” được hoàn toàn trên tất cả các nền tảng. Vấn đề đặt ra là nhà phát triển thường gặp khó khăn khi phải viết mã lại nhiều lần với các loại ngôn ngữ khác nhau, còn phải bảo trì/nâng cấp nhiều lần, … Vì vậy, đối với các ứng dụng không lớn thì việc tìm kiếm một giải pháp đa nền tảng để giảm thiểu chi phí xây dựng và duy trì ứng dụng trên các thiết bị là rất cần thiết. Và sự ra đời của Xamarin đã giải quyết được vấn đề này, cụ thể là với Xamarin chỉ cần viết code một lần nhưng có thể tương thích ứng dụng cho cả ba nền tảng: iOS, Android và Windows Phone.
- Cung cấp các native app Android, iOS, Windows sử dụng các kỹ năng, đội ngũ và mã hiện có.
- Xây dựng các native app cho nhiều nền tảng dựa trên cơ sở dữ liệu mã C# được chia sẻ, sử dụng cùng IDE, ngôn ngữ và API.
- Giao diện tương thích với từng nền tảng, truy cập API gốc và hiệu suất của thiết bị.
- Bất cứ điều gì bạn có thể làm trong Objective - C, Swift hay Java bạn đều có thể làm trong C# với Xamarin.
- Hỗ trợ cùng lúc cho các phiên bản hệ điều hành mới.
Giải thích: “native app” là một loại ứng dụng được thiết kế để chỉ chạy trên một hệ điều hành hoặc một thiết bị cụ thể, muốn chạy trên hệ điều hành hay thiết bị khác sẽ phải có sự thay đổi nhất định. 

3.2. Lịch sử phát triển của Xamarin

Xamarin được thành lập từ tháng 5/ 2011 từ dự án Mono Open source – một Platform cho phép chạy .Net trên tất cả các nền tảng: Linux, Android, iOS, … do Miguel de Icaza và Nat Friedman sáng lập với cộng đồng khoảng 1.3 triệu lập trình viên, độc quyền sử dụng công cụ của hãng, tạo nên các ứng dụng di động bằng C#, cho phép chạy cross-platform (xuyên nền tảng) dành cho iOS, Android và Windows.
Minh họa quá trình hình thành và phát triển Xamarin
Hình 1.1. Minh họa quá trình hình thành và phát triển Xamarin
Tháng 03/2016, Miguel de Icaza - nhà đồng sáng lập Xamarin xác nhận Xamarin đã chính thức sáp nhập với Microsoft.

3.3. Đặc điểm của Xamarin

Xamarin hỗ trợ truy cập hoàn toàn tới SDK gốc cũng từng nền tảng và thêm một số tiện ích mới như sau:
- Kết nối – Binding – Hoàn toàn với SDK gốc:
  • Chuyển đổi trực tiếp những phương thức trong SDK của Android và iOS sang ngôn ngữ .Net. 
  • Cung cấp trình dò lỗi và kiểm tra “compile – time” hoặc trong quá trình phát triển, giảm thiểu lỗi runtime và tăng chất lượng ứng dụng.
- Tương thích với Objective – C, Java, C và C++:
  • Chèn trực tiếp các thư viện Objective-C, Java, C, và C++, giúp lập trình viên có thể sử dụng các thứ viện của bên-thứ-3 một cách dễ dàng.
- Cấu trúc ngôn ngữ hiện đại:
  • Ngôn ngữ C# có một số điểm mới hơn so với Objective-C và Java như: Dynamic Language Features, Lambdas, LINQ, Parallel Programming, Generics, v.v…
- Các lớp thư viện cơ bản (base class library - BCL): 
  • Gồm rất nhiều class hỗ trợ toàn diện và sắp xếp hợp lý, như XML, Database, Serialization, IO, String, Networking và nhiều thứ khác.
- Môi trường phát triển mới (Modern Integrated Development Environment - IDE): 
  • Bộ công cụ Xamarin Studio trên Mac OS
  • Bộ công cụ Xamarin Studio hoặc Visual Studio 2013 trên Windows
- Hỗ trợ Cross Platform: 
  • Ứng dụng có thể được viết với 90% code được chia sẻ hoặc dùng chung. Qua đó có thể giảm đáng kể chi phí và thời gian phát triển ứng dụng di động cho 3 nền tảng phổ biến nhất hiện nay là iOS, Android và Windows Phone.

3.4. Kiến trúc của Xamarin

Kiên trúc của Xamarin
Hình 1.2. Mô hình kiến trúc của Xamarin

4. Môi trường phát triển

Chúng ta có thể phát triển ứng dụng trên môi trường Windows khi cài đặt Xamarin Studio hoặc Visual Studio để làm trình soạn thảo phát triển ứng dụng. Nếu ứng dụng hướng đến các thiết bị iOS thì bạn cần phải có một máy Mac, có cài đặt Xcode và kèm theo Xamarin Studio cho nền tảng iOS. Cụ thể như sau:

4.1. Cài đặt Xamarin.Android trên Windows:

Bước 1: Tải tập tin cài đặt Xamarin theo đường link sau:
Xuất hiện màn hình yêu cầu tải Visual Studio, bạn điền các thông tin được yêu cầu và chọn “I agree to the Terms & Conditions” sau đó chọn “Download Now”:
Minh họa tải tập tin Xamarin
Hình 1.3. Minh họa tải tập tin Xamarin
Chú ý: Chọn “I already have Visual Studio Installed” nếu máy của bạn đã cài đặt Visual Studio, ngược lại Visual Studio Community Edition sẽ được tải hoặc Xamarin cho Visual Studio sẽ được tải và sẽ được cài đặt thông qua việc cài đặt Xamarin.
Bước 2: Chạy tập tin đã tải về ở bước 1 để cài đặt Xamarin
Bước 2.1: Xamarin License
Chọn “I agree to license terms” và nhấn “Next”:
Xamarin License
Hình 1.4. Xamarin License
Bước 2.2: Xác định các thành phần được yêu cầu
Chọn các thành phần (thư viện) cần sử dụng để tải về và cài đặt, sau đó chọn “Next”:
Xác định các thành phần yêu cầu
Hình 1.5. Xác định các thành phần được yêu cầu
Bước 2.3: Cài đặt các thành phần (đã chọn) và thay đổi vị trí cài đặt (nếu cần), sau đó chọn “Next”:
Cài đặt Android SDK
Hình 1.6. Cài đặt Android SDK
Bước 3: Vào đặt cấu hình
Để cấu hình bộ công cụ Visual Studio, chọn Tools -> Options ->Xamarin ->Android Settings:
Cấu hình Xamarin Android
Hình 1.7. Cấu hình Xamarin.Android
Bước 4: Kích hoạt Xamarin (Activation)
Bước này chỉ áp dụng nếu bạn đã được cấp phép sử dụng Xamarin và muốn tiếp tục sử dụng Xamarin.
Nếu bạn đã có tài khoản Professional hoặc Enterprise MSDN, đăng nhập vào tài khoản Professional hoặc Enterprise MSDN sẽ cho phép bạn truy cập đầy đủ bộ sản phẩm của Xamarin. Tương tự vậy, nếu bạn có License bản quyền Visual Studio Community Edition, bạn cũng có thể sử dụng Xamarin miễn phí.

4.2. Cài đặt Xamarin.Android trên Mac:

Bước 1: Tải tập tin cài đặt Xamarin theo đường link sau:
Bước 2: Chạy tập tin đã tải về ở bước 1 để cài đặt Xamarin
Nhấp đút vào logo Xamagon để bắt đầu cài đặt ứng dụng:
Cài đặt Xamarin Android trên MÂC
Hình 1.8. Cài đặt Xamarin.Android trên Mac
Nếu xuất hiện hộp thoại tương tự hình bên dưới thì chọn “Open”:
Hình 1.9. Cài đặt Xamarin.Android trên Mac
Bước 2.1: Xamarin License
Chọn “I agree to license terms” và nhấn “Continue”:
Hình 1.10. Cài đặt Xamarin.Android trên Mac
Bước 2.2: Xác định các thành phần được yêu cầu
Chọn các thành phần (thư viện) cần sử dụng để tải về và cài đặt, sau đó chọn “Continue”:
Hình 1.11. Cài đặt Xamarin.Android trên Mac
Chú ý: Để cấu hình proxy, bạn mở Application -> System Preferences.app và chọn biểu tượng Network. Tiếp theo, chọn mạng giao tiếp phù hợp và nhấn nút “Advanced”. Cuối cùng, chúng ta cấu hình Proxies như hình sau:
Hình 1.12. Cấu hình proxy
Bước 3: Cài đặt các thành phần đã chọn
Sau khi chọn các thành phần được yêu cầu, chương trình sẽ tự tải về và cài đặt các thành phần đã chọn:
Hình 1.13. Cài đặt các thành phần
Chọn “Continue” để tiếp tục quá trình cài đặt:
Hình 1.14. Cài đặt các thành phần
Hình 1.15. Cài đặt các thành phần
Bước 4: Hoàn thành quá trình cài đặt
Kết quả sau khi hoàn thành quá trình cài đặt:
Kết quả sau khi cài đặt thành công Xamarin Android trên MAC
Hình 1.16. Kết quả sau khi cài đặt thành công Xamarin.Android trên Mac
Chọn nút “Launch Xamarin Studio” để bắt đầu phát triển một ứng dụng Xamarin.Android.
Bước 5: Kích hoạt Xamarin
Trước hết, bạn phải đăng nhập vào tài khoản Xamarin bằng cách nhấn nút “Log In” trên màn hình “Welcome Screen” và điền vào tên tài khoản và mật khẩu của bạn để chứng thực. Nếu chưa có tài khoản Xamarin, bạn có thể đăng ký tài khoản Xamarin theo đường link sau: https://store.xamarin.com/account/register
Đằng nhập tài khoản Xamarin từ màn hình Welcome Screen
Hình 1.17. Đăng nhập tài khoản Xamarin từ màn hình Welcome Screen
Kết quả sau khi kích hoạt thành công:
Kết quả kích hoạt thành công
Hình 1.18. Kết quả kích hoạt thành công

4.3. Cài đặt Xamarin.iOS trên Windows:

4.3.1. Quy trình phát triển:

Xamarin.iOS cho Visual Studio cho phép viết và kiểm tra (tested) những ứng dựng iOS trên  những máy tính có hệ điều hành Windows, với một máy Mac được kết nối mạng để xây dựng và triển khai dịch vụ.
Mô hình minh họa quy trình phát triển ứng dụng đơn giản của Xamarin.iOS trên Windows
Hình 1.19. Mô hình minh họa quy trình phát triển ứng dụng đơn giản của Xamarin.iOS trên Windows

4.3.2. Yêu cầu hệ thống 

4.3.2.1. Hệ thống Windows:
- Windows 7 hoặc cao hơn.
- Visual Studio 2012 Professional hoặc cao hơn.
- Xamarin cho Visual Studio.
Chú ý: Không thể sử dụng Xamarin plug-in với những phiên bản Express vì những phiên bản này không có hỗ trợ plug-in.
4.3.2.2. Hệ thống Macintosh:
- Một máy Mac chạy OS X Yosemite (10.10) hoặc cao hơn (khuyến khích sử dụng phiên bản mới nhất).
- Xamarin iOS SDK.
- Xcode (7+) IDE của Apple và iOS SDK (khuyến khích sử dụng phiên bản mới nhất).
4.3.2.3. Triển khai (deploy) ứng dụng đến một thiết bị hoặc đến App Store
 Để triển khai ứng dụng đến một thiết bị hoặc đến App Store, bạn phải có tài khoản Apple dành cho nhà phát triển ứng dụng.
Để Xamarin.iOS cho Visual Stdio có thể làm việc, chúng ta cần xác nhận tài khoản Apple dành cho nhà phát triển, tạo và cài đặt một số thành phần cần thiết trên một máy Mac đã được kết nối.
4.3.2.4. Các chức năng và hạn chế
Các chức năng:
Xamarin.iOS cho Visual Studio cho phép tạo, sửa, xây dựng và triển khai dự án Xamarin.iOS từ Windows với các chức năng cụ thể là:
- Tạo mới dự án iOS.
- Sửa chữa dự án iOS và các giải pháp đa nền tảng - các dự án Xamarin.Android và Windows Phone.
- Phiên dịch dự án iOS và các giải pháp đa nền tảng – các dự án Xamarin.Android và Windows Phone.
- Storyboard và hỗ trợ .xib bằng cách sử dụng iOS Designer.
- Triển khai và debug những ứng dụng iOS.
Hạn chế:
- Xamarin.iOS cho Visual Studio hiện nay không có iOS mô phỏng trên Windows (No iOS simulator on Windows) – iOS giả lập chạy trên Mac OS X, vì vậy cần phải chuyển sang màn hình Mac khi kiểm tra (testing).

4.3.3. Cấu hình cho máy Mac

4.3.3.1. Cài đặt:
Cài đặt bộ công cụ Xamarin.iOS trên máy Mac của bạn và kích hoạt bản quyền Xamarin. (Xem hướng dẫn chi tiết ở mục 4.4).
4.3.3.2. Cấu hình:
Để truy cập giao tiếp giữa Xamarin mở rộng cho Visual Studio và máy Mac, chúng ta cần cho phép Remote Login trên máy Mac như sau:
Bước 1: Mở Spotlight (Cmd-Space) và tìm kiếm Remote Login, sau đó chọn “Sharing” để mở System Preferences trong bảng điều khiển Sharing:
Cho phép Remote Login trên Mac
Hình 1.20. Cho phép Remote Login trên Mac
Bước 2: Chọn “Remote Login” trong danh sách các dịch vụ (Service) để cho phép Xamarin cho Visual Studio được kết nối đến máy Mac:
Kết nối Xamarin với máy Mac
Hình 1.21. Kết nối Xamarin với máy Mac
4.3.3.3. Cài đặt iOS Developer

4.3.4. Cài đặt trên Windows

4.3.4.1. Cài đặt:
Visual Studio 2015 cho phép bạn cài đặt bộ công cụ Xamarin trong quá trình cài đặt Visual Studio. Vì vậy, để cài đặt bộ công cụ Xamarin, chúng ta có thể cài đặt thông qua Visual Studio 2015 như sau:
Bước 1: Tải Visual Studio 2015 theo đường dẫn sau: https://www.visualstudio.com/en-us/downloads/download-visual-studio-vs.aspx
Chú ý: Nếu máy bạn đã cài đặt Visual Studio 2015 rồi thì bạn mở Control Panel Programs and Features  Visual Studio 2015  Change và chuyển đến bước 3.
Bước 2: Chạy tập tin cài đặt Visual Studio 2015 và chọn “Custom”
Lập trình Xamarin cho người mới bắt đầu
Bước 3: Chọn Cross-Platform Mobile Development > C#/.NET (Xamarin)
Lập trình Xamarin cho người mới bắt đầu
Bước 4: Chọn nút “Install” và chờ chương trình xử lý cài đặt.
Bước 5: Đăng nhập tài khoản Microsoft (tài khoản Windows) nếu có yêu cầu, sau đó cập nhật Xamarin bằng cách chọn Tools  Options  Xamarin hoặc Tools  Options  Xamarin  Other, sau đó chọn “Check Now”
Lập trình Xamarin cho người mới bắt đầu
4.3.4.2. Sử dụng một máy ảo Windows (Windows Virtual Machine)
Xamarin.iOS cho Visual Studio có thể chạy bên trong một máy ảo Windows trên OS X, sử dụng các ứng dụng như Parallels hoặc VMWare.
Khi sử dụng máy ảo Windows trong Parallels 10 trên Macbook Pro với Retina Display, bạn nên kiểm Video Hardware Settings để đảm bảo là Enable Retina resolution không được chọn (trong các phiên bản trước của Parallels bạn sẽ chọn tùy chọn Scaled). Nếu điều này không được thiết lập một cách chính xác thì một số yếu tố của trình soạn thảo sẽ biên dịch kém và khó sử dụng:
Lập trình Xamarin cho người mới bắt đầu

4.3.5. Hoàn thành quá trình cài đặt

4.3.5.1. Liên kết (Linking) đến tài khoản Xamarin
Phần này chỉ áp dụng nếu bạn đã được cấp phép sử dụng Xamarin và bạn muốn được tiếp tục sử dụng nó. Hoặc nếu bạn đã có tài khoản Professional hoặc Enterprise MSDN, đăng nhập vào tài khoản Professional hoặc Enterprise MSDN sẽ cho phép bạn truy cập đầy đủ bộ sản phẩm của Xamarin. Tương tự vậy, nếu bạn đã được cấp phép sử dụng Visual Studio Community Edition, bạn cũng có thể sử dụng Xamarin miễn phí.
Bạn mở Visual Studio và đăng nhập vào tài khoản Xamarin để sử dụng các chức năng của bộ công cụ Xamarin và kích hoạt bản quyền như sau:
Chọn Tools -> Xamarin Account:
Lập trình Xamarin cho người mới bắt đầu
Hộp thoại “Xamarin Account” xuất hiện, bạn chọn “Log In”:
Lập trình Xamarin cho người mới bắt đầu
Bạn điền tên tài khoản và mật khẩu rồi nhấn “Log In”:
Lập trình Xamarin cho người mới bắt đầu
Nếu bạn chưa có tài khoản thì bạn nhấn “Create account” để tạo một tài khoản Xamarin.
Kết quả sau khi bộ công cụ Xamarin được kích hoạt thành công:
Xamarin được kích hoạt thành công
4.3.5.2. Kết nối đến máy Mac
Xamarin.iOS cho Visual Studio được kết nối với máy chủ Mac thông qua kết nối SSH và được thực hiện theo các bước như sau:
Chọn Tools -> Options ->  Xamarin -> iOS Settings:
Lập trình Xamarin cho người mới bắt đầu
Chọn máy Mac cho phép Remote Login:
Lập trình Xamarin cho người mới bắt đầu
Điền tên tài khoản và mật khẩu cho quyền quản trị của máy chủ Mac:
Lập trình Xamarin cho người mới bắt đầu
Kết quả sau khi kết nối thành công:
Lập trình Xamarin cho người mới bắt đầu
Kết nối này bạn phải kết nối lại mỗi khi mở Visual Studio lên.
4.3.5.3. Cấu hình thanh công cụ Visual Studio
Cấu hình thanh công cụ Visual Studio giúp bạn dễ dàng truy cập các chức năng của Xamarin.iOS trên Visual Studio.
Thường thì khi một dự án iOS được mở, thanh công cụ iOS (iOS Toolbar) sẽ được hiển thị mặc định. Nhưng nếu thanh công cụ iOS không xuất hiện, bạn có thể chọn View -> Toolbars -> iOS để nó xuất hiện:
Lập trình Xamarin cho người mới bắt đầu
Thêm “Solution Platforms” lên thanh công cụ Standard (Standard toolbar) cho phép chọn thiết bị iOS (iOS Device) hoặc giả lập iOS (iOS Simulator) khi đang chạy debug: Chọn Add or Remove Buttons -> Chọn Solution Platforms:
Lập trình Xamarin cho người mới bắt đầu
Kết quả sau khi thiết lập thanh công cụ Standard:

4.4. Cài đặt Xamarin.iOS trên Mac:

4.4.1. Các thành phần yêu cầu

Để cài đặt Xamarin.iOS trên Mac, chúng ta cần:
- iOS SDK phiên bản mới nhất.
- Xcode phiên bản mới nhất.
- Mac OS X Yosemite(10.10) và cao hơn.
Chú ý: Bạn có thể tải về phiên bản mới nhất của Xcode thông qua Mac App Store qua đường dẫn sau: https://developer.xamarin.com/guides/ios/getting_started/installation/mac/ (bạn phải đăng nhập tài khoản Apple).
Lập trình Xamarin cho người mới bắt đầu

4.4.2. Tải và cài đặt Xamarin

Cài đặt Xamarin.iOS tương tực cách cài đặt Xamarin.Android trên máy Mac.

5. Xây dựng và thực thi ứng dựng đầu tiên với Xamarin

5.1. Tạo một ứng dụng iOS (iOS app)

Đối với Visual Studio, chọn File → New project → Visual C# → Universal → Blank App (iOS):
Lập trình Xamarin cho người mới bắt đầu
Sau đó, chọn Next → xuất hiện hộp thoại như sau:
Đối với Xamarin Studio, chọn File → New → Solution → App → Single View App:

5.2. Tạo một ứng dụng Android (Android app)

Đối với Visual Studio, chọn File → New project → Visual C# → Android → Blank App (Android):
Lập trình Xamarin cho người mới bắt đầu
Đối với Xamarin Studio, chọn File → New → Solution → New project → Android and App → Android App.

5.3. Tạo một ứng dụng Windows (Windows app)

Ta chọn File → New project → Visual C# → Windows → Blank App (Universal Windows):
Lập trình Xamarin cho người mới bắt đầu

5.4. Tạo một ứng dụng Web (Web app)

Ta chọn File → New project → Visual C# → Web → ASP.NET Web Application:
Lập trình Xamarin cho người mới bắt đầu
Như vậy là bạn đã có được những kiến thức cơ bản về Xamarin, cài đặt môi trường và thử tạo ứng dụng đầu tiên trên Xamarin. Tuy là một công cụ tương đối mới dựa trên công nghệ Microsoft nhưng cộng đồng Xamarin đã có hơn 1,4 triệu nhà phát triển ứng dụng. Hiện nay, nhu cầu tuyển dụng về Xamarin chưa cao tại Việt Nam nhưng nếu bạn đã có kiến thức về lập trình C#, bạn nên tìm hiểu thêm Xamarin để có thêm cơ hội sau này cho mình.
 
Chúc bạn thành công!
(Trích giáo trình của Trung tâm Tin học – ĐH Khoa Học Tự Nhiên TP.HCM)
 
CHƯƠNG TRÌNH ĐÀO TẠO