1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(LUẬN văn THẠC sĩ) tìm hiểu đánh giá các framework phát triển ứng dụng di động đa nền tảng luận văn ths máy tính 604801

53 4 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Đánh Giá Các Framework Phát Triển Ứng Dụng Di Động Đa Nền Tảng
Tác giả Hồ Danh Chuẩn
Người hướng dẫn TS. Trần Thị Minh Châu
Trường học Đại học Quốc gia Hà Nội
Chuyên ngành Công nghệ thông tin
Thể loại luận văn thạc sĩ
Năm xuất bản 2017
Thành phố Hà Nội
Định dạng
Số trang 53
Dung lượng 5,23 MB

Cấu trúc

  • CHƯƠNG 1: GIỚI THIỆU (10)
    • 1.1. Đặt vấn đề (10)
    • 1.2. Mục tiêu và phạm vi nghiên cứu (11)
  • CHƯƠNG 2: NGHIÊN CỨU TỔNG QUAN VỀ PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG ĐA NỀN TẢNG (12)
    • 2.1. Các cách tiếp cận trong việc phát triển ứng dụng di động (12)
      • 2.1.1. Phát triển ứng dụng native (12)
      • 2.1.2. Phát triển ứng dụng web (13)
      • 2.1.3. Phát triển ứng dụng hybrid (14)
    • 2.2. Ionic framework (14)
      • 2.2.1. Giới thiệu (14)
      • 2.2.2. Kiến trúc (16)
      • 2.2.3. Điểm nổi bật (20)
      • 2.2.4. Ưu điểm và nhược điểm (22)
    • 2.3. Xamarin framework (24)
      • 2.3.1. Điểm nổi bật (25)
      • 2.3.2. Kiến trúc [3] (26)
      • 2.3.3. Ưu điểm và nhược điểm (28)
  • CHƯƠNG 3: SO SÁNH VÀ ĐÁNH GIÁ (32)
    • 3.1 So sánh (32)
    • 3.2 Đánh giá (34)
  • CHƯƠNG 4: ỨNG DỤNG THỬ NGHIỆM (43)
    • 4.1 Ứng dụng so sánh khả năng phát triển trên hai nền tảng (43)
      • 4.1.1. Nội dung ứng dụng (43)
      • 4.1.2. Kết quả thực nghiệm (46)
    • 4.2. Ứng dụng so sánh hiệu năng (48)
      • 4.2.1. Nội dung thực nghiệm (48)
      • 4.2.2. Kết quả thực nghiệm (48)
    • 4.3 Khuyến nghị (49)
  • CHƯƠNG 5: KẾT LUẬN (51)
  • TÀI LIỆU THAM KHẢO (52)

Nội dung

GIỚI THIỆU

Đặt vấn đề

Hệ sinh thái di động ngày nay đóng vai trò thiết yếu trong chiến lược kinh doanh của các doanh nghiệp Việc phát triển và phát hành ứng dụng di động phục vụ mục đích kinh doanh ngày càng được các doanh nghiệp chú trọng Tuy nhiên, một thách thức lớn mà họ phải đối mặt là lựa chọn phương pháp tiếp cận tối ưu để đưa ứng dụng đến tay khách hàng đúng thời điểm, bất kể thiết bị hay nền tảng mà người dùng cuối đang sử dụng.

Tùy thuộc vào từng ứng dụng, yêu cầu về tính năng, trải nghiệm người dùng và vòng đời sản phẩm có thể khác nhau Một số ứng dụng chỉ có vòng đời ngắn, phục vụ cho các sự kiện nhất định, trong khi những ứng dụng khác lại có vòng đời dài và gắn liền với sự tồn tại của doanh nghiệp Dù vậy, điểm chung là tất cả ứng dụng đều cần được phát triển nhanh chóng, tiết kiệm chi phí và tương thích với nhiều thiết bị Để lựa chọn chiến lược phát triển ứng dụng hiệu quả, các bên liên quan cần đánh giá tiềm năng của ứng dụng, đồng thời cân nhắc giữa yêu cầu và thời gian cần thiết để đưa sản phẩm ra thị trường.

Sự phát triển của nền tảng di động phụ thuộc vào trải nghiệm người dùng, với Apple dẫn đầu thị phần nhờ vào chất lượng đồng nhất Các nhà phát triển ứng dụng đa nền tảng cần tập trung vào việc đáp ứng yêu cầu người dùng, trong khi iOS và Android là hai nền tảng chính để phát triển ứng dụng, do Blackberry và Windows Phone đã ngừng sản xuất Mỗi hệ điều hành có công nghệ và ngôn ngữ lập trình riêng, đòi hỏi lập trình viên phải có kỹ năng đa dạng để đảm bảo sản phẩm đáp ứng được yêu cầu về độ phủ Việc phát triển ứng dụng trên nhiều nền tảng có thể tốn thời gian và công sức, do đó, luận văn sẽ giới thiệu các phương pháp phát triển ứng dụng di động, cùng với so sánh hai bộ khung phát triển đa nền tảng để giúp các nhà phát triển chọn lựa phương án phù hợp.

Mục tiêu và phạm vi nghiên cứu

Luận văn nhằm so sánh các phương pháp phát triển ứng dụng di động dựa trên các tiêu chí đánh giá cần thiết để đảm bảo sự thành công của ứng dụng trong cộng đồng Bài viết sẽ giới thiệu các cách tiếp cận phát triển ứng dụng di động hiện nay và tập trung vào hai bộ khung phát triển đa nền tảng phổ biến là Ionic và Xamarin Luận văn cung cấp cái nhìn tổng quan về kiến trúc, đặc điểm, ưu điểm và nhược điểm của hai bộ khung này Dựa trên các đặc điểm của Ionic và Xamarin, luận văn sẽ so sánh chúng dựa trên các tiêu chí quan trọng như giao diện, trải nghiệm người dùng, thiết kế bố cục ứng dụng, cộng đồng, hỗ trợ đa luồng và kiểm thử.

Luận văn được chia thành các phần như sau:

Chương hai của bài viết tập trung vào việc phát triển ứng dụng di động thông qua hai bộ khung phổ biến là Ionic và Xamarin Đầu tiên, bài viết sẽ giới thiệu ba phương pháp phát triển ứng dụng di động hiện nay Tiếp theo, sẽ có phần phân tích chi tiết về từng bộ khung, bao gồm tính năng, kiến trúc, đặc điểm nổi bật, cùng với ưu và nhược điểm của Ionic và Xamarin Cuối cùng, chương ba sẽ cung cấp bảng so sánh khả năng của từng bộ khung với phát triển ứng dụng native, đồng thời nêu rõ các tiêu chí quan trọng mà các nhà phát triển cần cân nhắc khi lựa chọn bộ khung phát triển phù hợp.

Chương bốn của luận văn sẽ trình bày việc xây dựng ứng dụng thử nghiệm nhằm minh họa khả năng phát triển và hiệu năng của hai nền tảng Ionic và Xamarin Qua đó, luận văn sẽ đưa ra một số khuyến nghị cho các nhà phát triển trong việc lựa chọn bộ khung phát triển phù hợp với nhu cầu của họ.

NGHIÊN CỨU TỔNG QUAN VỀ PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG ĐA NỀN TẢNG

Các cách tiếp cận trong việc phát triển ứng dụng di động

Có ba cách phát triển ứng dụng di động phổ biến: native, web và hybrid, tương ứng với các sản phẩm là ứng dụng native, ứng dụng web và ứng dụng hybrid Ứng dụng native mang lại trải nghiệm người dùng tốt nhất và sự đồng nhất với thiết bị, nhưng yêu cầu nhiều thời gian và kỹ năng trên các nền tảng riêng biệt Ngược lại, ứng dụng web có thể triển khai nhanh chóng nhưng gặp nhiều hạn chế Ứng dụng hybrid ra đời nhằm kết hợp những ưu điểm của ứng dụng native và ứng dụng web, thường được phát triển bằng cách kết hợp các native container với ngôn ngữ lập trình web.

2.1.1 Phát tri ể n ứ ng d ụ ng native Đây là cách tiếp cận đơn giản nhất trong việc phát triển ứng dụng nhưng cũng là cách tốn thời gian nhất Mỗi nền tảng di động cung cấp cho các nhà phát triển một môi trường phát triển hoàn toàn khác nhau, và mỗi nền tảng có một phong cách giao diện và trải nghiệm người dùng tương đối khác nhau Ví dụ như hệ điều hành Android có hàng phím ảo mà hệ điều hànhiOS không có, thanh tab của Android thường được đặt ở trên của ứng dụng trong khi iOS thì thanh tab được mặc định nằm ở dưới Apple sử dụng Objective-C/Swift/Objective-C++ hoặc có thể là C++ để phát triển ứng dụng cho các thiết bị iOS, yêu cầu phải có máy tính chạy hệ điều hành MacOS, trong khi đó Android thường sử dụng Java/XML/Kotlin như ngôn ngữ lập trình đi kèm với Android Development Tools được tích hợp với các IDE Microsoft thì dùng C#/XAML/.Net Framework để phát triển ứng dụng Windows Phone trên Visual Stuido IDE

Việc sử dụng công cụ phát triển từ các nhà cung cấp nền tảng giúp ứng dụng tận dụng tối đa tính năng với hiệu năng cao, nhưng đồng thời cũng tốn kém về thời gian và chi phí Mỗi nền tảng yêu cầu một đội phát triển riêng hoặc đội với kỹ năng đa nền tảng, dẫn đến chi phí lớn cho các nhà đầu tư muốn duy trì ứng dụng phức tạp Tuy nhiên, đối với ứng dụng có vòng đời dài và yêu cầu cao về độ ổn định, phương pháp tiếp cận native là lựa chọn hàng đầu Nếu chỉ tập trung vào một nền tảng, đây cũng là một giải pháp tốt Ngược lại, nếu cần ra mắt ứng dụng nhanh, hỗ trợ nhiều nền tảng và có ngân sách hạn chế, nên xem xét các phương pháp phát triển khác.

2.1.2 Phát tri ể n ứ ng d ụ ng web

Cách tiếp cận phát triển ứng dụng qua nền tảng web đang trở nên phổ biến, khi nhiều người tin rằng thành công của công nghệ web trên desktop sẽ được lặp lại trên thiết bị di động Các ứng dụng này dựa vào WebKit trên từng nền tảng, cho phép nhà phát triển tạo ra trang web với giao diện và trải nghiệm người dùng tương tự như ứng dụng gốc Đây là phương pháp phát triển đơn giản nhất, giúp logic của ứng dụng có thể dễ dàng áp dụng chung giữa các nền tảng khác nhau.

Các ứng dụng web thường sử dụng Javascript, một ngôn ngữ phổ biến trong phát triển web, được hỗ trợ trên tất cả các trình duyệt di động hiện nay, giúp ứng dụng dễ dàng tiếp cận người dùng Các nhà phát triển có thể đơn giản hóa quá trình lập trình ứng dụng di động bằng cách sử dụng các bộ khung phát triển như AngularJS và JQuery Mobile, vốn tích hợp nhiều thành phần giao diện và tuân thủ mô hình MVC Việc tích hợp các bộ khung Javascript cũng rất dễ dàng, chỉ cần thêm tập tin Javascript vào dự án và tham chiếu đến nó mà không cần chỉnh sửa môi trường phát triển hiện có.

Các ứng dụng di động dựa trên nền web có thể tương tự như ứng dụng native, nhưng hiệu suất là một vấn đề quan trọng Người dùng phải truy cập tính năng qua trình duyệt, dẫn đến việc yêu cầu kết nối mạng và có thể gặp độ trễ Ngoài ra, ứng dụng web cũng có thể gặp khó khăn trong việc lưu trữ bộ nhớ và sử dụng các thành phần phần cứng của thiết bị.

2.1.3 Phát tri ể n ứ ng d ụ ng hybrid

WebKit đã mở ra một hướng đi mới trong phát triển ứng dụng di động với mô hình ứng dụng hybrid, kết hợp giữa ứng dụng native và ứng dụng web Các ứng dụng hybrid không hoàn toàn là ứng dụng native vì giao diện của chúng được xây dựng thông qua Webview, nhưng cũng không phải là ứng dụng web thực sự do chúng được đóng gói để phân phối và có khả năng sử dụng API của từng nền tảng Mô hình hybrid thay thế vỏ bọc WebKit bằng một thành phần gọi là native container, giúp ứng dụng hoạt động độc lập trên các nền tảng khác nhau.

Các ứng dụng hybrid mang đến trải nghiệm người dùng khác nhau cho từng nền tảng, thay vì giao diện web giống nhau như ứng dụng web truyền thống Nền tảng Titanium của Appcelerator và Ionic hiện đang nổi bật trong phát triển ứng dụng đa nền tảng Nhà phát triển có thể sử dụng bộ kỹ năng cần thiết để xây dựng ứng dụng trên nhiều nền tảng khác nhau, với lợi thế truy cập vào các thành phần phần cứng của thiết bị Hiệu năng của các framework này phụ thuộc vào cách tổ chức và tương tác với hệ điều hành Tuy nhiên, chúng thường không miễn phí hoàn toàn và có thể áp dụng mô hình bản quyền, trả phí định kỳ hoặc freemium Các nhà phát triển thường cần dựa vào bên thứ ba để nhanh chóng đưa ứng dụng ra thị trường, như các trình cắm cho Cordova/PhoneGap Cần lưu ý rằng những framework này là đa nền tảng, không phải cho mọi nền tảng.

Ionic framework

Ionic là một framework phát triển ứng dụng di động mã nguồn mở, ra mắt vào năm 2013 bởi công ty Drifty, với mục tiêu đạt được thành công như nền tảng web trên desktop Được xây dựng trên nền tảng AngularJS và Apache Cordova, Ionic cung cấp công cụ cho việc phát triển ứng dụng hybrid trên các hệ điều hành di động, sử dụng công nghệ web như CSS, HTML5, SASS và Javascript Ứng dụng được phát triển có thể được phân phối qua các chợ ứng dụng trên thiết bị nhờ vào trình đóng gói bản địa.

Ionic là một bộ khung phát triển giao diện front-end, chịu trách nhiệm về giao diện và tương tác của người dùng với ứng dụng Nó hỗ trợ nhiều thành phần native trên các nền tảng di động và cung cấp sẵn các animation Điểm khác biệt của Ionic so với các framework khác là các thành phần giao diện của nó có vẻ ngoài và cách hoạt động tương tự như các thành phần trong hệ điều hành di động, hoàn toàn tự động mà không cần chỉnh sửa từ phía nhà phát triển, chẳng hạn như thanh tab trong Ionic.

Hình 2.1: Thanh Tab bar trong Ionic, biểu diễn trên Android và iOS

Bộ khung Ionic bao gồm ba thành phần chính:

Một bộ khung phát triển giao diện sử dụng nền tảng SASS được thiết kế và tối ưu cho giao diện trên các thiết bị di động

Một bộ khung phát triển AngularJS để xây dựng ứng dụng

Một trình biên dịch để đóng gói và biên dịch các thành phần HTML, CSS, JS thành ứng dụng trên các thiết bị di động

Ionic được phát triển dựa trên Cordova, trình biên dịch mặc định, giúp đóng gói các thành phần HTML, CSS và JS thành ứng dụng di động Cordova cung cấp kiến trúc plugin, cho phép ứng dụng JavaScript truy cập các tính năng native trên thiết bị thông qua mã chạy trên trình duyệt Ứng dụng Ionic bao gồm mã nguồn giao diện, logic và tài nguyên, trong khi WebView chịu trách nhiệm biên dịch ứng dụng từ mã nguồn web Ứng dụng Ionic tương tác với các thành phần nền tảng thông qua WebView hoặc các plugin tích hợp, tạo nên kiến trúc tương tự như ứng dụng Cordova.

Hình 2.2: Cấu trúc ứng dụng Ionic/Cordova 1

Apache Cordova bao gồm các thành phần:

Mã nguồn cho các thành phần native container được hỗ trợ bởi từng nền tảng, chịu trách nhiệm xây dựng các ứng dụng Cordova trên thiết bị.

Các plugin được thiết kế để cung cấp giao diện lập trình ứng dụng (API) cho phép các ứng dụng trong container truy cập các tính năng thiết bị mà trình duyệt thông thường không hỗ trợ.

Tập hợp các công cụ quản lý giúp tối ưu hóa quá trình phát triển dự án, bao gồm quản lý vòng đời các plugin, xây dựng ứng dụng bằng native SDK, và thực hiện kiểm thử trên trình mô phỏng.

Các trình cắm trong ứng dụng Ionic/Cordova đóng vai trò quan trọng trong việc tương tác với các API nền tảng Mỗi trình cắm bao gồm hai phần: phần đầu tiên là các API viết bằng Javascript, hoạt động trên các thành phần WebKit, cho phép ứng dụng hybrid sử dụng; phần thứ hai là các API được phát triển bằng các ngôn ngữ lập trình khác.

Apache Cordova là một framework phát triển ứng dụng di động mã nguồn mở, cho phép sử dụng công nghệ web chuẩn như HTML5, CSS3 và JavaScript để phát triển ứng dụng đa nền tảng Ứng dụng hoạt động trong các wrapper nhắm đến từng nền tảng và sử dụng các API chuẩn để truy cập các khả năng của thiết bị như cảm biến, dữ liệu và trạng thái mạng Cordova cung cấp một bộ plugin giúp kết nối giữa các thành phần Cordova và native, cho phép gọi mã native từ JavaScript Khi tạo một dự án Cordova, không có plugin nào được cài đặt sẵn, vì vậy người dùng cần thêm plugin theo nhu cầu.

Hình 2.3: Kiến trúc của một Cordova plugin 2

Khi khởi tạo một ứng dụng trên Ionic phiên bản 2.0, cấu trúc của dự án đó sẽ bao gồm một số thành phần được khởi tạo sẵn như sau:

Thư mục platform chứa các dự án iOS và Android của nhà phát triển, nhưng họ thường không cần can thiệp vào các thư mục này trừ khi cần thực hiện những thủ thuật cụ thể cho từng nền tảng hoặc khi đưa ứng dụng lên cửa hàng ứng dụng.

Thư mục hooks được tối ưu hóa cho các tác vụ tùy chỉnh, mang lại nhiều lợi ích đặc biệt cho các dự án lớn Nó giúp tự động hóa quy trình chạy và chỉnh sửa mã nguồn, từ đó nâng cao hiệu suất làm việc.

Thư mục merges được sử dụng để ghi đè các tệp tin cho từng nền tảng cụ thể Chẳng hạn, nếu tồn tại hai tệp tin ở hai đường dẫn khác nhau như 'merges/ios/something.js', thư mục này sẽ giúp quản lý và xác định tệp tin nào sẽ được sử dụng cho từng nền tảng.

Khi triển khai ứng dụng trên nền tảng iOS, tệp tin 'something.js' sẽ được thay thế bằng tệp tin trong thư mục merges Thư mục này rất hữu ích cho những ai muốn tùy chỉnh các thành phần cho một nền tảng cụ thể.

2 https://blog.codecentric.de/en/2014/11/ionic-angularjs-framework-on-the-rise/

- Thư mục plugins là nơi Cordova chứa các plugin mà nhà phát triển thêm vào ứng dụng

SCSS là thư mục chứa các file SASS, và dù không bắt buộc, việc sử dụng SASS khi phát triển ứng dụng với Ionic mang lại nhiều lợi ích Ionic được xây dựng trên nền tảng SASS, cho phép nhà phát triển dễ dàng tùy chỉnh nhiều style mặc định mà không cần phải sử dụng quá nhiều ghi đè CSS.

- www là thư mục làm việc chính Đây là nơi sẽ viết các đoạn mã chính cho ứng dụng của mình

• Thư mục CSS chứa các file CSS tự xây dựng hoặc các file SCSS được sinh ra

• Img là nơi đặt các ảnh của ứng dụng

Ionic cung cấp cho các nhà phát triển một số tệp JavaScript mặc định để khuyến khích cấu trúc dự án theo kiến trúc MVC Cụ thể, 'app.js' xác định luồng ứng dụng, 'controllers.js' chứa các controller cho các trạng thái ứng dụng, 'services.js' lưu trữ các dịch vụ kết nối đến API bên thứ ba, và 'directives.js' chứa các directive của AngularJS Tuy nhiên, việc cấu trúc ứng dụng không phải là bắt buộc đối với các nhà phát triển.

• Libs chứa các thư viện ứng dụng sử dụng

Templates chứa các view trong ứng dụng, với file index.html mặc định có sẵn trong thư mục 'www' Ngoài ra, còn nhiều mẫu khác có thể được thêm vào một cách linh hoạt.

Xamarin framework

Xamarin, bộ khung phát triển ứng dụng đa nền tảng, được giới thiệu vào ngày 16/5/2011, có nguồn gốc từ dự án mã nguồn mở Mono Sau khi Microsoft mua lại vào ngày 24/2/2016, Xamarin đã trở thành một phần trong bộ công cụ Microsoft Visual Studio, với cam kết mở mã nguồn của Xamarin SDK Người dùng Visual Studio dành cho doanh nghiệp sẽ được sử dụng miễn phí các tính năng doanh nghiệp của Xamarin Microsoft cũng phát hành toàn bộ dự án Mono và các phần mềm Xamarin SDK khác dưới giấy phép MIT thông qua NET Foundation.

Xamarin là một bộ khung phát triển ứng dụng cho phép xây dựng ứng dụng trên nền tảng Android, iOS và Windows bằng ngôn ngữ C# Nó cung cấp các thư viện và runtime cho cả ba nền tảng, đồng thời biên dịch native mà không cần trình thông dịch, đảm bảo hiệu suất cao cho các ứng dụng, kể cả những ứng dụng yêu cầu xử lý nặng như trò chơi Mặc dù không sử dụng ngôn ngữ lập trình riêng cho từng hệ điều hành, Xamarin vẫn được coi là một bộ khung phát triển ứng dụng gốc.

"Nativeness" được hiểu là hệ sinh thái mà các nhà cung cấp như Apple hoặc Google lựa chọn để phát triển ứng dụng trên hệ điều hành của họ, ví dụ như Android Android kết hợp giữa Linux và Java SDK, trong đó Java sử dụng JNI để gọi các API C/C++ Tương tự, Xamarin cũng áp dụng phương pháp này thông qua PInvoke (Platform Invoke), một công nghệ NET cho phép gọi các API gốc bằng C# Đặc biệt, Xamarin hỗ trợ một phần mở rộng mang tên Microsoft's Razor Extension, giúp các nhà phát triển tạo ra ứng dụng hybrid, tận dụng sức mạnh của nền tảng C# trong Xamarin.

Xamarin cung cấp hai sản phẩm chính là Xamarin.iOS và Xamarin.Android, cả hai đều dựa trên nền tảng Mono Đối với iOS, trình biên dịch AOT chuyển đổi ứng dụng thành mã máy ARM, trong khi với Android, mã nguồn được biên dịch thành IL và sau đó được chuyển đổi thành mã máy bởi trình biên dịch JIT khi ứng dụng chạy Xamarin tối ưu hóa hiệu suất chạy ứng dụng bằng cách tự động quản lý bộ nhớ, thu dọn rác và xử lý các tác vụ liên quan đến nền tảng.

- Liên kết với các SDK của các nền tảng

Xamarin cho phép tương tác với hầu hết các SDK của iOS và Android, với các liên kết mạnh giúp dễ dàng điều hướng và sử dụng các API Điều này tối ưu hóa thời gian biên dịch, kiểm tra kiểu và phát triển, từ đó giảm thiểu lỗi trong thời gian chạy và nâng cao chất lượng ứng dụng.

- Tương tác với Objective-C, Java, C/C++

Xamarin cho phép nhà phát triển tương tác trực tiếp với các thư viện Objective-C, Java, C và C++, giúp tận dụng sức mạnh của các thư viện bên thứ ba trên iOS và Android Ngoài ra, Xamarin còn cung cấp các dự án liên kết, cho phép dễ dàng tích hợp các thư viện Objective-C và Java thông qua cú pháp khai báo.

- Sử dụng ngôn ngữ hiện đại

C# là một trong những ưu điểm nổi bật của Xamarin, nhờ vào nhiều cải tiến đáng chú ý so với các ngôn ngữ lập trình cũ như Objective-C và Java Các tính năng nổi bật của C# bao gồm Dynamic Language Features, Functional Constructs như Lambdas, LINQ, Parallel Programming và Generics, mang lại sự linh hoạt và hiệu suất cao trong phát triển ứng dụng.

- Các lớp thư viện cơ bản

Các ứng dụng Xamarin tận dụng nhiều thư viện NET có sẵn, mang lại các tính năng mạnh mẽ như XML, cơ sở dữ liệu, serialization, IO, chuỗi và mạng Ngoài ra, mã C# có thể được biên dịch để sử dụng trong các ứng dụng, cho phép truy cập hàng ngàn thư viện chưa có trong các lớp thư viện cơ bản.

Một IDE chất lượng như Xamarin Studio trên Mac OS X hoặc Visual Studio trên Windows là công cụ hỗ trợ đắc lực cho các nhà phát triển ứng dụng Những IDE này cung cấp nhiều tính năng hữu ích như tự động hoàn thiện mã, kiểm soát phiên bản, quản lý dự án và các mẫu ứng dụng, giúp tăng hiệu suất làm việc và cải thiện quy trình phát triển.

- Hỗ trợ đa nền tảng di động

Xamarin hỗ trợ ba nền tảng di động phổ biến: iOS, Android và Windows Phone, cho phép chia sẻ tới 90% mã nguồn giữa các ứng dụng Thư viện Xamarin.Mobile cung cấp các API thống nhất, giúp tối ưu hóa việc sử dụng tài nguyên trên cả ba nền tảng Điều này không chỉ tiết kiệm thời gian mà còn giảm thiểu công sức trong quá trình phát triển, giúp đưa ứng dụng ra thị trường nhanh chóng hơn.

Một ứng dụng được xây dựng trên nền tảng Xamarin tiêu biểu có thể được chia thành sáu tầng:

Tầng dữ liệu đóng vai trò quan trọng trong việc đảm bảo tính thống nhất và không xung đột của dữ liệu Trong các hệ điều hành di động, lớp này thường được triển khai thông qua các cơ sở dữ liệu SQLite, giúp quản lý và lưu trữ dữ liệu một cách hiệu quả.

Tầng truy xuất dữ liệu cung cấp giao diện cho ứng dụng, cho phép thực hiện các câu lệnh truy vấn vào cơ sở dữ liệu mà không tiết lộ chi tiết về cách thức hoạt động của các phương thức này.

- Tầng nghiệp vụ: là nơi chưa các logic của ứng dụng và các đối tượng trong ứng dụng

Tầng truy xuất dịch vụ là thành phần quan trọng để kết nối và tương tác với các dịch vụ đám mây, bao gồm các dịch vụ web như REST, JSON, và WCF Lớp này không chỉ đóng gói các hành vi tương tác mà còn cung cấp các API đơn giản, giúp các tầng ứng dụng và giao diện dễ dàng sử dụng.

- Tầng ứng dụng: mã nguồn ở tầng này thường là những đoạn mã cho từng nền tảng cụ thể hoặc là đoạn mã cho một ứng dụng cụ thể

Tầng giao diện là phần quan trọng trong ứng dụng, cung cấp các màn hình và thành phần giao diện cần thiết, cùng với các trình quản lý chịu trách nhiệm xử lý và tương tác với chúng.

Một ứng dụng không nhất thiết phải bao gồm tất cả các tầng, chẳng hạn như tầng truy xuất dịch vụ có thể không cần thiết đối với các ứng dụng không yêu cầu truy cập tài nguyên trên mạng Đối với những ứng dụng đơn giản, có thể kết hợp tầng dữ liệu và tầng truy xuất dữ liệu thành một.

SO SÁNH VÀ ĐÁNH GIÁ

So sánh

Bảng so sánh dưới đây nêu bật các tính năng chính của nền tảng iOS và khả năng tương ứng của hai bộ khung phát triển Ionic và Xamarin.

Bảng 3.1: Bảng so sánh các tính năng hỗ trợ của Ionic và Xamarin trên nền tảng iOS iOS Ionic Xamarin

Các ứng dụng mở rộng không được hỗ trợ hoàn toàn, chỉ có một số tính năng hạn chế, chẳng hạn như không thể truy cập vào camera hoặc microphone của thiết bị và không thể nhận dữ liệu qua AirDrop.

Handoff Không hỗ trợ Có hỗ trợ

Document Picker Không hỗ trợ Có hỗ trợ

AirDrop Không hỗ trợ Có hỗ trợ

Hiển thị, xử lý văn bản

Hỗ trợ nhiều loại bàn phím khác nhau cho nhiều mục đích

Sử dụng các thành phần html để hiển thị các đoạn văn bản, sử dụng Javascript để xử lý các đoạn văn bản

Hỗ trợ nhiều kiểu bàn phím và các sự kiện liên quan với các plug in hỗ trợ

Sử dụng các thành phần có sẵn như Label, Entry, Editor để hiển thị văn bản

Có khả năng tuỳ biến các văn bản theo mong muốn

Hỗ trợ nhiều kiểu bàn phím khác nhau và các sự kiện liên quan

Cut/Copy/Paste Có plug in hỗ trợ các tác vụ sao chép/ cắt/ dán nhưng chỉ hỗ trợ văn bản

Bắt buộc phải viết các Dependency service cho từng nền tảng cụ thể

Hỗ trợ các giao diện nhập khác

Sử dụng trình cắm để hiển thị các giao diện phụ trên bàn phím

Hỗ trợ các giao diện nhập khác Đa tác vụ

Tác vụ chạy ngầm định

Hỗ trợ việc chạy các tác vụ khi ứng dụng ở chế độ nghỉ sử dụng trình cắm

Sử dụng Webworker để thực hiện các tác vụ trên các luồng khác nhau mặc dù có một số hạn chế

Hỗ trợ chạy các tác vụ khi ứng dụng ở chế độ nghỉ

Sử dụng các API Net hoặc các API native để tạo, quản lý các luồng tác vụ khác nhau

Autolayout Thiết kế đáp ứng Sử dụng một hệ thống các layout đẻ thiết kế giao diện phù hợp với nhiều thiết bị

Dịch vụ nhận thông báo

Hỗ trợ cả thông báo cục bộ và thông báo từ xa

Hỗ trợ cả thông báo cục bộ và thông báo từ xa

Nhận diện cử chỉ Hỗ trợ rất nhiều cử chỉ có sẵn Hỗ trợ rất nhiều cử chỉ có sẵn

Tương tác với danh bạ

Không có thành phần sẵn có để tương tác với danh bạ trên thiết bị, buộc các nhà phát triển phải tự thiết kế giao diện phù hợp cho từng nền tảng.

Xamarin hỗ trợ tương tự iOS

Tương tác với lịch Tương tự như với danh bạ, lập trình viên cũng phải tự xây dựng giao diện cho ứng dụng của mình

Xamarin hỗ trợ tương tự iOS

VolP Ionic tồn tại một số nhược điểm trong việc xây dựng một ứng dụng VolP do giới hạn của trình duyệt

Xamarin hỗ trợ tương tự iOS

Các dịch vụ ngang hàng

Ionic có các trình cắm hỗ trợ các kết nối ngang hàng sử dụng các giao diện WebRTC hoặc bluetooth

Xamarin hỗ trợ tương tự iOS Đồ hoạ Bắt buộc sử dụng GPU để đảm nhiệm các tác vụ liên quan đến đồ hoạ

Có thể phải tích hợp thêm một trình cắm đặc biệt để hỗ trợ việc xử lý đồ hoạ trên thết bị

Ionic không hỗ trợ các API bậc thấp cần thiết để xây dựng các thành phần như văn bản và hình ảnh, do đó không phù hợp cho các ứng dụng yêu cầu xử lý đồng thời nhiều hình ảnh và văn bản, chẳng hạn như Facebook.

Xamarin hỗ trợ tương tự iOS

Bảng so sánh cho thấy sự khác biệt giữa hai bộ khung phát triển: Ionic phụ thuộc vào nhiều plugin, trong khi Xamarin cung cấp hầu hết các tính năng trên iOS nhờ khả năng tương tác hiệu quả với các thư viện native.

Đánh giá

Trong bài viết này, chúng tôi sẽ so sánh hai bộ khung phát triển ứng dụng di động là Ionic và Xamarin dựa trên các tiêu chí cụ thể Các tiêu chí đánh giá ban đầu được đề xuất từ thảo luận giữa các nhà phát triển ứng dụng, đồng thời được bổ sung từ một số nghiên cứu khoa học.

Các nhà phát triển ứng dụng mong muốn mở rộng phạm vi tiếp cận sản phẩm của mình đến nhiều người dùng Đặc biệt trong hệ sinh thái di động với sự đa dạng về thiết bị và hệ điều hành, việc chọn bộ khung phát triển đa nền tảng phụ thuộc vào khả năng tương thích của nó với nhiều thiết bị khác nhau Hai tiêu chí quan trọng nhất là khả năng tùy biến giao diện và khả năng phản hồi với các kích cỡ màn hình khác nhau, vì chúng ảnh hưởng trực tiếp đến trải nghiệm người dùng Bên cạnh đó, các yếu tố như hỗ trợ từ bên thứ ba, dịch vụ web, hoạt ảnh và đa luồng cũng cần được xem xét kỹ lưỡng.

- Giao diện người dùng và trải nghiệm người dùng (User Interface và User eXperimence)

Cả Xamarin và Ionic đều cung cấp các thành phần giao diện thiết kế sẵn, tự động điều chỉnh theo từng nền tảng để mang lại trải nghiệm người dùng tốt nhất Tuy nhiên, số lượng thành phần này có thể không đủ cho các nhà phát triển có nhu cầu chức năng đặc biệt hoặc giao diện tùy biến Xamarin có ưu thế về số lượng thành phần so với Ionic và cho phép tùy chỉnh giao diện và hành vi của các thành phần mặc định một cách dễ dàng hơn Các API trên Xamarin được ánh xạ từ API native, giúp các nhà phát triển tham khảo tài liệu và thư viện dễ dàng hơn, mặc dù vẫn có sự khác biệt trong cách triển khai Ngược lại, việc tùy biến trên Ionic phức tạp hơn do yêu cầu tương tác với WebKit, khiến các nhà phát triển thường phải phụ thuộc vào sự hỗ trợ từ cộng đồng chuyên nghiệp.

- Thiết kế giao diện (Layout)

Một thách thức lớn trong phát triển ứng dụng di động là thiết kế giao diện có khả năng tương thích trên nhiều thiết bị và kích thước màn hình khác nhau Điều này trở nên phức tạp hơn trên nền tảng Android do sự phân mảnh lớn với nhiều thiết bị khác nhau về kích thước và phần cứng Đối với phát triển ứng dụng đa nền tảng, việc hỗ trợ nhiều nền tảng khác nhau càng làm tăng độ khó Ionic, với nền tảng công nghệ web, cho phép thiết kế giao diện sử dụng phương pháp thiết kế đáp ứng, trong khi Xamarin sử dụng các layout có sẵn như StackLayout để tạo giao diện.

Relaytive Layout và AbsoluteLayout trong Ionic tương tự như trong Android, nhưng không hoàn hảo cho việc thiết kế giao diện ứng dụng trên nhiều thiết bị khác nhau Lập trình viên có thể cần tùy chỉnh mã cho các thiết bị không phù hợp với layout chung Tuy nhiên, các thành phần giao diện của Ionic tối ưu hóa responsive, giúp hiệu suất ứng dụng không bị ảnh hưởng Cả Ionic và Xamarin đều cho phép tạo giao diện trong thời gian chạy, nhưng Ionic hỗ trợ tốt hơn cho việc kéo thả thiết kế, trong khi Xamarin yêu cầu viết mã bằng XAML Ionic Creator cung cấp tính năng kéo thả, mặc dù phiên bản miễn phí có nhiều giới hạn Xamarin có tính năng live preview, cho phép xem thay đổi giao diện khi cập nhật mã, trong khi Ionic hỗ trợ live renderer, hiển thị các thay đổi ngay trên trình duyệt sau khi lưu mã nguồn.

Hoạt ảnh đóng vai trò quan trọng trong việc nâng cao trải nghiệm người dùng trên ứng dụng di động, bên cạnh giao diện tĩnh Ionic sử dụng animation để thực hiện các chuyển động của đối tượng, nhưng khác với CSS3 animation trên nền tảng web, các nhà phát triển Ionic cần sử dụng một thành phần CSS đặc biệt để xử lý animation qua GPU, do CPU di động không đủ hiệu suất cho hoạt ảnh này Đây được gọi là tăng tốc phần cứng hoạt ảnh Tuy nhiên, việc phụ thuộc quá nhiều vào GPU có thể dẫn đến tiêu hao pin Tương tự, Xamarin cũng cung cấp nhiều hành động hoạt hoạ có sẵn và cho phép tùy biến thời gian cũng như kết hợp các hành động thành chuỗi.

- Các dịch vụ và thư viện từ bên thứ ba

Hiện nay, việc tích hợp dịch vụ web vào ứng dụng di động trở nên phổ biến, với Xamarin hỗ trợ nhiều công nghệ như RESTful, ASMX và WCF, trong khi Ionic hỗ trợ tốt dịch vụ web dựa trên AngularJS Cả hai nền tảng đều cho phép gửi thông báo đến tất cả nền tảng theo định dạng duy nhất, giúp giảm tải công việc cho backend Ionic có lợi thế với phần triển khai dưới dạng plug-in, cho phép nhà phát triển chỉ cần viết một đoạn mã để xử lý thông báo từ server, trong khi Xamarin yêu cầu mã nguồn khác nhau cho mỗi nền tảng Tuy nhiên, việc tích hợp các dịch vụ phân tích và báo cáo lỗi có thể khó khăn hơn với Ionic do thiếu plugin hỗ trợ tốt cho Firebase, trong khi Xamarin có cộng đồng lớn hơn và khả năng tương thích tốt hơn với thư viện native Các nhà phát triển cũng quan tâm đến việc tích hợp quảng cáo để tạo doanh thu, với Ionic hỗ trợ nhiều nhà cung cấp quảng cáo như Admob và Facebook Audience Network, nhưng việc tích hợp SDK quảng cáo vẫn phụ thuộc vào sự phát triển của cộng đồng Khả năng tương thích tốt với native giúp Xamarin dễ dàng hỗ trợ các SDK quảng cáo hơn.

Trên các thiết bị di động, tài nguyên như CPU, GPU và RAM bị hạn chế, yêu cầu ứng dụng phải đạt 60 khung hình mỗi giây để hoạt động mượt mà Điều này dẫn đến việc các ứng dụng phức tạp cần sử dụng đa luồng để xử lý dữ liệu hiệu quả Xamarin.iOS hỗ trợ API luồng của Net, cho phép phát triển ứng dụng với nhiều luồng thông qua Task Parallel Library (TPL), giúp tối ưu hóa hiệu suất bằng cách quản lý số lượng luồng cần thiết Ngược lại, Ionic gặp khó khăn trong việc hỗ trợ đa luồng do Javascript không được thiết kế cho mục đích này, chỉ cho phép thực hiện các tác vụ trong một luồng duy nhất Mặc dù có thể sử dụng WebWorker để xử lý tác vụ nặng, nhưng nó cũng có những hạn chế như không truy cập được DOM và các biến toàn cục Sự khác biệt giữa Xamarin và Ionic trong việc xử lý đa luồng xuất phát từ ngôn ngữ lập trình: C# của Xamarin hỗ trợ tốt cho việc chia sẻ tài nguyên giữa các luồng, trong khi Javascript của Ionic chủ yếu hoạt động trong một luồng Do đó, Xamarin có lợi thế hơn Ionic trong việc phát triển ứng dụng di động với yêu cầu xử lý đa luồng.

Các ứng dụng trò chơi đang ngày càng thu hút sự quan tâm của các nhà phát triển, với những khái niệm phát triển khác biệt so với ứng dụng thông thường Khi chuyển từ phát triển ứng dụng thông thường sang trò chơi, các nhà phát triển phải làm quen với nhiều khái niệm và phương pháp mới Để phát triển game, họ thường sử dụng các engine chuyên biệt như Unity và Unreal Engine Tuy nhiên, việc áp dụng các framework phát triển ứng dụng như Ionic và Xamarin cũng khả thi, mặc dù mức độ hỗ trợ khác nhau Ionic, mặc dù không phù hợp cho các trò chơi yêu cầu đồ họa cao, có thể kết hợp với các engine như Phaser.io để tạo ra các trò chơi với giao diện giống ứng dụng thông thường Trong khi đó, Xamarin cung cấp nhiều công nghệ như CocosSharp, MonoGame, và UrhoSharp, giúp các nhà phát triển dễ dàng làm quen và ứng dụng trên Xamarin.iOS và Xamarin.Android.

Cộng đồng phát triển đóng vai trò quan trọng đối với các nhà phát triển, cung cấp sự hỗ trợ thiết yếu cho sự thành công của nền tảng Một cộng đồng mạnh mẽ giúp tăng cường khả năng giải quyết vấn đề và chia sẻ kiến thức Ví dụ, thẻ đánh dấu 'ionic' trên Stack Overflow có khoảng 20.000 kết quả, cho thấy sự phổ biến và sự hỗ trợ mà cộng đồng này mang lại cho các nhà phát triển.

Xamarin hiện có hơn 40,000 kết quả tìm kiếm, cho thấy sự phổ biến của nền tảng này so với Ionic Cộng đồng người dùng Xamarin lớn hơn, dẫn đến số lượng thư viện mã nguồn mở phong phú hơn Nhiều thư viện nổi tiếng như Realm và Charts không chỉ hỗ trợ các nền tảng native mà còn tương thích với Xamarin Hơn nữa, khả năng tích hợp các thư viện native của Xamarin được đánh giá cao hơn so với Ionic, và Xamarin cung cấp tài liệu hướng dẫn chi tiết về cách sử dụng các thư viện này trên Android và iOS.

Trong ứng dụng Ionic, việc phát triển trở nên phức tạp hơn do các nhà phát triển cần viết lại thư viện dưới dạng plugin Điều này yêu cầu họ phải có kinh nghiệm vững vàng trong cả JavaScript và các ngôn ngữ lập trình native.

Người dùng di động hoàn toàn có thể là những khách hàng khó tính nhất hiện nay

Người dùng mong muốn sản phẩm phản hồi tốt, không lỗi và giá rẻ; nếu không đạt được, ứng dụng có thể bị gỡ bỏ và đánh giá thấp trên chợ ứng dụng Để kiểm tra tính đúng đắn, việc chạy và sử dụng ứng dụng là cần thiết Ứng dụng hoạt động đúng như mong muốn sẽ tạo sự yên tâm cho nhà phát triển khi đưa đến người dùng Kiểm thử hai thành phần quan trọng nhất là logic và UI/UX, và hiện nay, lập trình viên cũng tham gia vào quá trình đảm bảo chất lượng sản phẩm bên cạnh đội ngũ QA Các lập trình viên sử dụng Unit Test và Test Driven Development để kiểm thử logic Để hỗ trợ kiểm thử đơn vị, cần có thư viện kiểm thử tốt; tuy nhiên, việc viết test case cho từng nền tảng vẫn tốn công sức Trên Ionic, logic được viết bằng Javascript dựa trên AngularJS, cho phép lập trình viên sử dụng các thư viện kiểm thử như Jasmine và Karma mà không phải lo lắng về sự khác biệt giữa các nền tảng Điều này giúp Ionic có lợi thế hơn Xamarin trong việc kiểm thử đơn vị nhờ sự thống nhất về môi trường chạy.

Kiểm thử chấp nhận giao diện (UI Acceptance Testing) đóng vai trò quan trọng trong việc đảm bảo chất lượng ứng dụng bên cạnh kiểm thử đơn vị Tuy nhiên, quá trình này thường tiêu tốn nhiều tài nguyên do tính chất thủ công của nó, yêu cầu nhiều nhân lực để triển khai và kiểm tra ứng dụng trên nhiều thiết bị khác nhau Sự phức tạp gia tăng khi cần kiểm thử trên mỗi bản build và nền tảng, điều này gây khó khăn ngay cả cho các công ty lớn Để thực hiện kiểm thử giao diện trên Xamarin, các nhà phát triển sử dụng thư viện Xamarin.UITest trong bộ công cụ Xamarin Test Cloud Xamarin.UITest cho phép thực hiện kiểm thử chấp nhận giao diện tự động với mã viết bằng NUnit, có khả năng tương tác với giao diện người dùng như nhập văn bản, điều khiển các thành phần và thực hiện các cử chỉ Mỗi trường hợp kiểm thử thường được viết dưới dạng phương thức và được tổ chức trong các lớp gọi là 'test fixture'.

'Test fixture' có thể chứa một hoặc nhiều trường hợp kiểm thử, chịu trách nhiệm khởi tạo và giải phóng tài nguyên khi phiên kiểm thử kết thúc Xamarin.UITest cho phép lập trình viên viết và chạy test case trên thiết bị hoặc tải lên dịch vụ Test Cloud để kiểm thử trên nhiều thiết bị hơn Đối với kiểm thử giao diện trên các bộ khung phát triển ứng dụng web như Xamarin, các nhà phát triển có thể sử dụng trình duyệt như Chrome hoặc kiểm thử trực tiếp trên thiết bị Để kiểm thử trên trình duyệt, bộ khung Jasmine kết hợp với Protractor có thể được sử dụng, cho phép tương tác với trình duyệt như người dùng Ngoài ra, để kiểm thử trực tiếp trên ứng dụng, các nhà phát triển có thể sử dụng Appium, công cụ kiểm thử tự động hỗ trợ các ứng dụng native, hybrid và web, cho phép viết test case bằng bất kỳ ngôn ngữ nào.

ỨNG DỤNG THỬ NGHIỆM

Ngày đăng: 28/06/2022, 05:07

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[16] Xamarin Team, Custom Renderer, https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/custom-renderer/introduction/ Link
[20] Herman Schoenfeld, Xamarin iOS memory leaks everywhere, https://stackoverflow.com/questions/25532870/xamarin-ios-memory-leaks-everywhere Link
[21] Nexgendesign.com, Xamarin troubles, http://www.nexgendesign.com/xamarin-troubles Link
[22] Siddharth, 15 important consideration for choosing a web dev framework, 2009, https://code.tutsplus.com/tutorials/15-important-considerations-for-choosing-a-web-dev-framework--net-8035 Link
[23] Daniel Pfeiffer, Which cross-platform framework is right for me?, 2011, https://gowithfloat.com/2011/07/which-cross-platform-framework-is-right-for-me/ Link
[24] Heitk¨otter, H., Hanschke, S., Majchrzak, T.A.: Evaluating cross-platform development approaches for mobile applications. In: Cordeiro, J., Krempels, K.-H.(eds.) Web Information Systems and Technologies. LNBIP, vol. 140, pp. 120–138 Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Thanh Tab bar trong Ionic, biểu diễn trên Android và iOS - (LUẬN văn THẠC sĩ) tìm hiểu đánh giá các framework phát triển ứng dụng di động đa nền tảng luận văn ths  máy tính 604801
Hình 2.1 Thanh Tab bar trong Ionic, biểu diễn trên Android và iOS (Trang 15)
Hình 2.2: Cấu trúc ứng dụng Ionic/Cordova1 - (LUẬN văn THẠC sĩ) tìm hiểu đánh giá các framework phát triển ứng dụng di động đa nền tảng luận văn ths  máy tính 604801
Hình 2.2 Cấu trúc ứng dụng Ionic/Cordova1 (Trang 17)
Hình 2.3: Kiến trúc của một Cordova plugin2 - (LUẬN văn THẠC sĩ) tìm hiểu đánh giá các framework phát triển ứng dụng di động đa nền tảng luận văn ths  máy tính 604801
Hình 2.3 Kiến trúc của một Cordova plugin2 (Trang 18)
Hình 2.4: Phương thức hoạt động của một ứng dụng Xamarin trên iOS3 - (LUẬN văn THẠC sĩ) tìm hiểu đánh giá các framework phát triển ứng dụng di động đa nền tảng luận văn ths  máy tính 604801
Hình 2.4 Phương thức hoạt động của một ứng dụng Xamarin trên iOS3 (Trang 28)
Dưới đây là bảng so sánh một số tính năng chính trên nền tảng iOS với khả năng đáp ứng tương ứng của hai bộ khung phát triển Ionic và Xamarin - (LUẬN văn THẠC sĩ) tìm hiểu đánh giá các framework phát triển ứng dụng di động đa nền tảng luận văn ths  máy tính 604801
i đây là bảng so sánh một số tính năng chính trên nền tảng iOS với khả năng đáp ứng tương ứng của hai bộ khung phát triển Ionic và Xamarin (Trang 32)
Bảng so sánh trên thể hiện được một phần về đặc điểm của hai bộ khung phát triển. Ionic phụ thuộc nhiều vào các plugin, trong khi  đó Xamarin hỗ trợ gần như đầy đủ các  tính năng trên iOS nhờ khả năng tương tác tốt với các thư viện native - (LUẬN văn THẠC sĩ) tìm hiểu đánh giá các framework phát triển ứng dụng di động đa nền tảng luận văn ths  máy tính 604801
Bảng so sánh trên thể hiện được một phần về đặc điểm của hai bộ khung phát triển. Ionic phụ thuộc nhiều vào các plugin, trong khi đó Xamarin hỗ trợ gần như đầy đủ các tính năng trên iOS nhờ khả năng tương tác tốt với các thư viện native (Trang 34)
Hình 4.1: Ứng dụng thực nghiệm minh họa việc phát triển các chức năng trên Ionic và Xamarin - (LUẬN văn THẠC sĩ) tìm hiểu đánh giá các framework phát triển ứng dụng di động đa nền tảng luận văn ths  máy tính 604801
Hình 4.1 Ứng dụng thực nghiệm minh họa việc phát triển các chức năng trên Ionic và Xamarin (Trang 44)
Bảng 4.1: Bảng so sánh đối với từng chức năng trên hai nền tảng Ionic và Xamarin - (LUẬN văn THẠC sĩ) tìm hiểu đánh giá các framework phát triển ứng dụng di động đa nền tảng luận văn ths  máy tính 604801
Bảng 4.1 Bảng so sánh đối với từng chức năng trên hai nền tảng Ionic và Xamarin (Trang 46)
4.1.2. Kết quả thực nghiệm - (LUẬN văn THẠC sĩ) tìm hiểu đánh giá các framework phát triển ứng dụng di động đa nền tảng luận văn ths  máy tính 604801
4.1.2. Kết quả thực nghiệm (Trang 46)
Hình 4.4: So sánh hiệu năng ứng dụng iOS phát triển bằng ObjC, Xamarin và Ionic - (LUẬN văn THẠC sĩ) tìm hiểu đánh giá các framework phát triển ứng dụng di động đa nền tảng luận văn ths  máy tính 604801
Hình 4.4 So sánh hiệu năng ứng dụng iOS phát triển bằng ObjC, Xamarin và Ionic (Trang 49)

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w