Xamarin là gì? đối với một lập trình viên Xamarin cần yêu cầu gì? Khi nào nên chọn học Xamarin?,… bài viết dưới đây tại Stanford sẽ được tổng hợp và giải đáp.
Bài viết sau đây sẽ tóm tắt một số điều các bạn cần hiểu để có thể bắt tay vào học Xamarin, nghiên cứu và làm việc với nền tảng Xamarin…
Trên thị trường thiết bị di động thông minh hiện nay, có một số hệ điều hành phổ biến như Android, iOS và Windows; đi kèm với các hệ điều hành đó nhà cung cấp sẽ đưa ra ngôn ngữ lập trình chính và các bộ công cụ để phát triển ứng dụng trên chúng.
Nghĩa là bạn muốn phát triển một ứng dụng di động trên nền tảng nào, thì phải tìm hiểu, làm việc trên công cụ, ngôn ngữ và môi trường hỗ trợ nền tảng đó.
Nhưng từ khi Xamarin xuất hiện, nó làm thay đổi quy luật đó. Xamarin là công nghệ sử dụng ngôn ngữ lập trình C# thay thế cho ngôn ngữ chính của các nền tảng đó giúp bạn xây dựng ứng dụng cho Android và iOS.
Như vậy có nghĩa là nếu bạn học Xamarin thì những gì bạn làm được với Java, ObjectiveC/Swift bạn đều có thể làm với C# và Xamarin. Ví dụ ứng dụng Uber bạn có thể viết bằng Xamarin, hay bất kỳ ứng dụng nào đang được đăng trên Google Play hay App Store.
Vậy Xamarin nó làm điều đó như thế nào? Đơn giản là xamarin vẫn giúp bạn build 1 ứng dụng native trên mỗi nền tảng. Cụ thể có 3 phiên bản chính đối với mobile dev.
– Thứ nhất là Xamarin.iOS & Xamarin.Android: Với Xamarin.Android và Xamarin.iOS bạn đã có thể build được ứng dụng đa nền tảng, tuy nhiên để phát triển được ứng dụng yêu cầu khá nhiều kiến thức cũng như ta phải tách biệt phần lớn code về UI của mỗi nền tảng. Xamarin.Android và Xamarin.iOS thì các câu lệnh, cú pháp, luồng, service…etc đều như nhau chỉ khác viết hoa lại cho đẹp. Ví dụ: trên Android để bắt đầu 1 activity thì gọi hàm startActivity(), bên này viết bằng C# thì thành StartActivity(). Bên kia bạn viết bằng Java, object-c, swift như nào thì bên xamarin cũng viết như thế.
– Thứ hai là Xamarin.Forms: Để tăng khả năng chi sẻ code giữa các nền tảng Xamarin.Android, Xamarin.iOS và UWP, Xamarin cung cấp bộ thư viện hỗ trợ viết giao diện cho cả 3 nền tảng trên với một ngôn ngữ duy nhất là XAML gọi là Xamarin Forms, với Xamarin Forms. Xamarin Forms cung cấp 1 bộ control riêng để viết cross-platform, cú pháp và flow hoàn toàn khác với native, có nghĩa là làm giao diện 1 lần, viết hàm xử lý 1 lần, nó sẽ build ra cho luôn 3 nền tảng, nó sẽ tự convert xuống thư viện native cho luôn. Nhưng nó chỉ xài cho các control có chung tương tự của 2 nền tảng (ví dụ Label&TextView, Button, EditText&TextField, ListView&TableView)… còn 1 số specific chức năng và control của riêng thì phải viết riêng, người ta gọi cái này là custom renderer.
Bản chất của xamarin.forms khi build nó sẽ ref xuống Xamarin.iOS & Xamarin.Android trên, rồi sau đó ref xuống tiếp bộ interface của native, vì vậy sẽ có những thứ mà trên iOS có nhưng trên Android ko có và ngược lại, bạn sẽ phải custom từ 1 view riêng để có được nó … nhưng dù sao giải quyết được các control tương tự nhau cũng đã giải quyết đc 1 khoản thời gian khá lớn khi viết app.
Từ đó ta nhận thấy Xamarin Forms có ưu điểm là tăng % chia sẻ code khi build ứng dụng đa nền tảng do cho phép chia sẻ được code UI, tuy nhiên Xamarin Forms cũng có những hạn chế của nó:
– Hiệu xuất sẽ bị giảm thấp hơn so với việc build ứng dụng riêng biệt với Xamarin.Android và Xamarin.iOS
– Hiện tại Tool & IDE chưa hỗ trợ tốt cho việc thiết kế giao diện trên XAML
– Xamarin Forms chỉ cung cấp đủ các loại control chuẩn để build giao diện, muốn tùy chỉnh phải áp dụng khá nhiều kỹ thuật.
Nếu bạn muốn làm chủ Xamarin hãy tham khảo khóa học Xamarin tại đây: https://stanford.com.vn/dao-tao/khoa-hoc/id/28/lap-trinh-di-dong-da-nen-tang-bang-xamarin-c
—–
STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ
Hotline: 0936 172 315 – 024. 6275 2212
Website: http://stanford.com.vn/