Các thành phần cơ bản của dự án Xamarin

Tôi xin giới thiệu các bạn các thành phần cơ bản khi cần xây dựng ứng dụng di động bằng Xamarin

1. Tool Xamarin Previewer: Giúp bạn xem bảng thiết kế nhanh chóng với các nền tảng cụ thể iOS hay Android, tuy nhiên công cụ này chỉ giúp bạn xem trước trang thiết kế nhưng không thể design trực tiếp trên công cụ này.

--> View - Other windows -> Xamarin.Forms Previewer

2. Hình ảnh, Icon: 

     + Icon hai dạng: Inactive and Active. Bạn có thể vào website này để tạo 2 dạng icon đó, khi lưu về sẽ có sẵn các thư mục các thể loại hình ảnh cần thiết. Xem tại website này

3 Navigation (Menu): Các bạn có thể sử dụng ví dụ sau để ứng dụng vào dự án của mình. Tuy nhiên bạn cần các bước sau

     + Tạo interface IIconChange

     + Tạo ViewModel

     + Tạo các PageContent, chọn BindingContext đến ViewModel

     + Tạo sự kiện trang MainPage khi click vào các trang con

     + Tạo File MyTabsRenderer riêng cho dự án Android.

      https://montemagno.com/dynamically-changing-xamarin-forms-tab-icons-when-select/

- Bottom Nagigation Tabbled Page: Tham khảo 1, Tham khảo 2, Tham khảo 3, Tham khảo 4.

- Menu navigation dành cho giao diện MasterDetailPage. Thành phần không thể thiếu của ứng dụng. Đầu tiên chúng ta cần 1 ContentPage làm MasterPage để chứa menu, khi click vào item của menu sẽ chuyển qua các Content Page khác.

      https://xamarinhelp.com/masterdetailpage-navigation-menu-xamarin-forms/

4. Style định dạng

Mỗi nền tảng cần chỉnh định dạng và hình ảnh riêng

- Android:

* Resources\ drawable \ Hình ảnh tại đây

* Resources\ values \ styles.xml Định dạng chung tại đây

- iOS: Resources

5. Các control, User interface

+ ListView: là thành phần phổ biến nhất và quan trọng trong việc xây dựng app quản lý.

ListView là giao diện trình bày dữ liệu dạng danh sách, đặc biệt danh sách dài và có thể cuộn lên xuống. Các thành phần sử dụng với listview là:

     * Data Sources – Thành phần phổ biến của ListView, có hoặc không có data binding.

     * Cell Appearance – Tùy chỉnh giao diện (custom) của từng ô trong listview.

     * List Appearance – Tùy chỉnh giao diện (custom) của từng ô trong listview với headers và footers, có thể nhóm hoặc thay đổi chiều cao của dòng.

     * Interactivity – Điều khiển sự kiện select, thi hành pull-to-refresh, và quản lý những sự kiện khác.

     * Performance – Xử lý thự thi của listview.

6. Các dịch vụ web service

- Xây dựng các web service bằng mọi hình thức trả về ứng dụng dữ liệu dạng Json hoặc Xml 

- Tầng ViewModel (Controller) Gọi phương thứ GET hoặc POST dữ liệu từ web service qua hàm PostAsync, sau đó đọc dữ liệu trả về bằng hàm ReadAsStringAsync. Khi đã nhận dữ liệu trả về dạng Json, chúng ta cần chuyển dữ liệu Json về dạng các kiểu đối tượng trong C# để đưa dữ liệu lên giao diện bằng hàm DeserializeObject, hoặc bạn có thể sử dụng hàm để đọc XML (Link tham khảo đầy đủ về Json XML .Net). 

+ var response = await client.PostAsync(uri.ToString(),formContent);

+ var content = await response.Content.ReadAsStringAsync();

+ Items = JsonConvert.DeserializeObject<list<KieuDuLieu>>(content);

7. Cơ sở dữ liệu SqLite

- Thêm thư viện sqlite.net từ Nuget. Chuột phải dự án MyApp -> chọn Add -> chọn Add NuGet Packages…Chọn SQLite.Net PCL -> chọn Add Package

- Viết các lớp entity như DataInfo trong lập trình quản lý. Ví dụ lớp SinhVienDB có 2 trường MaSinhVien và TenSinhVien.

- Viết tầng DataAccess (Model): Trong lớp này chúng ta vẫn kết nối csdl sqlite và kèm theo các hàm cơ bản như: GetAll, Delete(id), DeleteAll, Insert(info_db), ExcuteQuery... Ví dụ. SinhVienData có các hàm LayDanhSachSinhVien, XoaSinhVien,...

- ViewModel (tương đương tầng Controller trong lập trình quản lý), xử lý gửi kết quả vào các giao diện ở View. Các giao diện PageContent được viết bằng Xaml cũng được thiết kế tại thư mục View này.

8. Truy cập định vị GPS và chụp ảnh Camera Xamarin

- Sử dụng thư viện cho GPS https://ntldev.wordpress.com/2017/06/22/su-dung-gps-voi-xamarin-forms/

- Camera tham khảo bài viết https://www.c-sharpcorner.com/article/xamarin-forms-camera-app3/

hoặc sử dụng thư viện https://xamarinhelp.com/use-camera-take-photo-xamarin-forms/

9. Code tham khảo đọc mã vạch từ camera

-

...  Đang cập nhật

 Huỳnh Lý Thanh Nhàn

https://sites.google.com/site/hltnhan/