CHƯƠNG I. GIỚI THIỆU ĐỀ TÀI. Giới thiệu chung. Mục tiêu đề tài.
Quá trình hiện thực. Tổng quan về chức năng. 8 CHƯƠNG II. Tổng quan và lịch sử.
Thành phần của Flutter. Một số đặc điểm nổi bật. Ưu và nhược điểm của Flutter:. Ngôn ngữ lập trình Dart.
Tại sao Flutter chọn Dart?. Hệ quản trị cơ sở dữ liệu Firebase. Firebase Realtime database. Ưu điểm của Firebase.
Nhược điểm của Firebase. 13 CHƯƠNG III. XÂY DỰNG HỆ THỐNG. Xây dựng kiến trúc hệ thống.
Công nghệ sử dụng. Kiến trúc hệ thống: Mô hình Client-Server. Kiến trúc ứng dụng: Mô hình MVVM. Mô tả thành phần hệ thống.
Mô tả Use case. Đặc tả use case. Mô tả các màn hình. Màn hình đăng nhập.
Màn hình đăng ký. Màn hình quên mật khẩu. Màn hình chính. 45 CHƯƠNG IV.
56 DANH MỤC HÌNH ẢNH Hình 1. Tổng quan về chức năng. Một số ứng dụng nổi tiếng được viết bằng Flutter. Kiến trúc của Flutter.
Kiến trúc hệ thống client server. 14 Hình 5 Kiến trúc ứng dụng. Màn hình đăng nhập. Màn hình đăng ký.
Màn hình quên mật khẩu. Màn hình trang chủ. Màn hình ví của bạn. Màn hình thêm ví.
Màn hình thêm giao dịch. Màn hình thêm ngân sách. Màn hình chi tiết ngân sách. Màn hình quản lý tài khoản.
Sơ đồ hoạt động đăng ký. Sơ đồ hoạt động thêm ví. Sơ đồ hoạt động thêm giao dịch. Sơ đồ hoạt động thêm ngân sách.
55 DANH MỤC BẢNG Bảng 1. Mô tả thành phần ứng dụng. Mô tả use case. Đặc tả chức năng đăng ký.
Đặc tả chức năng đăng nhập với email và mật khẩu. Đặc tả chức năng đăng nhập bằng Google. Đặc tả chức năng quên mật khẩu. Đặc tả chức năng thêm ví.
Đặc tả chức năng cập nhật ví. Đặc tả chức năng xoá ví. Đặc tả chức năng thêm giao dịch. Đặc tả chức năng cập nhật giao dịch.
Đặc tả chức năng xoá giao dịch. Đặc tả chức năng báo cáo chi tiêu. Đặc tả chức năng thêm ngân sách. Đặc tả chức năng sửa ngân sách.
Đặc tả chức năng xoá ngân sách. Đặc tả chức năng chỉnh sửa thời gian thông báo. Đặc tả chức năng chỉnh sửa định dạng ngày tháng. Đặc tả chức năng bật tắt âm thanh thông báo.
Đặc tả chức năng đăng xuất. GIỚI THIỆU ĐỀ TÀI 1. Giới thiệu chung Tạo ra thu nhập đã khó, tuy nhiên việc quản lý chi tiêu cá nhân lại càng khó hơn. Vậy nên, nếu biết cách quản lý tài chính cá nhân, chúng ta sẽ chủ động trong cuộc sống và có thể tạo thêm nhiều cơ hội cho bản thân.
Tuy nhiên, việc quản lý tài chính như thế nào cho hiệu quả lại chính là vấn đề mà rất nhiều người gặp phải trong cuộc sống hiện nay. Quản lý tài chính cá nhân thoạt nghe thì có vẻ rất dễ nhưng thực tế thì không hề đơn giản và không thể thực hiện trong ngày một ngày hai được, cần đầu tư rất nhiều thời gian và công sức mới có thể quản lý sát sao được. Chính vì thế nhiều công ty tiên phong đã áp dụng công nghệ vào lĩnh vực này để đơn giản hoá việc quản lý chi tiêu và mang đến cho người dùng trải nghiệm và đơn giản hơn. Hiểu được nhu cầu và xu hướng ấy, nhóm chúng em đã quyết định làm ứng dụng hỗ trợ quản lý chi tiêu cá nhân – Monas.
Mục tiêu đề tài 2. Lý thuyết - Nghiên cứu về Flutter và ngôn ngữ lập trình Dart - Nắm rõ các thao tác trên môi trường phát triển tích hợp Android studio và công cụ lập trình Visual studio code - Nghiên cứu và sử dụng dịch vụ cơ sở dữ liệu trên nền tảng đám mây – Firebase - Nghiên cứu cách thức phát triển ứng dụng đa nền tảng 2. Mục tiêu - Người dùng có thể lưu lại thông tin cá nhân và giao dịch để phục vụ tốt hơn trong việc quản lý chi tiêu - Ứng dụng sẽ hỗ trợ từ cơ bản đến đầy đủ chức năng của một ứng dụng quản lý chi tiêu điển hình - Ứng dụng có giao diện thân thiện, dễ sử dụng 3. Quá trình hiện thực Trải qua quá trình tìm hiểu và thực hiện đề tài, nhóm đã giải quyết được các vấn đề đặt ra ban đầu, từng bước giải quyết và liên tục đặt ra những vấn đề mới để ngày càng hoàn thiện sản phẩm.
Những bước thực hiện: - Phân tích yêu cầu bài toán - Lựa chọn nền tảng công nghệ phù hợp với yêu cầu - Nghiên cứu cơ sở lý thuyết của công nghệ lựa chọn - Áp dụng lý thuyết vào xây dựng ứng dụng thực tiễn - Kiểm tra và khám phá các ứng dụng tương tự để tối ưu hoá trải nghiệm người dùng và cải thiện các tính năng cho ứng dụng 4. Tổng quan về chức năng Hình 1. Tổng quan về chức năng CHƯƠNG II. Tổng quan và lịch sử Flutter là một bộ công cụ phát triển phần mềm mã nguồn mở được tạo ra bởi Google – một trong những công ty công nghệ lớn nhất hành tinh.
Nó được sử dụng với mục đích phát triển các ứng dụng đa nền tảng cho Android, iOS, Linux, Windows, MacOS và web chỉ từ một nền tảng mã duy nhất. Flutter được giới thiệu lần đầu tiên vào năm 2015 và đến tháng 5, 2017 phiên bản ổn định đầu tiên được ra mắt chính thức. Dù được ra mắt khá trễ nhưng Flutter đã và đang phát triển mạnh mẽ, dần trở thành một đối thủ nặng ký đối với những công cụ hỗ trợ lập trình đa nền tảng khác như React Native (Facebook), Xamarin (Microsoft)… Tính đến thời điểm hiện tại Flutter đang là một trong những công cụ hỗ trợ lập trình đa nền tảng được sử dụng nhiều nhất. Một số ứng dựng nổi tiếng được viết bằng Flutter: Hình 2.
Một số ứng dụng nổi tiếng được viết bằng Flutter 1. Thành phần của Flutter Flutter gồm có hai tầng chính là Engine và Framework: - Tầng engine chứa một thư viện đồ hoạ giúp render giao diện người dùng và máy ảo Dart – môi trường để thực thi mã nguồn và biên dịch mã lệnh Dart. Đây cũng chính là nơi thực hiện việc kết nối với hệ thống - Tầng framework được viết bằng mã lệnh Dart, cung cấp các lớp, chức năng và tiện ích (widget) được dùng để tạo ứng dụng Flutter. Lập trình viên sẽ sử dụng chủ yếu tầng này để lập trình.
Kiến trúc của Flutter 1. Một số đặc điểm nổi bật - Fast Development: Tíng năng Hot Reload hoạt động trong milliseconds để hiện thị giao diện tới bạn. Sử dụng tập hợp các widget có thể customizable để xây dựng giao diện trong vài phút. Ngoài ra Hot Reload còn giúp bạn thêm các tính năng, fix bug tiết kiệm thời gian hơn mà không cần phải thông qua máy ảo, máy android hoặc iOS.
- Expressive and Flexible UI: Có rất nhiều các thành phần để xây dựng giao diện của Flutter vô cùng đẹp mắt theo phong cách Material Design và Cupertino, hỗ trợ nhiều các APIs chuyển động, smooth scrolling. - Native Performance: Các widget của fluter kết hợp các sự khác biệt của các nền tảng ví dụ như scrolling, navigation, icons, font để cung cấp một hiệu năng tốt nhất tới iOS và Android. Ưu và nhược điểm của Flutter: 1. Ưu điểm: - Flutter là một bộ open-source SDK, tức là nó hoàn toàn miễn phí và “mở” chính vì thế mà cộng đồng lập trình viên có thể cùng tham gia phát triển và hoàn thiện nó - Flutter cung cấp đầy đủ và đa dạng các tiện ích (widget) hỗ trợ nên lập trình viên ít khi cần sự hỗ trợ từ thư viện của bên thứ ba cung cấp - Hỗ trợ hot reload: Tính năng này cho phép thay đổi xuất hiện trực tiếp trên ứng dụng mà không cần phải rebuild lại toàn bộ ứng dụng từ đó làm giảm thời gian của lập trình viên và khiến việc xây dựng ứng dụng trở nên dễ dàng hơn 1.
Nhược điểm: - Còn nhiều hạn chế khi phát triển các ứng dụng có các chức năng cần can thiệp sâu vào phần cứng của thiết bị - Kích thước ứng dụng khá lớn do Flutter hỗ trợ đa nền tảng nên hiển nhiên số lượng file và mã nguồn cũng sẽ bị đội lên khá nhiều, tuy nhiên điều này đã được Google cam kết sẽ cải thiện hơn trong tương lai - Công nghệ còn mới và vẫn chưa có quá nhiều thư viện hỗ trợ, tuy nhiên thì cộng đồng lập trình viên sử dụng Flutter đang ngày càng nhiều, chính vì thế mà trong tương lai chắc chắn sẽ có thêm nhiều thư viện hỗ trợ tốt cho Flutter 2. Ngôn ngữ lập trình Dart 2. Tổng quan - Flutter sử dụng ngôn ngữ lập trình Dart. Ra đời từ năm 2011 và được phát triển bởi Google, Dart được sử dụng để xây dựng các ứng dụng web, server, máy tính để bàn và thiết bị di động.
- Dart là ngôn ngữ lập trình đa mục đích ban đầu được phát triển bởi Google và sau đó được Ecma (ECMA-408) phê chuẩn làm tiêu chuẩn. - Dart là một ngôn ngữ hướng đối tượng, được xác định theo lớp, với cơ chế garbage-collected, sử dụng cú pháp kiểu C để dịch mã tùy ý sang JavaScript. Nó hỗ trợ interface, mixin, abstract, generic, static typing và type safe. Tại sao Flutter chọn Dart? - Năng suất: Cú pháp Dart rõ ràng và súc tích, công cụ của nó đơn giản nhưng mạnh mẽ.
Type-safe giúp bạn xác định sớm các lỗi tinh tế. Dart có các thư viện cốt lõi và một hệ sinh thái gồm hàng ngàn package - Nhanh: Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn để có được dự đoán hiệu suất cao và khởi động nhanh trên các thiết bị di động và web - Tính di động: Dart biên dịch thành mã ARM và x86, để các ứng dụng di động của Dart có thể chạy tự nhiên trên iOS, Android và hơn thế nữa. Đối với các ứng dụng web, chuyển mã từ Dart sang JavaScript - Dễ học và sử dụng: Dart quen thuộc với nhiều nhà phát triển hiện có, nhờ vào cú pháp và định hướng đối tượng không gây ngạc nhiên của nó. Nếu bạn đã biết C++, C # hoặc Java, bạn có thể làm việc hiệu quả với Dart chỉ sau vài ngày.
Hệ quản trị cơ sở dữ liệu Firebase 3. Firebase là gì? Firebase là một nền tảng mà Google cung cấp để phát triển các ứng dụng di động và trang web, hỗ trợ Developer trong việc đơn giản hóa các thao tác với dữ liệu và không cần tác động tới backend hay server 3.