[DOTNETVN] Hello World trên xamarin
Khám phá Xamarin với Hello world bài mở đầu huyền thoại
Hôm nay mình sẽ mở một chuyên đề về Xamarin một công nghệ phát triển ứng dụng di động đa nền tảng.
Các bạn theo dõi chuyên đề tại link: Chuyên đề Xamarin - Linh Phạm
Ở đây mình sẽ không trình bày về những thứ như Xamarin là gì, kiến trúc ra sao.....những thứ cơ bản này các bạn có thể tham khảo trên trang chủ của nó nhé https://www.xamarin.com, dòng chữ đỏ ở trên mình đã cho các bạn biết Xamarin là gì rồi đó :)
Nhập môn Xamarin với bài Hello World
À quên trước tiên cần phải cài Xamarin cái đã chứ nhỉ
Để cài đặt Xamarin bạn có thể tải bản Visual Studio 2015, hiện nay Xamarin đã được Microsoft mua lại và tích hợp vào bộ Visual Studio huyền thoại của dân dev .Net rồi hoặc các bạn có thể truy cập vào trang download Xamarin sau đó tiến hành đăng ký và tải về nhé
Rồi nhanh gọn lẹ, tiếp theo chúng ta sẽ cùng khám phá xamarin bằng bài thực hành Hello World.
Còn một vấn đề nữa là máy ảo ở đây các bạn có thể dễ dàng sử dụng máy ảo android cũng như windows phone được tích hợp sẳn trong Visual studio sau khi tạo project xamarin tuy nhiên tốc độ máy khá chậm mình để nghị các bạn sử dụng một số loại máy ảo bên ngoài như Genymotion, hay xamarin android player, mình sẽ sử dụng Genymotion trong suốt chuyên đề Xamarin này. Riêng đối với máy ảo cho IOS có một chút phức tạp nếu các bạn dùng MAC để lập trình thì quá hoàn hảo tuy nhiên nếu bạn dùng window để lập trình IOS thì bạn cần cài một máy ảo HĐH MAC trước, sau đó từ Visual Studio liên kết đến máy ảo đã cài HĐH MAC này để chạy máy ảo IOS, các bạn xem thêm ở đây IOS-Simulator.
Máy ảo adnroid Genymotion
Đầu tiên mình sẽ tạo project mới từ Visual Studio 2015 (cái này không phải chỉ nhé :v) đặt tên là Xamarin_HelloWorld.
Ở màn hình trên chúng ta có nhiều option để tạo một project xamarin theo như hình thì mình chọn template là "Blank Xaml App (Xamarin.Form Potable)", mình sẽ thông tin một tí về mấy template này:
1. Blank App (Native Potable): Template này được build bằng cách sử dụng Xamarin portable class library (PCL), cái này thực chất là một Project dạng Library, các bạn sẽ viết code logic trong project này sau đó chia sẽ cho những nên tảng như Android, IOS....bằng cách add reference (dll).
2. Blank App (Native Shared): Template này được build bằng việc sử dụng Xamarin shared class library. Cũng tương tự cho việc share code giữa những nền nản như Android, IOS, Windows Phone (viết code xử lý ở một chỗ nhưng dùng nhiều nơi), nhưng bạn không cần phải add reference.
3. 3 loại template còn lại được gọi là Xamarin.Form hướng đến việc xây dựng giao diện ở một nơi nhưng dùng được ở nhiều nền tảng đây là điểm mạnh hơn so với loại 1 và 2, ở loại 1 và 2 các bạn cần tạo giao diện riêng cho từng nền tảng nên công việc sẽ nhiều hơn, khi làm việc với Xamarin.Form các bạn cần phải hiểu về ngôn ngữ kịch bản XAML (mình sẽ có một bài viết riêng để nói về xaml cho các bạn).
Ok, bây giờ tiến hành tạo Hello World trên template mình đã chọn là "Blank Xaml App (Xamarin.Form Potable)" dùng xaml để phát triển giao diện, sau khi tạo project mình có được cấu trúc project của xamarin như hình bên dưới
Chúng ta chủ yếu chỉ làm việc trên project portable nhưng trong một số trường hợp đặc biệt khi mà portable project không giải replica horloges kopen quyết được thì chúng ta sẽ đụng code vào các project như IOS, Android...điển hình là trường hợp sử dụng database vấn đề này mình sẽ trình bài trong các bài viết khác.
Bây giờ mình sẽ mở MainPage.xaml, chúng ta sẽ lập trình hiện câu "Hello world, I am Xamarin !" trong file này
Rồi xong đơn giản vậy thôi . Giao diện chính được khởi tạo ở file App.xaml, các project như Android, IOS... sẽ khởi động file App.xaml này để chạy ứng dụng, với android các bạn xem file MainActivity, với IOS các bạn xem file AppDelegate.
Giờ mình chạy thử máy ảo cái đã (set start up project cho loại nền tảng mà bạn muốn build ở đây mình chọn android).
Bài viết này của mình mục đích là cho các bạn cưỡi ngựa xem hoa, ở loạt bài viết sau mình sẽ đi sâu vào bằng cách làm demo một số ứng dụng nhỏ thay vì trình bày đơn lẻ từng vấn đề.