Xamarin là một công ty phần mềm Microsoft nước San Francisco, California thành lập tháng 5 năm 2011 bởi các kỹ sư đã tạo ra Mono, Mono cho Android và MonoTouch được triển khai nền tảng của cơ sở hạ tầng ngôn ngữ chung (CLI) và ngôn ngữ chung số kỹ thuật (thường được gọi là Microsoft .NET).Với một cơ sở mã C shared, các nhà phát triển có thể sử dụng công cụ Xamarin để viết bản Android, iOS và Windows ứng dụng có giao diện người sử dụng có nguồn gốc và mã cổ phiếu trên nhiều nền tảng. Hơn 1 triệu nhà phát triển sử dụng các sản phẩm Xamarin tại hơn 120 quốc gia trên toàn thế giới tính đến tháng năm 2015.Ngày 24 Tháng Hai năm 2016, Microsoft thông báo đã ký một thỏa thuận để có được Xamarin.
Trang 1I TỔNG QUAN
XAMARIN là hãng phần mềm lập trình di động được thành lập vào năm 2011 viết trên ngôn ngữ C# để viết các ứng dụng chạy trên hệ điều hành iOS, Android, Windows và đến 11/2013 Microsoft đã mua lại và tích hợp chạy trên môi trường Widnows 8 Công cụ Xamarin được Microsoft giới thiệu tại thị trường Việt Nam vào 18/4/2014 trong cho cộng đồng các giảng viên các trường CĐ, ĐH tại TP.HCM và được chuyển giao các tài liệu, bản quyền với giá ưu đãi giảng dạy cho các sinh viên trên nền Microsoft Visual Studio và được chuyên gia
Microsoft demo lập trình Xamarin để app chạy trên môi trường iOS, Android, Windows Phone và Windows 8.1 với các công cụ khác nhau khác nhau
Trang 2Nhà đồng sáng lập và CEO của Xamarin, Nat Friedman
Xamarincông cụ giúp sử dụng ngôn ngữ C# để xây dựng App
native(ứng dụng gốc) cho cả iOS, Android lẫn Window một cách nhanh chóng và dễ dàng hỗ trợ đầy đủ các tính năng mạnh mẽ Sản phẩm Xamarin đơn giản hóa việc tạo ra và duy trì hiệu suất cao, nền tảng ứng dụng di động với mục tiêu là điện thoại, máy tính bảng và các thiết chạy iOS, Android và Windows Với Xamarin bạn sẽ không phải lập trình nhiều lần, xây dựng ứng dụng gốc cho nhiều nền tảng trên một cơ sở dữ liệu code C# được chia sẻ, sử dụng cùng một IDE, ngôn ngữ và API
Trang 3II ĐẶC ĐIỂM
Với gói công cụ của Xamarin, lập trình viên có thể viết các ứng dụng hoàn toàn bằng C# đồng thời chia sẻ các mã lập trình tương tự lên iOS, Android, Windows và Mac Ngoài ra, lập trình viên cũng có thể tái sử dụng thư viện NET trong khi vẫn có thể dễ dàng tích hợp các thư viện
và khung phát triển đặc trưng của từng nền tảng Xamarin cũng cung cấp các đoạn mã soạn sẵn hiệu năng cao với khả năng truy xuất vào tất cả các hàm API nội trú để lập trình viên có thể phát triển các ứng dụng nội trú (native app) tùy theo trải nghiệm của thiết bị Mọi thứ lập trình viên cần phải làm với Objective-C hay Java đều có thể được thực hiện bằng C# với Xamarin
từng nền tảng
Sử dụng bộ control chuẩn của từng
Tạo giao diện chuẩn quen thuộc cho người dùng của từng hệ điều hành
Xử lý và phản hồi các thao tác người dùng như ứng dụng nguyên bản
Trang 4Tất cả những gì có thể làm trong Objective-C hay Java đều có thể được thực hiện bằng C#
Sử dụng và có quyền truy cập vào toàn bộ các chức năng của nền tảng và thiết bị, bao gồm cả khả năng thù như: iBeacons, NFC,
Bluetooth, Media Android Fragments
Các ứng dụng Xamarin tăng tốc phần cứng dựa trên nền tảng cụ thể
và được biên dịch cho hiệu suất của từng hệ điều hành, thiết bị Điều này không thể đạt được với các giải pháp thông dịch tại thời gian chạy (runtime)
• Sử dụng bộ biên dịch Ahead Of Time (AOT) cho iOS
• Sử dụng bộ biên dịch Just In Time (JIT) cho Android
III TÍNH NĂNG CỦA XAMARIN
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ác câu lệnh, cấu trúc Files & Resources, UI (XML, XIB, StoryBoard)…
Trang 5Ví 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ế
Xamarin Platform cụ thể bao gồm:
• Xamarin.iOS
o Đưa gói ứng dụng lên App Store như native app: nhờ trình biên dịch Ahead-of-Time (AOT) hỗ trợ biên dịch ứng dụng thành một tệp nhị phân (mã hợp ngữ ARM) dùng trên mọi nền tảng
o Truy cập đến mọi API của nền tảng iOS: Xamarin.iOS mang đến 100% bộ SDK iOS và đang cải thiện mạnh mẽ quy tắc đặt tên các bộ API Objective-C và NET như đang viết code bằng ngôn ngữ gốc
o Có thể sử dụng mã nguồn, frameworks, controls
Objective-C hiện tại từ Objective-C# và liên kết với các bộ giả lập một cách tự động
o Có thể xây ứng dụng WatchKit ngay trên Xamarin như xây dựng GUI trên iOS Designer và debug như trên iOS
Simulator
Trang 6o Luôn cập nhật cùng Apple
• Xamarin.Android
o Tương tự như Xamarin.iOS chỉ khácXamarin.Android dùng trình biên dịch just-in-time
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)
Xây dựng Native User Interface trên cùng một mã nguồn (gần như 100%)
Xây dựng sẵn bộ control riêng (hơn 40 native controls) để viết cross-platform
Sử dụng C# và XAML để thiết kế giao diện người dùng
Áp dụng MVVM và data bindings trong thiết kế và phát triển Vậy khi nào dùng Xamarin Form và khi nào dùng Xamarin.Android và Xamarin.iOS?
Dùng Xamarin Form khi Dùng Xamarin.Android,
Xamarin.iOS 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
Ứ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
Trang 73 Xamarin Test Cloud
Giúp Tìm lỗi trước khi bạn phát hành với các bài kiểm tra tự động chạy trên các thiết bị mà khách hàng có thể sử dụng(hơn 2000 thiết bị)
Bạn có thể kiểm tra tất cả mọi thứ mà người dùng của bạn có thể làm, Từ vuốt cho đến nhấn hai lần và cuộn
Tìm hiểu vấn đề về hiệu suất trên bất kỳ hệ điều hành nào một cách tự động với công cụ step-by step memory và performance tracking
Báo cáo đẹp mắt, dễ nhìn làm mọi việc trở nên dễ dàng để biết khi bạn đã sẵn sàng cho ra mắt
Tự động hoá ứng dụng của bạn bằng việc sử dụng các ngôn ngữ và công cụ có thật:Xamarin tạo ra một framework gọi là Calabash có thể tự động hóa và kiểm tra bất kỳ ứng dụng iOS hoặc
Android,native(ứng dụng gốc) hoặc hybrid(ứng dụng lai).Xamarin cung cấp cả các framework tự động hóa và các thiết bị điện toán đám mây
Báo cáo về crash và các cảnh báo khi ứng dụng hoạt động
Nắm bắt cách người dùng tương tác với ứng dụng
Theo dõi các sự kiện thường xảy ra trên ứng dụng
Cải thiện và nâng cấp ứng dụng ngày một tốt hơn
Trang 85 Continuous Integration-CI (tích hợp liên tục)
Tích hợp liên tục là phương pháp phát triển phần mềm đòi hỏi các thành viên trong nhóm tích hợp công việc thường xuyên Mỗi ngày, các thành viên đều phải theo dõi và phát triển công việc của họ ít nhất một lần Việc này sẽ được một nhóm khác kiểm tra tự động, nhóm này sẽ tiến hành kiểm thử truy hồi để phát hiện lỗi nhanh nhất có thể Cả nhóm thấy rằng phương pháp tiếp cận này giúp giảm bớt vấn đề về tích hợp hơn và cho phép phát triển phần mềm gắn kết nhanh hơn
CI là một phương pháp hữu ích khi phát triển các ứng dụng di động chất lượng Có rất nhiều lựa chọn khả thi cho việc tích hợp liên tục, Xamarin hỗ trợ 3 sản phẩm:
Trang 9 Microsoft Visual Studio Team Services (VSTS) và Team Foundation Server (TFS)
TeamCity
Jenkins
IV 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 Components và nuget để 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.