Phát triển ứng dụng native Các Native app được tạo cho một nền tảng cụ thể là Android hoặc iOS, trong khi quá trình phát triển Hybrid app phụ thuộc vào chức năng đa nền tảng.. Điều đó có
ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ Nghiên cứu số công nghệ đa tảng áp dụng ứng dụng hỗ trợ học tập NGUYỄN TRUNG KIÊN Ngành: Công nghệ thông tin Giảng viên hướng dẫn: TS Nguyễn Thanh Hùng Viện: Công nghệ thông tin Truyền thông HÀ NỘI, 2020 Tai ngay!!! Ban co the xoa dong chu nay!!! 17061132068651000000 ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ Nghiên cứu số công nghệ đa tảng áp dụng ứng dụng hỗ trợ học tập NGUYỄN TRUNG KIÊN Ngành: Công nghệ thông tin Giảng viên hướng dẫn: TS Nguyễn Thanh Hùng Viện: Công nghệ thông tin Truyền thông HÀ NỘI, 2020 Chữ ký GVHD LỜI CAM ĐOAN Tôi – Nguyễn Trung Kiên - học viên lớp Cao học 2017A-CNTT Trường Đại học Bách Khoa Hà Nội – cam kết Luận văn cơng trình nghiên cứu thân hướng dẫn TS Nguyễn Thanh Hùng – Viện Công Nghệ Thông Tin Truyền Thông – Đại học Bách Khoa Hà Nội Các số liệu, kết nêu luận văn trung thực chưa cơng bố cơng trình khác Tác giả luận văn xin chịu trách nhiệm nghiên cứu LỜI CẢM ƠN Truớc tiên, xin chân thành cảm ơn tất quý thầy trường Đại học Bách Khoa Hà Nội nói chung Viện Công Nghệ Thông Tin Truyền Thông nói riêng truyền đạt cho tơi kiến thức hữu ích làm sở để giúp tơi thực tốt luận văn Với lịng kính trọng biết ơn, tơi xin bảy tỏ lịng cảm ơn tới TS Nguyễn Thanh Hùng - Viện Công Nghệ Thông Tin Truyền Thông, Đại học Bách Khoa Hà Nội Đã khuyến khích tận tình hướng dẫn, bảo tơi suốt q trình thực luận văn Nhờ có quan tâm bảo ý kiến đóng góp q báu Thầy giúp tơi hồn thành luận văn Tơi xin cảm ơn bạn đồng nghiệp công ty Koolsoft tạo điều kiện để tơi học tập nghiên cứu Cuối xin chân thành cảm ơn gia đình, bạn bè quan tâm, động viên, chia sẻ, giúp đỡ tơi suốt q trình học tập, nghiên cứu, hoàn thành luận văn Học viên Nguyễn Trung Kiên MỤC LỤC DANH MỤC VIẾT TẮT DANH MỤC HÌNH VẼ DANH MỤC BẢNG BIỂU CHƯƠNG I : GIỚI THIỆU 1.1 Đặt vấn đề 1.2 Mục tiêu phạm vi nghiên cứu CHƯƠNG II: TỔNG QUAN VỀ PHÁT TRIỂN ỨNG DỤNG ĐA NỀN TẢNG 11 2.1 Các tảng công nghệ việc phát triển ứng dụng di động 11 2.2 Phát triển ứng dụng native 13 2.3 React Native 17 2.3.1 Giới thiệu 18 2.3.2 Kiến trúc 18 2.3.3 Ưu điểm nhược điểm 20 2.4 Flutter 22 2.4.1 Giới thiệu 22 2.4.2 Kiến trúc 23 2.4.3 Ưu điểm nhược điểm 25 2.5 So sánh đánh giá 26 2.5.1.So sánh 26 2.5.2.Đánh giá 30 2.6 So sánh Flutter React Native qua ví dụ cụ thể 31 CHƯƠNG III: PHÂN TÍCH VÀ THIẾT KẾ 39 3.1 Khảo sát nhu cầu yêu cầu toán 39 3.1.1 Khảo sát nhu cầu 39 3.1.2 Phân tích yêu cầu 40 3.2 Mô tả tổng quan hệ thống 41 3.3 Mô tả chi tiết 42 3.3.1 Biểu đồ Usercase phân rã – Người dùng làm tập 42 3.3.2 Biểu đồ Usercase phân rã – Người dùng làm thi 43 3.4 Thiết kế tổng quan 44 3.4.1 Biểu đồ trình tự cho Học sinh xem giảng 44 3.4.2 Biểu đồ trình tự cho Học sinh làm tập , kiểm tra 45 3.5 Thiết kế chi tiết 46 3.5.1 Thiết kế biểu đồ lớp 46 3.5.1.1 Thiết kế biểu đồ sinh viên ôn tập , làm tập 46 3.5.2 Thiết kế mơ hình liệu 47 CHƯƠNG IV: TRIỂN KHAI ỨNG DỤNG THỰC TẾ 54 4.1 Màn hình hình review 54 4.2 Màn hình Tiến trình học tập đặt mục tiêu kiểm tra 55 4.3 Màn hình học sinh làm tập hình thơng tin đề thi 55 4.4 Màn hình kết kiểm tra 57 4.5 Thống kê ứng dụng sau triển khai 58 CHƯƠNG V: KẾT LUẬN 61 5.1 Kết đạt 61 5.2 Hướng phát triển ứng dụng 62 TÀI LIỆU THAM KHẢO 63 DANH MỤC VIẾT TẮT Từ viết tắt GCD RN JSX JS MVP URL HTTPS CSS HTML TS IDE CE JSON SDK JRE Ý Nghĩa Google Cloulds Data Store React Native Java Script XML Java script Model View Presenter Uniform Resource Locator Hypertext Transfer Protocol Secure Cascading Style Sheets Hyper Text Markup Language Type script Integrated Development Environment Code Editor JavaScript Object Notation Software Development Kit Java Runtime Environment DANH MỤC HÌNH VẼ Hình 2.1: Các hướng tiếp cận phát triển ứng dụng di động 12 Hình 2.1.1: Phát triển ứng dụng di động theo tảng Native 13 Hình 2.1.2: Phát triển ứng dụng di động đa tảng 15 Hình 2.2: So sánh React Native Fllutter 17 Hình 2.2: Nền tảng React Native 17 Hình 2.4: Nền tảng Flutter 22 Hình 2.4.2: Kiến trúc tảng Flutter 23 Hình 2.4.2: Các tầng cấu trúc Flutter 24 Hình 2.6: Ứng dụng minh hoạ so sánh hiệu Flutter React Native 32 Hình 2.6.1: Hiệu CPU tảng Native Android 35 Hình 2.6.2: Hiệu CPU tảng Flutter 35 Hình 2.6.3: Hiệu CPU tảng React Native 35 Hình 3.2: Biểu đồ User case mơ tả tổng quan hệ thống 42 Hình 3.3.1: Use case phân rã - Sinh viên làm tập 42 Hình 3.3.2: Use case phân rã – Sinh viên làm thi 43 Hình 3.5.1.1: Biểu đồ lớp sinh viên ôn tập, làm tập 47 Hình 3.5.1.2: Biểu đồ lớp sinh viên làm kiểm tra 47 Hình 3.5.2: Thiết kế tổng quan mơ hình liệu 48 Hình 4.1: giao diện ứng dụng 54 Hình 4.2: Màn hình mục tiêu lộ trình học tập 55 Hình 4.3: Màn hình ơn luyện hình kiểm tra 56 Hình 4.4: Màn hình kết kiểm tra 57 Hình 4.5: Biểu đồ thống kê tăng trưởng người dùng 58 Hình 4.6: Biểu đồ thống kê độ tuổi người dùng sử dụng ứng dụng 59 Hình 4.7: Biểu đồ thống kê thời lượng sử dụng app trung bình 59 DANH MỤC BẢNG BIỂU Bảng 1: So sánh thời gian phát triển ứng dụng tảng 33 Bảng 2: So sánh hiệu CPU tảng 36 Bảng 3: So sánh tổng quát Flutter React Native 37 Bảng 3: Mô tả chi tiết User case sinh viên làm tập 43 Bảng 5: Biểu đồ học sinh xem giảng 45 Bảng 6: Biểu đồ học sinh làm tập , kiểm tra 46 Bảng Bảng liệu Course 49 Bảng : Bảng liệu User 50 Bảng : Bảng Card 51 Bảng 10: Bảng CardProgress 51 Bảng 11: Bảng Choice 52 Bảng 12 Bảng liệu Topic 53 Bảng 13: Bảng Test 53 CHƯƠNG I : GIỚI THIỆU 1.1 Đặt vấn đề Ngày nay, hệ sinh thái di động đóng vai trị quan trọng chiến lược kinh doanh hầu hết doanh nghiệp Các doanh nghiệp nghiêm túc việc phát triển phát hành ứng dụng phục vụ mục đích kinh doanh họ Tuy nhiên dù mục đích doanh nghiệp phát triển ứng dụng di động vấn đề ln hữu lựa chọn cách tiếp cận tốt cho họ - công cụ hay phương pháp lên triển khai để họ ứng dụng đến khách hàng, thời điểm mà khơng cần quan tâm đến thiết bị nên tảng người dùng cuối sử dụng Sự phát triển tảng di động phụ thuộc vào nhiều trải nghiệm người dùng tảng Ngồi ra, với số lượng hàng triệu ứng dụng có mặt chợ ứng dụng đồng nghĩa với việc sức cạnh tranh ứng dụng lớn Vấn đề thời gian tiến độ để xây dựng ứng dụng nhanh tốt nhất, có sức cạnh tranh ln ln tốn hàng đầu nhà phát triển ứng dụng Mặt khác việc đưa công nghệ thông tin vào lĩnh vực giáo dục triển khai từ lâu nhiều mặt hạn chế Ví dụ điển hình đại dịch Covid - 19 xảy từ dịp tết nguyên đán tới Trong phủ nước áp dụng nhiều biện pháp cách ly gián cách xã hội Không riêng Việt Nam nhiều nước giới cho học sinh cấp nghỉ học nhà chuyển qua hình thức học trực tuyến Mặc dù vấn đề mối lo toàn xã hội thời điểm công ty phát triển phần mềm đưa thị trường sản phẩm chất lượng mặt giáo dục Một lần khía cạnh thời gian để xây dựng ứng dụng di động cho thấy tầm quan trọng Để giúp lập trình viên nhìn rõ ràng cụ thể quy trình phát triển ứng dụng di động, đặc biệt quy trình phát triển ứng dụng di động lên tảng Luận văn giới thiệu cách thức tiếp cận trình phát triển ứng dụng di