TĨM TẮT LUẬN VĂN TỐT NGHIỆP Đề tài: Tìmhiểuđánhgiáframeworkpháttriểnứngdụngdiđộngđatảng Hiện theo thống kê giới có khoảng 2.3 tỉ điện thoại thơng minh với hai hệ điều hành phổ biến iOS Android (hoặc hệ điều hành tuỳ biến từ hệ điều hành Android) Doanh thu từ ứngdụng hai hệ điều hành iOS Android xấp xỉ 61 tỉ USD Vì vậy, hệ sinh thái diđộng trở thành thị trường màu mỡ mà không công ty hay nhà pháttriển muốn bỏ qua Các doanh nghiệp hay lập trình viên muốn đưa sản phẩm đến nhiều người dùng tốt, đảm bảo chất lượng sản phẩm mà khơng tốn q nhiều chi phí việc pháttriển Khi lập trình viên có hứng thú với tảngdi động, muốn tạo nênứngdụng tuyệt vời thiết bị di động, chắn có người phân vân việc lựa chọn tảng công nghệ mà họ nên lựa chọn để đáp ứng nhu cầu thân Vì lý đó, khố luận đưa nhìn tổng quan chi tiết công nghệ pháttriểnứngdụngtảngdiđộng Bên cạnh đó, khố luận đưa so sánh cách tiếp cận pháttriểnứngdụngdiđộng khác dựa tiêu chí để nhà pháttriển lựa chọn phương án phù hợp Mục tiêu khố luận so sánh phương pháp pháttriểnứngdụngdiđộng dựa tiêu chí đánhgiá cần thiết để đưa ứngdụngdiđộng thành cơng cộng đồng : Luận văn cung cấp thông tin cách pháttriểnứngdụngdiđộng tập trung vào hai khung pháttriểnứngdụng Ionic Xamarin Đầu tiên giới thiệu cách pháttriểnứngdụngdiđộng sử dụng Sau đó, khóa luận giới thiệu khung pháttriển Ionic Xamarin tính năng, kiến trúc, đặc điểm bật ưu điểm nhược điểm chúng Tiếp theo nghiên cứu đưa bảng so sánh khả khung pháttriển so sánh với việc pháttriểnứngdụng native Sau sâu vào tiêu chí mà nhà pháttriểnnên quan tâm để lựa chọn khung pháttriển phù hợp Cuối dựa vào tiêu chí so sánh, luận văn đưa số khuyến nghị đến nhà pháttriển việc lựa chọn khung pháttriển phù hợp với nhu cầu Hiện có nhiều khung pháttriểnứngdụngđatảng Cordova, PhoneGap, Ionic, Xamarin, C++ Builder,… Nhưng tựu chung lại có hai trường phái việc xây dựng khung pháttriểnứngdụngđatảng web native Trong Ionic Xamarin hai tảng phổ biến Ionic sử dụng công nghệ web Xamarin sử dụng công nghệ native Ionic khung pháttriểnứngdụngdiđộng mã nguồn mở đời vào năm 2013, pháttriển công ty Drifty Được lấy cảm hứng từ thành công tảng web desktop, nhà pháttriển mong muốn Ionic đạt thành công tương tự tảngdidộng Được xây dựng dựa tảng AngularJS Apache Cordova (mặc định), Ionic cung cấp công cụ để pháttriểnứngdụng hybrid hệ điều hành diđộng sử dụng công nghệ Web CSS, HTML5, SASS Javascript Ứngdụng xây dựng dựa vào công nghệ web phân phối thông qua chợ ứngdụng mặc định thiết bị nhờ trợ giúp trình đóng gói địa (Native wrapper) Ionic xem khung pháttriển giao diện cho front-end Nó chịu trách nhiệm giao diện cách người dùng tương tác với ứngdụng Bên cạnh đó, Ionic hỗ trợ nhiều thành phần native tảngdi động, cung cấp sẵn số animation có sẵn Có điểm khác biết Ionic với framework khác thành phần giao diện Ionic ngồi cách hoạt động giống với thành phần giao diện tương tự hệ điều hành diđộng tất nhiên điều diễn hoàn toàn tự động, nhà pháttriển không cần phải chỉnh sửa thứ Thêm nữa, Ionic có số đặc điểm bật mã nguồn mở, hiệu suất tương đối tốt, sử dụng AngularJS Cordova để hỗ trợ việc pháttriểnứng dụng, sử dụng kiến trúc plugin để hỗ trợ lập trình viên tích hợp tính vào ứngdụng Tuy nhiên, Ionic có số nhược điểm ứngdụng yêu cầu cao hiệu suất Ionic chưa đáp ứng được, phụ thuộc nhiều vào plugin, khơng có cam kết chất lượng đơn vị chủ quản người sử dụng, việc tuỳ biến tương đối khó khăn yêu cầu cao mặt kỹ Bộ khung pháttriểnứngdụngđatảng Xamarin, tiền thân dự án mã nguồn mở Mono, giới thiệu vào ngày 16/5/2011 Xamarin ban đầu thuộc cơng ty Xamarin, nhiên tập đồn Microsoft mua lại vào 24/2/2016 chuyển đổi thành phần mềm mã nguồn mở sau Xamarin khung pháttriểnứngdụng cho phép nhà pháttriển xây dựngứngdụngtảng Android, iOS Windows sử dụng ngơn ngữ lập trình C# Xamarin cung cấp lớp thư viện, runtime thực thi ba tảng iOS, Android Windows Phone, biên dịch native (không sử dụng trình thơng dịch) đảm bảo hiệu suất ứngdụng kể ứngdụng yêu cầu khả xử lý nặng ứngdụng trò chơi Mặc dù khơng sử dụng ngơn ngữ lập trình tương ứng hệ điều hành khác Xamarin xem khung pháttriểnứngdụng gốc (native framework) Xamarin có số đặc điểm bật đáng ý việc liên kết tốt với thư viện native, tương tác với ngơn ngữ lập trình native tảng, hiệu suất ứngdụng tương đương với ứngdụng native, tận dụng số lượng lớn thư viện NET có sẵn Tuy nhiên Xamarin có số nhược điểm tồn số lỗi, hạn chế kỹ thuật kiến trúc Xamarin, phình to ứngdụng tích hợp thư viện so với ứngdụng thông thường Để lựa chọn công cụ để pháttriểnứngdụngdi đông, lập trình viên cần quan tâm đến số điểm quan trọng thành phần giao diện, trải nghiệm người dùng, việc thiết kê layout để tương thích với nhiều thiết bị với nhiều độ phân giải kích cỡ, cộng đồng sử dụng, hỗ trợ dịch vụ bên thứ ba, hỗ trợ đa luồng, kiểm thử - Về giao diện trải nghiệm người dùng, Ionic Xamarin cung cấp số lượng thành phần giao diện có sẵn có khả tự động thay đổi hình thái tương ứng với tảng cụ thể Tuy nhiên, Xamarin hỗ trợ tốt việc tuỳ biến hành vi vẻ thành phần có sẵn Ionic nhờ việc cung cấp sẵn tài liệu hướng dẫn người sử dụng Đối với animation, Ionic Xamarin hỗ trợ số animation có sẵn, cho phép nhóm animation vào thành chuỗi animation Ionic bắt buộc phải sử dụng animation sử dụng GPU để đảm bảo hiệu suất ứngdụng - Về layout, hai khung pháttriển cung cấp giải pháp cho phép lập trình viên thiết kế giao diện cách linh động để hiển thị tốt nhiều thiết bị khác Tuy nhiên, việc thiết kế cách kéo thả Ionic hạn chế lập trình viên sử dụng phiên miễn phí trình thiết kế giao diện kéo thả kèm, Xamarin hỗ trợ tốt với IDE mặc định - Về cộng đồngphát triển, Xamarin vượt trội Ionic kết so sánh cho thấy có 40000 kết gắn với tag ‘Xamarin’ so với 20000 kết gắn tag ‘Ionic’ trang hỏi đáp tiếng giới lập trình viên StackOverFlow - Hiện lập trình viên thường tích hợp nhiều dịch vụ bên thứ ba cung cấp dịch vụ quảng cáo, dịch vụ phân tích hay - - báo lỗi để hỗ trợ việc pháttriển Ionic Xamarin hỗ trợ số dịch vụ Fabric, Admob, Facebook Audience Network, Mopub, Appmodeal Trong đó, việc triển khai dịch vụ hỗ trợ sẵn Ionic tương đối đơn giản so với Xamarin nhà pháttriển viết riêng đoạn mã xử lý cho tảng Tuy nhiên, lập trình viên muốn tích hợp dịch vụ chưa hỗ trợ sẵn Xamarin có lợi nhờ việc tương tác tốt với thư viện native Ionic trừ lập trình viên có kiến thức tốt web native tảng lập trình viên bình thường bị phụ thuộc vào số lập trình viên có kinh nghiệm xây dựngnên plug in để tích hợp dịch vụ Đối với số ứngdụng đặc biệt trò chơi, nhà pháttriển thường tìm đến game engine để pháttriển cocos, SpriteKit, Unity, Unreal engine Tuy nhiên frameworkpháttriểnứngdụng Ionic Xamarin pháttriểnứngdụng mức độ vừa phải nhờ việc kết hợp với engine khác Phaser.io kết hợp với Ionic, Cocos Sharp kết hơp với Xamarin Số lượng người dùngứngdụngdiđộng lên đến hàng tỉ người Vì vậy, ứngdụngdiđộng phải xử lý nhiền liệu để cung cấp thông tin cho người dùng Điều u cầu khả tính tốn lớn thiết bị diđộng khơng đủ đáp ứngCác nhà pháttriểnứngdụngdiđộng phải tìm cách để đảm bảo việc xử lý liệu khơng ảnh hưởng - đến trải nghiệm liên tục người dùng Một cách xử lý vấn đề chia tác vụ lớn thành nhiều tác vụ nhỏ chạy nhiều luồng khác Vì vậy, việc hỗ trợ đa luồng quan trọng việc tìm kiếm khung pháttriển phù hợp cho việc pháttriểnứngdụngdiđộng Cả Xamarin Ionic hỗ trợ đa luồng, nhiên Ionic có số điểm yếu việc hỗ trợ đa luồng chất ngôn ngữ Javascript ngôn ngữ đơn luồng Ionic sử dụng WebWorker để thực thi tác vụ luồng phụ, có số hạn chế ví dụ truy cập đến thành phần DOM từ trang web (vì khơng thread safe), khơng thể truy xuất biến toàn cục hàm Javascript từ trang web, gọi hàm alert hay confirm, đối tượng window, document parent truy cập web worker Trong đó, Xamarin hỗ trợ tốt đa luồng nhờ khả sử dụng API Net sử dụng API native việc tạo, quản lý luồng Hiện nay, lập trình viên tham gia nhiều vào trình kiểm thử ứng dụng, khơng phụ thuộc vào đội ngũ đảm bảo chất lượng Họ sử dụng TDD, Unit Test, công cụ kiểm thử tự động để thực thi ca kiểm thử, đảm bảo ứngdụng hoạt động theo mong muốn họ Cả Xamarin Ionic có thư viện hỗ trợ việc thực thi kiểm thử tự động Karma Jasmine hỗ trợ kiểm thử đơn vị, Protractor hỗ trợ kiểm thử chấp nhận Ionic; Nunit, MonoTouch.NunitLite hỗ trợ kiểm thử đơn vị Xamarin, Xamarin.UITest hỗ trợ kiểm thử giao diện Xamarin Một lần Ionic lại tiếp tục thể tính đatảng nhiều Xamarin tiêu chí lập trình viên khơng phải viết lại ca kiểm thử tảng Xamarin Tổng kết lại, Ionic Xamarin khung pháttriểnứngdụngdiđộngđatảng tốt có lợi định Nếu Xamarin mạnh khả tương tác với thư viện native, hiệu khả tuỳ biến Ionic mạnh tính quán cần có khung pháttriểnđatảng Việc lựa chọn khung pháttriển phù hợp phù thuộc vào yêu cầu ứngdụngtảng cơng nghệ lập trình viên Nếu ứngdụng yêu cầu không phức tạp, không cần xử lý nhiều liệu, sử dụng dịch vụ phổ biến, cần có thời gian pháttriển nhanh, chi phí hạn chế Ionic lựa chọn tốt Trong ứngdụng yêu cầu hiệu tốt, cần xử lý nhiều tác vụ nặng, cần tuỳ biến nhiều tảng sử dụng nhiều thư viện native Xamarin lựa chọn tốt ... tin cách phát triển ứng dụng di động tập trung vào hai khung phát triển ứng dụng Ionic Xamarin Đầu tiên giới thiệu cách phát triển ứng dụng di động sử dụng Sau đó, khóa luận giới thiệu khung phát. .. Hiện có nhiều khung phát triển ứng dụng đa tảng Cordova, PhoneGap, Ionic, Xamarin, C++ Builder,… Nhưng tựu chung lại có hai trường phái việc xây dựng khung phát triển ứng dụng đa tảng web native... hai tảng phổ biến Ionic sử dụng công nghệ web Xamarin sử dụng công nghệ native Ionic khung phát triển ứng dụng di động mã nguồn mở đời vào năm 2013, phát triển công ty Drifty Được lấy cảm hứng