Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 80 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
80
Dung lượng
404,26 KB
Nội dung
ĐẠ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 BÁO CÁO ĐỒ ÁN 1 Tìm hiểu Flutter và xây dựng ứng dụng hỗ trợ tập thể dục Giảng viên hướng dẫn: ThS HUỲNH TUẤN ANH Sinh viên thực hiện: TRƯƠNG KIM LÂM – 19521743 TRẦN LÊ THANH TÙNG – 19522496 TP HỒ CHÍ MINH, 2022 LỜI CẢM ƠN Đầu tiên, nhóm em xin phép gửi lời cảm ơn đến tập thể quý thầy cô của Trường Đại học Công nghệ Thông tin – Đại học Quốc gia Thành phố Hồ Chí Minh cũng như quý thầy cô thuộc Khoa Công nghệ Phần mềm đã giúp nhóm em có những kiến thức nền tảng vững chắc để có thể thực hiện đề tài này Đặc biệt, nhóm em xin gửi lời cảm ơn chân thành đến thầy Huỳnh Tuấn Anh, người đã tạo điều kiện và hướng dẫn chúng em trong việc thực hiện đề tài này, một đề tài mà em và người bạn của mình đã ấp ủ từ lâu Nhờ những kiến thức và kinh nghiệm từ các giảng viên mà nhóm em đã có thể tận dụng để thực hiện đề tài Tuy nhiên, trong quá trình thực hiện đề tài cũng sẽ không thể tránh khỏi những hạn chế, thiếu sót Chúng em mong rằng sẽ nhận được những nhận xét, góp ý từ thầy cũng như các giảng viên khác, để chúng em có thể ngày một tốt hơn và để có thể đóng góp được nhiều hơn nữa Chúng em sẽ rất biết ơn vì điều đó Một lần nữa, chúng em xin trân trọng cảm ơn! Thành phố Hồ Chí Minh, ngày 12 tháng 06 năm 2022 Trương Kim Lâm, Trần Lê Thanh Tùng 1 NHẬN XÉT CỦA GIẢNG VIÊN 2 MỤC LỤC LỜI CẢM ƠN 1 NHẬN XÉT CỦA GIẢNG VIÊN 2 CHƯƠNG I – TỔNG QUAN 6 1 Thông tin chung 6 1.1 Tên đồ án 6 1.2 Tên ứng dụng 6 1.3 Nền tảng ứng dụng 6 1.4 Công nghệ 6 1.5 Nhân lực tham gia 6 2 Lý do chọn đề tài 6 CHƯƠNG II – CƠ SỞ LÝ THUYẾT 8 1 Flutter 8 2 ViPT 11 CHƯƠNG III – PHÂN TÍCH, THIẾT KẾ 15 1 Danh sách tính năng 15 2 Sơ đồ use-case 19 2.1 Xác thực người dùng 19 2.2 Cài đặt 21 2.3 Quản lý món ăn 23 2.4 Quản lý bài tập 24 2.5 Theo dõi lượng nước uống 30 2.6 Theo dõi bước chân 36 2.7 Theo dõi lượng thức ăn 38 3 2.8 Theo dõi luyện tập 47 2.9 Fasting (hỗ trợ quá trình không ăn uống) 54 2.10 Thống kê cân nặng 58 2.11 Thống kê nước uống 61 2.12 Thống kê bước chân 63 2.13 Thống kê dinh dưỡng 65 2.14 Thống kê luyện tập 67 2.15 Hình ảnh quá trình 69 2.16 Thực hiện luyện tập 72 2.17 Đề xuất lộ trình 77 3 Sơ đồ hoạt động 81 3.1 Xác thực người dùng 81 3.2 Cài đặt 82 3.3 Quản lý món ăn 83 3.4 Quản lý bài tập 84 3.5 Theo dõi lượng nước uống 84 3.6 Theo dõi bước chân 85 3.7 Theo dõi lượng thức ăn 85 3.8 Theo dõi luyện tập 85 3.9 Fasting (hỗ trợ quá trình không ăn uống) 86 3.10 Thống kê cân nặng 86 3.11 Thống kê nước uống 86 3.12 Thống kê bước chân 87 3.13 Thống kê dinh dưỡng 87 4 3.14 Thống kê luyện tập 87 3.15 Hình ảnh quá trình 88 3.16 Thực hiện luyện tập 89 3.17 Đề xuất lộ trình 90 4 Cơ sở dữ liệu 91 5 Kiến trúc 93 6 Giao diện 94 CHƯƠNG IV – TỔNG KẾT 105 1 Kết quả đạt được 105 2 Hạn chế 105 3 Hướng phát triển 105 TÀI LIỆU THAM KHẢO 108 5 CHƯƠNG I – TỔNG QUAN 1 Thông tin chung 1.1 Tên đồ án Tìm hiểu Flutter và xây dựng ứng dụng hỗ trợ tập thể dục 1.2 Tên ứng dụng ViPT – Virtual Personal Trainer 1.3 Nền tảng ứng dụng Di động (Android) 1.4 Công nghệ • Ngôn ngữ: Dart • Framework: Flutter • Database: o Firebase o SQLite 1.5 Nhân lực tham gia STT Họ và tên MSSV 1 Trương Kim Lâm 19521743 2 Trần Lê Thanh Tùng 19522496 2 Lý do chọn đề tài Hiện nay, Flutter đang được khá nhiều người quan tâm và dần dần trở thành xu hướng bởi tính dễ sử dụng của nó Hơn nữa, Flutter được phát triển bởi Google, một trong những công ty công nghệ lớn mạnh trên thế giới Điều này càng khiến cho nhiều người tin tưởng và đặt niềm tin vào sự phát triển của nó, nhóm em cũng không phải là một ngoại lệ Khi tiếp cận với Flutter, chúng em nhận thấy rõ ràng sự mới mẻ của nó và kèm theo đó là những khả năng độc đáo mà Google cung cấp Tuy nhiên thì nhóm em không muốn dừng ở đó, ở một mức cơ bản là vận dụng được, 6 mà nhóm em còn muốn đi sâu hơn, khai thác hết những cái nâng cao và làm sao để xây dựng được một ứng dụng với hiệu suất cao Ở đồ án này, chúng em đã chọn xây dựng một ứng dụng hỗ trợ tập thể dục và nguyên nhân chính cho sự lựa chọn đó xuất phát từ chính nhu cầu của bản thân Vào 2 năm trước, đó cũng là thời điểm em bắt đầu đặt ra mục tiêu cân nặng cho mình, em và người bạn của mình đã cùng nhau lên kế hoạch để có những buổi luyện tập mỗi ngày với mục tiêu là đạt được mức cân mong muốn Tuy nhiên, sau một khoảng thời gian dài luyện tập mà vẫn không đạt được thành quả, chúng em mới nhận ra rằng, việc luyện tập thì cần phải đi đôi với chế độ dinh dưỡng, không chỉ thế mà giấc ngủ của chúng ta cũng có liên quan trong đó Để có thể đảm bảo được chế độ dinh dưỡng cũng như các hoạt động tập luyện mỗi ngày là hợp lý, ta sẽ phải tính toán rất nhiều về các thành phần dinh dưỡng của món ăn cũng như cường độ ở các hoạt động luyện tập để làm sao cho phù hợp với cơ thể Hơn nữa, việc tính toán này cũng cần phải đúng theo khoa học để có thể đảm bảo sức khỏe cho cơ thể của chúng ta Chính vì thế mà điều này càng trở nên khó khăn hơn đối với những cá nhân không thể dành nhiều thời gian để tìm hiểu và áp dụng, chưa kể là việc tự thực hiện những việc này đôi lúc sẽ khiến chúng ta thật đau đầu Vậy thì, tại sao ta không tận dụng công nghệ để thực hiện giúp chúng ta những việc đó? Khi câu hỏi đó được đặt ra cũng là lúc em và bạn em cùng nhau bắt tay vào tìm hiểu và quyết định xây dựng một ứng dụng hỗ trợ tập thể dục 7 CHƯƠNG II – CƠ SỞ LÝ THUYẾT 1 Flutter Flutter là một SDK mới của Google dành cho các thiết bị di động giúp developers và designers xây dựng nhanh chóng ứng dụng dành cho các thiết bị di động (Android, iOS) Flutter là dự án mã nguồn mở đang trong giai đoạn thử nghiệm Flutter bao gồm Reactive framework và công nghệ hiển thị 2D (2D rendering engine) và các công cụ phát triển (development tool) Các thành phần này làm việc cùng nhau giúp ta thiết kế, xây dựng, test, debug ứng dụng Không có gì ngạc nhiên khi Flutter giúp các nhà phát triển tạo ra các ứng dụng native đẹp mắt và giúp họ phát triển các ứng dụng đa nền tảng một cách dễ dàng Widget Flutter đã tạo ra một khái niệm "mới" đó là Widget Widget chính là nền tảng của Flutter, một widget miêu tả một phần của giao diện người dùng Tất cả các component như text, image, button hay animation, theme, layout hay thậm chí app cũng là 1 widget Trong Flutter tất cả các widget hay giao diện đều được code bằng ngôn ngữ Dart Dart Flutter sử dụng Dart, một ngôn ngữ nhanh, hướng đối tượng với nhiều tính năng hữu ích như mixin, generic, isolate, và static type Hot reload Hot reload là một tính năng của Flutter giúp ta nhanh chóng và dễ dàng thử nghiệm, xây dựng giao diện thêm tính năng và sửa lỗi mà không cần khởi động lại chúng GetX GetX là một package có thể xem plà toàn năng giúp cho code Flutter hiệu quả và năng suất hơn Nó kết hợp high-performance state management, intelligent dependency injection, và route management một cách thiết thực và nhanh chóng 8 GetX có 3 nguyên tắc cơ bản, có nghĩa đây chính là những ưu tiên cho tất cả các tài nguyên trong thư viện này: • Performance (hiệu suất): GetX tập trung vào hiệu suất và mức tiêu thụ tài nguyên tối thiểu GetX không sử dụng Streams hoặc ChangeNotifier • Productivity (năng suất): GetX sử dụng một cú pháp dễ dàng Bất kể bạn muốn làm gì, luôn có một cách dễ dàng hơn với GetX Nó sẽ tiết kiệm hàng giờ phát triển và sẽ cung cấp hiệu suất tối đa mà ứng dụng của bạn có thể mang lại • Organization (tổ chức): GetX cho phép tách view, presentation logic, business logic, dependency injection và navigation ra riêng với nhau Bạn không cần context để điều hướng giữa các routes, vì vậy mà bạn không bị phụ thuộc vào cây widget cho điều này Bạn không cần context để truy cập controller/bloc của mình thông qua một widget kế thừa, vì vậy bạn hoàn toàn tách rời presentation logic và business logic khỏi lớp trực quan hóa của mình Bạn không cần phải đưa các lớp controller/model/bloc vào cây widget của mình thông qua MultiProviders Đối với điều này, GetX sử dụng tính năng dependency injection của riêng nó, tách hoàn toàn dependency injection khỏi chế độ xem của nó GetX không cồng kềnh Nó có vô số tính năng cho phép bạn bắt đầu lập trình mà không cần lo lắng về bất cứ điều gì, nhưng mỗi tính năng này nằm trong các vùng chứa riêng biệt và chỉ được khởi động sau khi sử dụng Nếu bạn chỉ sử dụng State Management thì sẽ chỉ có State Management được biên dịch Nếu bạn chỉ sử dụng các route, không có gì từ State Management sẽ được biên dịch GetX có một hệ sinh thái khổng lồ, một cộng đồng lớn, một số lượng lớn cộng tác viên và sẽ được duy trì miễn là Flutter còn tồn tại GetX cũng có khả năng chạy với cùng một mã trên Android, iOS, Web, Mac, Linux, Windows và trên máy chủ của bạn Bạn hoàn toàn có thể sử dụng lại mã được tạo trên giao diện người dùng trên chương trình phụ trợ của mình với Get Server 9 Ưu điểm của Flutter • Đa nền tảng • Ít phải viết các config khi tạo project mới theo cách thủ công • Hỗ trợ hot reload • Hỗ trợ tốt với nhiều IDE (Android Studio, IDE IntelliJ, VSCode) • Navigator được tích hợp sẵn Ta có thể tạo Route mới mà không cần kết nối bất kỳ thứ gì • Giải pháp quản lý dữ liệu được tạo sẵn • Sử dụng Animation dễ dàng, linh hoạt • Với GetX, việc xây dựng một ứng dụng từ Flutter trở nên dễ dàng và hiệu quả Nhược điểm của Flutter • Có một rào cản lớn cho những người chỉ học JavaScript hoặc đến từ React Native Do thực tế là ngôn ngữ Dart được sử dụng với sự kế thừa, đa hình và tất cả những thứ về OOP • Không có sự tách biệt, phân chia Styles, Templates Cho nên khi tạo component thì chúng ta cũng cần phải tạo các style ngay lúc đó • Kích thước file lớn Điểm mở rộng Không có 2.13.2.Thay đổi thời gian biểu đồ lượng thức ăn Tóm tắt Người dùng có thể thay đổi thời gian hiển thị lượng calories dinh dưỡng của biều đồ Dòng sự kiện Dòng sự kiện chính Hành động của tác nhân 1 Người dùng chọn xem mục Cá nhân Phản ứng của hệ thống 2 Hiển thị màn hình chứa biểu đồ theo dõi lượng calories dinh dưỡng theo tuần 3 Chọn thay đổi thời gian xem 4 Hiển thị công cụ lựa chọn khoảng thời gian 5 Xác nhận 6 Hiển thị lượng calories dinh dưỡng theo ngày trong khoảng thời gian được chọn Dòng sự kiện phụ Hành động của tác nhân Phản ứng của hệ thống Không có Các yêu cầu đặc biệt Khoảng thời gian mặc định là trong tuần hiện tại Trạng thái hệ thống khi bắt đầu thực hiện use-case Đã truy cập hệ thống thành công 66 Trạng thái hệ thống sau khi thực hiện use-case Trạng thái không thay đổi Điểm mở rộng Không có 2.14 Thống kê luyện tập 2.14.1.Xem biểu đồ thống kê luyện tập trong tuần Tóm tắt Người dùng có thể theo dõi lượng calo tiêu hao do tập luyện theo tuần (theo thời gian) Dòng sự kiện Dòng sự kiện chính Hành động của tác nhân 1 Người dùng chọn xem mục Cá nhân Phản ứng của hệ thống 2 Hiển thị màn hình chứa biểu đồ theo dõi lượng calories tập luyện theo tuần Dòng sự kiện phụ Hành động của tác nhân Phản ứng của hệ thống Không có Các yêu cầu đặc biệt Khoảng thời gian mặc định là trong tuần hiện tại 67 Trạng thái hệ thống khi bắt đầu thực hiện use-case Đã truy cập hệ thống thành công Trạng thái hệ thống sau khi thực hiện use-case Trạng thái không thay đổi Điểm mở rộng Không có 2.14.2.Thay đổi thời gian biểu đồ thống kê luyện tập Tóm tắt Người dùng có thể thay đổi thời gian hiển thị lượng calories tập luyện của biều đồ Dòng sự kiện Dòng sự kiện chính Hành động của tác nhân 1 Người dùng chọn xem mục Cá nhân Phản ứng của hệ thống 2 Hiển thị màn hình chứa biểu đồ theo dõi lượng calories tập luyện theo tuần 3 Chọn thay đổi thời gian xem 4 Hiển thị công cụ lựa chọn khoảng thời gian 5 Xác nhận 6 Hiển thị lượng calories tập luyện theo ngày trong khoảng thời gian được chọn Dòng sự kiện phụ Hành động của tác nhân Phản ứng của hệ thống Không có 68 Các yêu cầu đặc biệt Khoảng thời gian mặc định là trong tuần hiện tại Trạng thái hệ thống khi bắt đầu thực hiện use-case Đã truy cập hệ thống thành công Trạng thái hệ thống sau khi thực hiện use-case Trạng thái không thay đổi Điểm mở rộng Không có 2.15 Hình ảnh quá trình 2.15.1.Xem hình ảnh quá trình trước – sau Tóm tắt Người dùng có thể xem hình ảnh trước và sau trong quá trình sử dụng ứng dụng 69 Dòng sự kiện Dòng sự kiện chính Hành động của tác nhân Phản ứng của hệ thống 1 Người dùng chọn xem mục Cá 2 Hiển thị màn hình chứa công cụ nhân hiển thị hình ảnh trước - sau của người dùng Dòng sự kiện phụ Hành động của tác nhân Phản ứng của hệ thống Không có Các yêu cầu đặc biệt Không có Trạng thái hệ thống khi bắt đầu thực hiện use-case Đã truy cập hệ thống thành công Trạng thái hệ thống sau khi thực hiện use-case Trạng thái không thay đổi Điểm mở rộng Không có 2.15.2.Cập nhật hình ảnh quá trình trước – sau Tóm tắt Người dùng có thể cập nhật hình ảnh trước và sau trong quá trình sử dụng ứng dụng 70 Dòng sự kiện Dòng sự kiện chính Hành động của tác nhân 1 Người dùng chọn xem mục Cá nhân Phản ứng của hệ thống 2 Hiển thị màn hình chứa công cụ hiển thị hình ảnh trước - sau của người dùng 3 Chọn cập nhật hình ảnh trước/sau 4 Hiển thị công cụ để chọn hình ảnh từ thư viện hoặc chụp ảnh 5 Chọn hình ảnh từ thư viện 6 Cập nhật hình ảnh và lưu vào cơ sở dữ liệu Dòng sự kiện phụ Hành động của tác nhân 1 Chọn hình ảnh từ chụp ảnh Phản ứng của hệ thống 2 Chuyển hướng sang ứng dụng camera của thiết bị 3 Chụp ảnh 4 Cập nhât hình ảnh và lưu vào cơ sở dữ liệu Các yêu cầu đặc biệt Không có Trạng thái hệ thống khi bắt đầu thực hiện use-case Đã truy cập hệ thống thành công Trạng thái hệ thống sau khi thực hiện use-case Trạng thái không thay đổi Điểm mở rộng Không có 71 2.16 Thực hiện luyện tập 2.16.1.Bắt đầu phiên tập Tóm tắt Người dùng có thể bắt đầu phiên luyện tập dựa trên bộ bài tập đã chọn Dòng sự kiện Dòng sự kiện chính Hành động của tác nhân Phản ứng của hệ thống 1 Người dùng chọn một bộ luyện tập 2 Hiển thị danh sách các bài tập 3 Chọn bắt đầu bộ luyện tập 4 Hiển thị màn hình phiên luyện tập 5 Chọn nút "Bắt đầu" 6 Phiên luyện tập bắt đầu Dòng sự kiện phụ Hành động của tác nhân Phản ứng của hệ thống Không có 72 Các yêu cầu đặc biệt Không có Trạng thái hệ thống khi bắt đầu thực hiện use-case Chưa bắt đầu phiên tập Trạng thái hệ thống sau khi thực hiện use-case Phiên tập đang chạy Điểm mở rộng Không có 2.16.2.Tạm dừng phiên tập Tóm tắt Người dùng có thể tạm dừng phiên luyện tập đã chọn Dòng sự kiện Dòng sự kiện chính Hành động của tác nhân Phản ứng của hệ thống 1 Người dùng chọn một bộ luyện tập 2 Hiển thị danh sách các bài tập 3 Chọn bắt đầu bộ luyện tập 4 Hiển thị màn hình phiên luyện tập 5 Chọn nút "Bắt đầu" 6 Phiên luyện tập bắt đầu 7 Chọn nút "Tạm dừng" 8 Phiên luyện tập tạm dừng Dòng sự kiện phụ Hành động của tác nhân Không có Các yêu cầu đặc biệt Không có Phản ứng của hệ thống 73 Trạng thái hệ thống khi bắt đầu thực hiện use-case Phiên tập đang chạy Trạng thái hệ thống sau khi thực hiện use-case Phiên tập đang tạm dừng Điểm mở rộng Không có 2.16.3.Tiếp tục phiên tập Tóm tắt Người dùng có thể tiếp tục phiên luyện tập đã chọn Dòng sự kiện Dòng sự kiện chính Hành động của tác nhân Phản ứng của hệ thống 1 Người dùng chọn một bộ luyện tập 2 Hiển thị danh sách các bài tập 3 Chọn bắt đầu bộ luyện tập 4 Hiển thị màn hình phiên luyện tập 5 Chọn nút "Bắt đầu" 6 Phiên luyện tập bắt đầu 7 Chọn nút "Tạm dừng" 8 Phiên luyện tập tạm dừng 9 Chọn nút "Tiếp tục" 10.Phiên luyện tập tiếp tục Dòng sự kiện phụ Hành động của tác nhân Không có Các yêu cầu đặc biệt Không có Phản ứng của hệ thống 74 Trạng thái hệ thống khi bắt đầu thực hiện use-case Phiên tập đang tạm dừng Trạng thái hệ thống sau khi thực hiện use-case Phiên tập đang chạy Điểm mở rộng Không có 2.16.4.Bỏ qua bài tập Tóm tắt Người dùng có thể bỏ qua bài tập trong phiên luyện tập đã chọn Dòng sự kiện Dòng sự kiện chính Hành động của tác nhân Phản ứng của hệ thống 1 Người dùng chọn một bộ luyện tập 2 Hiển thị danh sách các bài tập 3 Chọn bắt đầu bộ luyện tập 4 Hiển thị màn hình phiên luyện tập 5 Chọn nút "Bắt đầu" 6 Phiên luyện tập bắt đầu 7 Chọn nút "Bỏ qua" 8 Phiên luyện tập bỏ qua bài tập hiện tại, hiển thị bài tập tiếp theo Dòng sự kiện phụ Hành động của tác nhân Không có Các yêu cầu đặc biệt Không có Phản ứng của hệ thống 75 Trạng thái hệ thống khi bắt đầu thực hiện use-case Phiên tập đang chạy Trạng thái hệ thống sau khi thực hiện use-case Trạng thái không thay đổi Điểm mở rộng Không có 2.16.5.Kết thúc phiên tập Tóm tắt Người dùng có thể dừng hoàn toàn phiên luyện tập đã chọn Dòng sự kiện Dòng sự kiện chính Hành động của tác nhân Phản ứng của hệ thống 1 Người dùng chọn một bộ luyện tập 2 Hiển thị danh sách các bài tập 3 Chọn bắt đầu bộ luyện tập 4 Hiển thị màn hình phiên luyện tập 5 Chọn nút "Bắt đầu" 6 Phiên luyện tập bắt đầu 7 Chọn nút "Dừng" 8 Hiển thị dialog xác nhận đóng phiên luyện tập hay không? 9 9 Chọn "Đồng ý" 10.Phiên luyện tập đóng lại, hiển thị thống kê Dòng sự kiện phụ Hành động của tác nhân 1 Chọn "Hủy" Các yêu cầu đặc biệt Không có Phản ứng của hệ thống 2 Phiên luyện tập tiếp tục 76 Trạng thái hệ thống khi bắt đầu thực hiện use-case Phiên tập đang chạy Trạng thái hệ thống sau khi thực hiện use-case Phiên tập chưa bắt đầu Điểm mở rộng Không có 2.17 Đề xuất lộ trình 2.17.1.Xây dựng lộ trình tập luyện và dinh dưỡng Tóm tắt Người dùng có thể xây dựng một lộ trình gồm các bài tập và món ăn dựa trên thông tin cá nhân để đạt được mục tiêu đề ra 77 Dòng sự kiện Dòng sự kiện chính Hành động của tác nhân 1 Người dùng lần đầu đăng nhập Phản ứng của hệ thống 2 Hiển thị màn hình yêu cầu nhập các thông tin cơ bản + mục tiêu 3 Hoàn tất nhập các thông tin cơ bản + mục tiêu 4 Xây dựng lộ trình gồm danh sách các bài tập và món ăn mỗi ngày để đặt được mục tiêu Dòng sự kiện phụ Hành động của tác nhân 1 Người dùng hoàn thành một lộ Phản ứng của hệ thống 2 Hiển thị thành quả, thống kê trình 3 Hiển thị đề xuất tạo lộ trình mới 4 Xác nhận 5 Hiển thị màn hình yêu cầu nhập mục tiêu 6 Hoàn tất nhập mục tiêu 7 Xây dựng lộ trình dựa trên thông tin cơ bản và mục tiêu mới Các yêu cầu đặc biệt Không có Trạng thái hệ thống khi bắt đầu thực hiện use-case Đã truy cập hệ thống thành công Trạng thái hệ thống sau khi thực hiện use-case Trạng thái không thay đổi 78 Điểm mở rộng Không có 2.17.2.Cập nhật cân nặng Tóm tắt Người dùng có thể cập nhật cân năng trong lúc lộ trình đang diễn ra Dòng sự kiện Dòng sự kiện chính Hành động của tác nhân 1 Người dùng chọn mục "Lộ trình" Phản ứng của hệ thống 2 Hiển thị màn hình chứa các thông tin về lộ trình 3 Chọn cập nhật cân nặng 4 Hiển thị công cụ nhập cân nặng mới 5 Nhập cân nặng mới 6 Lưu vào cơ sở dữ liệu Dòng sự kiện phụ Hành động của tác nhân Phản ứng của hệ thống Không có Các yêu cầu đặc biệt Không có Trạng thái hệ thống khi bắt đầu thực hiện use-case Đã truy cập hệ thống thành công Trạng thái hệ thống sau khi thực hiện use-case Trạng thái không thay đổi 79 ... TỔNG QUAN Thơng tin chung 1.1 Tên đồ án Tìm hiểu Flutter xây dựng ứng dụng hỗ trợ tập thể dục 1.2 Tên ứng dụng ViPT – Virtual Personal Trainer 1.3 Nền tảng ứng dụng Di động (Android) 1.4 Cơng nghệ... dừng đó, mức vận dụng được, mà nhóm em cịn muốn sâu hơn, khai thác hết nâng cao để xây dựng ứng dụng với hiệu suất cao Ở đồ án này, chúng em chọn xây dựng ứng dụng hỗ trợ tập thể dục ngun nhân cho... ta khơng tận dụng cơng nghệ để thực giúp việc đó? Khi câu hỏi đặt lúc em bạn em bắt tay vào tìm hiểu định xây dựng ứng dụng hỗ trợ tập thể dục CHƯƠNG II – CƠ SỞ LÝ THUYẾT Flutter Flutter SDK Google