PHẦN MỞ ĐẦU Phư ng pháp tổng hợp lý thuyết: Nghiên cứu và t m hiểu các tài liệu, ứng dụng liên quan đến công nghệ đang t m hiểu Phư ng pháp chuyên gia: Tham khảo ý kiến của thầy hướng dẫn cũng các anh chị, bạn b có kinh nghiệm liên quan đến các vấn đề của khóa luận tạo độ chính xác và khoa học cho đề tài Phư ng pháp mô h nh hóa: Mô ph ng ứng dụng các bước t thiết kế cài đặt cho đến kết quả thành phẩm của ứng dụng 12 do an NỀN TẢNG KIẾN THỨC PHẦN NỘI DUNG CHƢƠNG 1: NỀN TẢNG KIẾN THỨC 1.1 Tổng quan Vào 28/5/2014,Xamarin đ giới thiệu Xamarin Forms,nó là một framework cho phép các nhà phát triển phần mềm xây dựng các ứng dụng di động đa nền tảng s dụng các thành phần giao diện c bản của hệ điều hành như: Pages, Layouts, Views, Controls. Khi chạy chư ng tr nh, mỗi thành phần giao diện của Xamarin Forms sẽ được chuyển hóa sang các thành phần giao diện tư ng ứng với mỗi nền tảng.2 Các nền tảng đƣợc hỗ trợ Xamarin Forms hỗ trợ 5 nền tảng ứng dụng khác nhau: IOS cho chư ng tr nh chạy trên iphone,iPad và iPod Touch. Android cho chư ng tr nh chạy trên điện thoại Android và Tablets. Universal Windows Platform(UWP) chạy trên Windows 10 và Windows 10 Mobile.
Windows Runtime API của Win 8.1 Windows Runtime API của Windows Phone 8.1 Thông thư ng ,một ứng dụng Xamarin Forms trên Visual Studio bao gồm 5 project riêng biết cho mỗi nền tảng,và một project chứa các m chung của các nền tảng. ưới đây là s đồ hiển thị cho 3 nền tảng c bản Android ,iOs và UWP (Hai nền tảng c n lại tư ng tự UWP). 13 do an NỀN TẢNG KIẾN THỨC Hình 1-1 Ba nền tảng đƣợc Xamarin.Forms hỗ trợ Các thư viện Xamarin.Core và Xamarin.Xaml sẽ triển khai các Xamarin.Tùy thuộc vào t ng nền tảng mà Xamarin.Core sẽ s dụng một trong số các thư viện của Xamarin.Các thư viện này chủ yếu là tập hợp các lớp dùng để chuyển đổi các đối tượng UI Xamarin Forms sang giao diện dùng cho t ng nền tảng. ưới đây là ví dụ s dụng các control được thiết kế giao diện cho các các nền tảng Android ,iOS và UWP mà ch cần một lần code.
14 do an NỀN TẢNG KIẾN THỨC Hình 1-2 Ví dụ về các Control trên các nền tảng XAML viết t t của eXtensible Application Markup Language được giới thiệu đầu tiên trong ứng dụng WPF (Windows Presentation Foundation). XAML là ngôn ngữ đánh dấu, th a kế t ngôn ngữ XML và có một số tiện ích c bản sau: + Với XAML, các trang, bố cục, các điều khiển được thể hiện một cách cấu tr c với các phần t XML và các thuộc tính tư ng ứng. + Tách bạch giữa việc thiết kế giao diện và lập tr nh. Điều này cho phép các nhà thiết kế và các nhà lập tr nh có thể tập trung vào “chuyên môn” của m nh mà không cần can thiệp lẫn nhau.
+ Xaml đặc biệt phù hợp để s dụng với kiến tr c ứng dụng MVVM(Model-View- ViewModel).3 Môi trƣờng phát triển Cách lựa chọn và thiết lập phần cứng và phần mềm tùy thuộc vào t ng nền tảng mà ch ng ta lựa chọn để phát triển và môi trư ng phát triển tốt nhất cho ch ng ta. 15 do an NỀN TẢNG KIẾN THỨC 1.1 Machines và IDEs Nếu muốn phát triển ứng dụng iOS,ch ng ta sẽ cần một hệ điều hành Mac OS để build iPhone hoặc một ứng dụng iOS khác. Ch ng ta ch có thể s dụng Xamarin Studio và Xamarin Forms trên hệ điều hành Mac OS để phát triển ứng dụng iOS. Đối với ứng dụng Android,có thể phát triển trên Xamarin Studio của Mac hoặc trên Visual Studio của Windows.2 Device và Simulator Để test các chư ng tr nh Xamarin Forms ,ch ng ta có thể test trên thiết bị di động thức bằng cáp US nối với máy tính hoặc s dụng thiết bị giả lập.
Giả lập iPhone và iPad chạy được trên Mac.Tuy nhiên,v các máy Mac không có màn h nh cảm ứng nên cần s dụng chuột hoặc bàn phím để mô ph ng cảm ứng.Ch ng ta cũng có thể kết nối Mac với thiết bị thật,nhưng cần cung cấp nó như một thiết bị dành cho nhà phát triển. Trong thực tế ,Các tr nh giả lập Android được cung cấp bởi Google có xu hướng chậm và nặng mặc dù ch ng rất linh hoạt trong việc mô ph ng các thiết bị Android thực.May m n thay,Visual Studio hiện đ có tr nh giả lập Android riêng hoạt động khá tốt.Các thiết bị Android thực th rất dễ kết nối đến máy Mac hoặc Windows để chạy ứng dụng,nhưng cần được bật chế độ US ebugging trên thiết bị.4 Ƣu điểm và nhƣợc điểm của ứng dụng Xamarin Forms 1.1 Chia sẻ code ở mọi nơi Khi viết một ứng dụng s dụng bộ công cụ của Xamarin th về c bản bạn đang s dụng một lớp tr u tượng phía trên các S K thực sự của iOS và Android. Điều này có nghĩa là bạn sẽ thu được kết quả là một ứng dụng native hoàn toàn với giao diện dùng native trên mỗi nền tảng. Khi bạn tạo ứng dụng trên Xamarin, bạn s dụng cùng ngôn ngữ, API và cấu tr c dữ liệu để chia sẻ trung b nh 75% code trên tất cả các nền tảng điện 16 do an NỀN TẢNG KIẾN THỨC thoại di động.
Logic ứng dụng này có thể dễ dàng chia sẻ trên nhiều nền tảng. 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. Hình 1-3 Hình mô tả chia sẽ code trong Xamarin.2 Performance như Native Không giống như phư ng pháp kết hợp truyền thống dựa trên các công nghệ web, một ứng dụng đa nền tảng được xây dựng với Xamarin cũng có thể xem vào hàng native. Các số liệu performances là tư ng đư ng khi so sánh với các số liệu performance của Java, Kotlin cho Android và Objective-C hoặc Swift cho ứng dụng phát triển ứng dụng iOS native.
H n thế nữa, performance liên tục được cải thiện để phù hợp hoàn toàn với tiêu chuẩn của lập tr nh native. Nền tảng Xamarin cung cấp là giải pháp để testing và theo dõi hoạt động của ứng dụng. Xamarin Test Cloud kết hợp với công cụ Xamarin Test Recorder cho phép bạn chạy các UI test tự động và xác định các vấn đề về performance trước khi ứng dụng release. Tuy nhiên, dịch vụ này có tính phí.
H nh dưới đây cho ch ng 17 do an NỀN TẢNG KIẾN THỨC ta thấy th i gian mở một ứng dụng HelloWorld bằng ứng dụng native, ứng dụng viết bằng Xamarin Native, ứng dụng viết bằng Xamarin.Forms: Hình 1-4 Số liệu performances 1.3 Một số ưu điểm khác Một số điểm cộng cho Xamarin như: Có khả năng lựa chọn UI layout Tích hợp OAuth Tích hợp REST APIs t xa Công nghệ dẫn đư ng và x lý tín hiệu th i gian thực cho ứng dụng định vị Tích hợp mạng x hội Có bộ c sở dữ liệu SQLite nh ng Thư viện XAML cho phép xây dựng một loạt ứng dụng Hỗ trợ data binding 18 do an NỀN TẢNG KIẾN THỨC 1.2 Nhƣợc điểm 1.1 Ứng dụng thực hiện chậm hơn và yêu cầu nhiều dung lượng hơn trên thiết bị Ứng dụng Xamarin lớn h n, nặng h n so với ứng dụng native. So sánh với ứng dụng native nó chiếm nhiều h n vài Mb so với Java/Objective C tư ng ứng. Kích thước của một ứng dụng code bằng xamarin là 3Mb, trong khi code bằng Objective C ch chiếm 172 Kb. Càng s dụng nhiều API, càng nhiều lưu trữ bị chiếm trên thiết bị.2 Khuyết điểm của AOT Compiler Xamarin Forms cũng có những khuyết điểm AOT compliler.
Nó không được complie các đoạn code gọn gàng như Xcode. Hạn chế của Xamarin ảnh hưởng đến cả phát triển, test tải app lên store. Hạn chế chính đối với iOS là nó không hỗ trợ sinh code tự động. Visual Studio biuld code lâu.
Cái này tất cả các lập tr nh viên Xamarin đều đang phải sống chung với lũ, một lần build sẽ mất rất lâu t 3 đến 10 ph t cho solution với 30 project Đôi l c thông báo lỗi không rõ ràng chủ yếu trên Android v nó là 1 công nghệ mới nên vẫn chưa được hoàn hoản mong rằng Microsoft sẽ fix trong tư ng lai.3 Cộng đồng hỗ trợ ít Cộng đồng Xamarin ít h n so với cộng đồng của iOS hay Android nên để t m kiếm được 1 developer Xamarin có kinh nghiệm là chuyện không dễ dàng g dù Xamarin là nền tảng được phát triển nh sự hỗ trợ t Microsoft. Theo nhiều nguồn thông tin, cộng đồng Xamarin chiếm 10% cộng động lập tr nh mobile toàn cầu dựa trên thực tế là nền tảng này cung cấp tối đa hỗ trợ cho các developer. Cụ thể, có một platform giáo dục chuyên biệt tại ĐH Xamarin, cung cấp kiến thức và khoá huấn luyện cho những ai mới tiếp cận công nghệ này. Kết quả là learning curve của 1 engineer C#/.Net kinh nghiệm sẽ được tối thiểu hóa.Forms hỗ trợ rất nhiều giao diện ngư i dùng: 19 do an NỀN TẢNG KIẾN THỨC Animation: Các lớp Animation trong Xamarin.Forms hướng đến các thuộc tính khác nhau của các yếu tố trực quan, với một Animation điển h nh thay đổi dần một thuộc tính t giá trị này sang giá trị khác trong một khoảng th i gian.
o Simple Animations: Các lớp ViewExtentions cung cấp phư ng thức có thể được s dụng để xây dựng các h nh ảnh động đ n giản như rotate (xoay), scale, translate và fade (m dần). o Easing Functions: Xamarin.Forms bao gồm một lớp Easing cho phép ch định chức năng chuyển để kiểm soát cách các animation nhanh hay chậm khi ch ng đang hoạt động. o Custom Animations: Các lớp Animation là các khối xây dựng của tất cả các h nh ảnh động Xamarin.Forms, với các phư ng pháp mở rộng trong các lớp ViewExtensions tạo ra một hoặc nhiều đối tượng Animation. oxView: là một h nh chữ nhật đ n giản có chiều rộng, chiều cao và màu s c được ch định.
oxView có thể được s dụng để trang trí, đồ họa thô s và tư ng tác với ngư i dùng thông qua cảm ứng utton: là kiểu tư ng tác c bản nhất trong tất cả các control của Xamarin. utton thư ng hiển thị một chuỗi văn bản ng n cho thấy một lệnh, utton cũng có thể hiển thị một h nh ảnh itmap hoặc kết hợp văn bản và h nh ảnh.