DA2 19520664 SE122 N11 NguyenCongHoan docx ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN 2 TÌM HIỂU VỀ FLUTTER VÀ XÂY DỰNG ỨNG DỤNG GIẢNG VIÊN HƯỚNG[.]
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN TÌM HIỂU VỀ FLUTTER VÀ XÂY DỰNG ỨNG DỤNG GIẢNG VIÊN HƯỚNG DẪN ThS Nguyễn Công Hoan Sinh viên thực hiện: Huỳnh Anh Kiệt - 19520664 ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN TÌM HIỂU VỀ FLUTTER VÀ XÂY DỰNG ỨNG DỤNG GIẢNG VIÊN HƯỚNG DẪN ThS Nguyễn Công Hoan Sinh viên thực hiện: Huỳnh Anh Kiệt - 19520664 LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành tri ân đến thầy Nguyễn Công Hoan hướng dẫn, tạo điều kiện cho em hoàn thành đồ án – Chủ đề Tìm hiểu Flutter xây dựng ứng dụng Trong khoảng thời gian thực đồ án, em học hỏi thêm nhiều kiến thức, kinh nghiệm, biết thêm nhiều công nghệ Trong thời gian học đề tài, em vận dụng kiến thức tảng tích lũy đồng thời kết hợp với việc học hỏi nghiên cứu kiến thức Từ đó, em vận dụng tối đa thu thập để hoàn thành báo cáo đồ án tốt Tuy nhiên, q trình thực hiện, em khơng tránh khỏi thiếu sót Chính vậy, em mong nhận góp ý từ phía thầy nhằm hoàn thiện kiến thức mà em học tập hành trang để em thực tiếp đề tài khác tương lai Xin chân thành cảm ơn thầy! Thành phố Hồ Chí Minh, tháng 12 năm 2022 Huỳnh Anh Kiệt NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Tp.HCM, ngày tháng 12 năm 2022 GVHD ThS Nguyễn Công Hoan MỤC LỤC Chương - Thông tin chung Tên đề tài Thông tin sinh viên Môi trường phát triển Môi trường triển khai 4 4 Chương - Ngôn ngữ lập trình cơng nghệ Dart 1.1 Dart gì? 1.1.1 Tổng quan 1.1.2 Ngôn ngữ 1.1.3 Thư viện 1.1.4 Nền tảng 1.2 Lợi ích sử dụng Dart Flutter 2.1 Flutter gì? 2.2 Tại dùng Flutter? 2.3 Đặc điểm bật SQLite 3.1 SQLite gì? 3.2 Tính SQLite 3.3 Nhược điểm 5 5 5 6 7 8 9 Chương - Phát biểu toán Khảo sát trạng Phát biểu toán Yêu cầu 3.1 Yêu cầu chức 3.1.1 Chức quản lý tác vụ 3.1.2 Chức liên quan đến trạng thái tác vụ 3.1.3 Chức quản lý danh sách tác vụ 3.2 Yêu cầu phi chức 3.2.1 Yêu cầu giao diện 3.2.2 Yêu cầu độ tin cậy 3.2.3 Yêu cầu khả mở rộng 3.2.4 Yêu cầu tính tương thích 11 11 11 11 11 12 12 12 12 12 12 13 13 Chương - Thiết kế sở liệu Sơ đồ ERD Mô tả chi tiết 14 14 14 2.1 Task list 2.2 Task 2.3 Sub task 14 14 15 Chương - USE CASE Sơ đồ use-case Danh sách use-case Đặc tả use-case 3.1 Đặc tả use-case “Thêm danh sách" 3.2 Đặc tả use-case “Thay đổi tên danh sách" 3.3 Đặc tả use-case “Xoá danh sách" 3.4 Đặc tả use-case “Xố tác vụ hồn thành danh sách" 3.5 Đặc tả use-case “Thêm tác vụ" 3.6 Đặc tả use-case “Đánh dấu hoàn thành tác vụ" 3.7 Đặc tả use-case “Đánh dấu yêu thích tác vụ" 3.8 Đặc tả use-case “Sửa nội dung tác vụ" 3.9 Đặc tả use-case “Xóa tác vụ" 3.10 Đặc tả use-case “Thay đổi theme ứng dụng" 16 16 17 18 18 18 19 20 21 21 22 23 24 25 Chương - Thiết kế giao diện Danh sách hình Mơ tả chi tiết 2.1 Màn hình Home 2.2 Màn hình Drawer 2.3 Màn hình chi tiết 2.4 Màn hình thêm tác vụ 2.5 Màn hình Settings 2.6 Màn hình Search 26 26 27 27 28 29 31 32 34 Chương - Kết luận Ưu điểm Nhược điểm Hướng phát triển 35 35 35 35 TÀI LIỆU THAM KHẢO 36 Chương - Thông tin chung Tên đề tài Tìm hiểu Flutter xây dựng ứng dụng Thông tin sinh viên a MSSV: 19520664 b Họ tên: Huỳnh Anh Kiệt c Email: 19520664@gm.uit.edu.vn Môi trường phát triển - Visual Studio Code: Viết mã - Android Studio: Giả lập Android - Material Design: Style phong cách Google cho ứng dụng Flutter Môi trường triển khai - Android iOS Chương - Ngơn ngữ lập trình cơng nghệ Dart 1.1 Dart gì? 1.1.1 Tổng quan - Dart ngôn ngữ tối ưu cho client để phát triển ứng dụng cách nhanh chóng tảng Mục tiêu Dart trở thành ngôn ngữ suất cao cho việc phát triển đa tảng với tảng runtime linh hoạt cho framework - Dart tảng Flutter Dart cung cấp ngôn ngữ môi trường chạy cho Flutter, Dart hỗ trợ khía cạnh khác formatting, analyzing, testing 1.1.2 Ngôn ngữ - Dart ngơn ngữ type-safe, sử dụng chế kiểm tra static type để đảm bảo giá trị biến ln trùng với static type biến Đơi đề cập sound typing Mặc dù kiểu liệu bắt buộc, type annotation khơng bắt buộc chế type inference - Dart cho phép kiểu liệu dynamic kết hợp với runtime check, hữu dụng trường hợp cụ thể 1.1.3 Thư viện - Dart có tập hợp core libraries phong phú, cung cấp cho tác vụ ngày nhà phát triển: - Built-in types, collections, and core functionality khác cho chương trình Dart (dart::core) - Collection types queues, linked lists, hashmaps, and binary trees (dart:collection) - Encoders decoders cho việc chuyển đổi dạng liệu với nhau, bao gồm JSON UTF-8 (dart:convert) - Hàm số toán học, lấy số ngẫu nhiên (dart:math) - File, socket, HTTP, and hỗ trợ I/O khác cho ứng dụng non-web (dart:io) - Hỗ trợ asynchronous programming, với class Future Stream (dart:async) - Và cịn nhiều thư viện khác - Ngồi core libraries, cịn có nhiều API publish lên pub.dev đội ngũ phát triển Google 1.1.4 Nền tảng - Native platform: Nhắm vào thiết bị di động desktop, bao gồm Dart VM với biên dịch just-in-time (JIT) ahead-of-time (AOT) - Web platform: Nhắm vào ứng dụng web, bao gồm biên dịch Dart sang Javascript 1.2 Lợi ích sử dụng Dart - Năng suất: Cú pháp Dart rõ ràng súc tích, cơng cụ đơn giản mạnh mẽ Type-safe giúp bạn xác định sớm lỗi tinh tế - Nhanh: Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn để có dự đốn hiệu suất cao khởi động nhanh thiết bị di động web - Dart biên dịch thành mã ARM x86, để ứng dụng di động Dart chạy tự nhiên iOS, Android Đối với ứng dụng web, chuyển mã từ Dart sang JavaScript - Dễ gần: Dart quen thuộc với nhiều nhà phát triển có, nhờ vào cú pháp định hướng đối tượng - Reactive: Dart phù hợp với lập trình Reactive, với hỗ trợ để quản lý đối tượng tồn thời gian ngắn Flutter 2.1 Flutter gì? - Flutter mobile UI framework Google để tạo giao diện chất lượng cao iOS Android khoảng thời gian ngắn Flutter hoạt động với code sẵn có sử dụng lập trình viên, tổ chức - 2.2 Flutter hoàn toàn miễn phí mã nguồn mở Tại dùng Flutter? - Nếu bạn tìm kiếm phương pháp thay để phát triển ứng dụng Android, bạn nên cân nhắc thử Flutter Google, framework dựa ngơn ngữ lập trình Dart - Các ứng dụng xây dựng với Flutter phân biệt với ứng dụng xây dựng cách sử dụng Android SDK, giao diện hiệu suất Hơn nữa, với tinh chỉnh nhỏ, chúng chạy thiết bị iOS - Flutter sử dụng Dart, ngơn ngữ nhanh, hướng đối tượng với nhiều tính hữu ích mixin, generic, isolate, static type - Flutter có thành phần UI riêng nó, với chế để kết xuất chúng tảng Android iOS Hầu hết thành phần giao diện người dùng, sẵn dùng, phù hợp với ... Dart - Các ứng dụng xây dựng với Flutter phân biệt với ứng dụng xây dựng cách sử dụng Android SDK, giao diện hiệu suất Hơn nữa, với tinh chỉnh nhỏ, chúng chạy thiết bị iOS - Flutter sử dụng Dart,... Do phát triển ứng dụng di động cho ghi hướng đắn Phát biểu tốn Tầm nhìn Áp dụng kiến thức lập trình thiết bị di động Flutter để xây dựng ứng dụng ghi tác vụ Mục tiêu Hướng tới ứng dụng có giao... HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN TÌM HIỂU VỀ FLUTTER VÀ XÂY DỰNG ỨNG DỤNG GIẢNG VIÊN HƯỚNG DẪN ThS Nguyễn Công Hoan Sinh viên thực hiện: Huỳnh Anh