Đồ án tốt nghiệp: Xây dựng ứng dụng quản lý phòng trọ bằng Flutter Framework

Phân tích toàn diện Đồ án App quản lý phòng trọ bằng Flutter & Firebase với phương pháp khoa học, ứng dụng thực tiễn hiệu quả ứng dụng trong giảng dạy

Chuyên ngành

Công Nghệ Phần Mềm

Người đăng

Ẩn danh

Thể loại

Khoá Luận Tốt Nghiệp

2016 - 2020

98
0
0

Phí lưu trữ

35 Point

Tóm tắt

I. Giới thiệu về Đồ án App Quản lý Phòng Trọ bằng Flutter Firebase

Đồ án app quản lý phòng trọ là một giải pháp công nghệ hiện đại nhằm tối ưu hóa quá trình quản lý các khu phòng trọ. Ứng dụng này được xây dựng bằng Flutter Framework – công nghệ phát triển ứng dụng di động đa nền tảng tiên tiến, kết hợp với Google Firebase để cung cấp các dịch vụ backend mạnh mẽ. Đây là giải pháp toàn diện giúp chủ trọ và người thuê phòng quản lý thông tin phòng, thanh toán tiền phòng, và xử lý các vấn đề liên quan một cách hiệu quả. Với sự phát triển của công nghệ mobile, nhu cầu về ứng dụng quản lý chuyên biệt cho lĩnh vực này ngày càng tăng cao.

1.1. Tại sao chọn Flutter Framework

Flutter là lựa chọn tối ưu vì khả năng phát triển cross-platform cho cả Android và iOS từ một mã nguồn duy nhất. Framework này mang lại hiệu năng cao, giao diện đẹp mắt và trải nghiệm người dùng mượt mà. Chi phí phát triển và bảo trì thấp hơn so với các công nghệ khác, đồng thời thời gian triển khai nhanh chóng.

1.2. Lợi ích của Firebase trong ứng dụng

Google Firebase cung cấp các dịch vụ backend đáng tin cậy như Authentication, Cloud Firestore, Cloud StorageCloud Messaging. Hệ thống này tự động mở rộng, bảo mật cao, giảm thiểu công việc quản lý server backend và cho phép đội phát triển tập trung vào tính năng ứng dụng.

II. Các Tính năng Chính của Ứng dụng Quản lý Phòng Trọ

Ứng dụng quản lý phòng trọ bằng Flutter & Firebase được thiết kế với nhiều tính năng toàn diện để đáp ứng nhu cầu thực tế. Nó cung cấp quản lý thông tin phòng trọ, hợp đồng thuê nhà, thanh toán, thông báo tự độngbáo cáo thống kê. Giao diện ứng dụng được tối ưu hóa cho mobile, hỗ trợ đăng nhập an toàn qua Firebase Authentication, quản lý dữ liệu linh hoạt với Cloud Firestore và hệ thống thông báo push real-time. Các chủ trọ có thể theo dõi doanh thu, chi phí, trong khi người thuê có thể thanh toán tiền phòng trực tuyếnnhận thông báo về các sự cố.

2.1. Chức năng quản lý thông tin phòng và hợp đồng

Ứng dụng cho phép lưu trữ thông tin chi tiết về từng phòng trọ, bao gồm giá thuê, diện tích, tiện nghitrạng thái chiếm dụng. Quản lý hợp đồng thuê nhà được số hóa hoàn toàn, với khả năng theo dõi ngày bắt đầu, ngày kết thúcthông báo gia hạn tự động.

2.2. Hệ thống thanh toán và thông báo tự động

Firebase Cloud FunctionsCloud Messaging tích hợp gửi thông báo nhắc thanh toán tự động đến người thuê. Ứng dụng hỗ trợ lịch sử thanh toán chi tiết, quản lý nợ phòngbáo cáo doanh thu theo tháng, giúp tiết kiệm thời gian và giảm tranh chấp.

III. Kiến trúc Hệ thống và Công nghệ Sử dụng

Kiến trúc ứng dụng được thiết kế theo mô hình client-server hiện đại, với Flutter làm tầng giao diện người dùng và Firebase làm nền tảng backend. Cloud Firestore được sử dụng để lưu trữ dữ liệu NoSQL linh hoạt và đồng bộ real-time giữa các thiết bị. Cloud Storage quản lý hình ảnh phòng trọ, tài liệu hợp đồng, trong khi Cloud Functions xử lý logic business phức tạp trên server. Firebase Crashlytics theo dõi lỗi ứng dụng, Performance Monitoring giám sát tốc độ hoạt động, và Analytics ghi lại hành động người dùng để tối ưu hóa trải nghiệm.

3.1. Tầng giao diện với Flutter

Flutter widgets được xây dựng theo thiết kế Material Design để tạo giao diện đơn giản, trực quanthân thiện với người dùng. Ứng dụng hỗ trợ điều hướng mượt mà, tương tác gesturequản lý trạng thái toàn cục giúp cải thiện hiệu năng và trải nghiệm người dùng.

3.2. Backend với Firebase Services

Firebase Authentication cung cấp đăng nhập an toàn qua Google Account. Cloud Firestorecơ sở dữ liệu NoSQL thời gian thực, Cloud Storage lưu media, Cloud Functions xử lý logic phức tạp, và Remote Config cho cấu hình giao diện động mà không cần cập nhật ứng dụng.

IV. Lợi ích Hạn chế và Triển vọng Phát triển

Ứng dụng quản lý phòng trọ bằng Flutter & Firebase mang lại nhiều lợi ích vượt trội so với phương pháp quản lý truyền thống. Ứng dụng có hiệu năng cao, chi phí thấp, triển khai nhanhhỗ trợ đa nền tảng. Tuy nhiên, vẫn tồn tại một số hạn chế như phụ thuộc vào bên thứ ba (Google), hạn chế tuỳ biến độc lậpcần ước tính chi phí Firebase khi ứng dụng phát triển lớn. Tương lai, ứng dụng có thể mở rộng với AI để dự báo nhu cầu phòng, tích hợp thanh toán đa dạng, quản lý công nợ nâng caophân tích dữ liệu chi tiết giúp chủ trọ ra quyết định kinh doanh tốt hơn.

4.1. Những ưu điểm nổi bật

Giảm chi phí vận hành, tăng hiệu quả quản lý, giao diện thân thiện, dễ sử dụng, bảo mật cao với Firebase, hỗ trợ đa nền tảng (Android, iOS, Web), triển khai nhanh, cập nhật tính năng linh hoạtkhả năng mở rộng tự động khi ứng dụng phát triển.

4.2. Hạn chế và hướng phát triển tương lai

Phụ thuộc vào kết nối internet, tuỳ chỉnh hệ thống hạn chế, chi phí Firebase tăng khi quy mô lớn. Hướng phát triển: thêm AI/Machine Learning, thanh toán nhiều phương thức, quản lý bảo trì tài sản, báo cáo thống kê nâng caotích hợp IoT cho quản lý thông minh.

28/12/2025

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN VỀ FLUTTER FRAMEWORK 1. GIỚI THIỆU FLUTTER FRAMEWORK 1. Khái niệm Flutter là một bộ các công cụ phát triển đa nền tảng, giúp xây dựng các ứng dụng chạy trên Android, iOS, Web và cả Desktop. Với các đặc điểm: • Miễn phí • Mã nguồn mở • Được phát triển, bảo trì bởi Google và cả cộng đồng lập trình • Hiện đang được sử dụng rộng rãi bởi những nhà phát triển trên toàn thế giới • Giải quyết được bài toàn phát triển nhanh chóng (Fast Development) và hiệu suất cao (Native Performance) • Với duy nhất một bộ mã nguồn có thể triển khai trên hàng trăm loại Browser, iPhone, iPad, Android khác nhau.

Tại sao phải chọn Flutter? Phát triển ứng dụng nhanh chóng, hiệu quả. Trong môi trường phát triển, Flutter có tính năng Hot Reload giúp nhà phát triển có thể xem được các thay đổi giao diện, trạng thái ngay tức thì, giúp thêm tính năng nhanh và sửa lỗi dễ dàng hơn. Điều mà ở Android Native (Java/Kotlin) hay iOS Native (Objective-C/Swift) vẫn chưa làm được. Đội CRM của Google đã phát triển ứng dụng nội bộ của họ và kết quả cho thấy thời gian nhanh hơn gấp ba lần so với việc dùng bộ công cụ Android thuần.

Giao diện trực quan, tương thích với nền tảng. Ứng dụng di động được viết bởi Flutter có khả năng nhận thức được nền tảng (Platform awareness), điều này giúp ứng dụng khi chạy trên mỗi nền tảng khác nhau sẽ có giao diện tương thích (Adaptive) với nền tảng đó giúp trực quan và thân thiện với người dùng hơn. Dễ tiếp cận, làm quen với lập trình. Tài liệu của Flutter đầy đủ và chính xác giúp cho kể cả người mới tiếp cận lập trình cũng có thể nghiên cứu, phát triển ứng dụng cho riêng mình.

Xây dụng các mô-đun gắn trên các ứng dụng di động hiện có. Flutter cung cấp Flutter Module, một phương thức để xây dựng các chức năng có thể gắn vào mã nguồn của 3 ứng dụng thuần hiện có (Android, iOS) giúp cho việc sử dụng linh động và có thể dùng lại cho các ứng dụng khác. So sánh với các công cụ khác Hiện nay có nhiều bộ công cụ giúp phát triển ứng dụng đa nền tảng. Tuy nhiên cũng có nhiều vấn đề ở những bộ công cụ này.1 So sánh các công nghệ đa nền tảng Các công nghệ Ưu điểm Khuyết điểm Không phải là một ứng dụng thực sự.

Chạy trong một trang web trình duyệt. Không có sẵn trong ứng Progessive HTML/CSS, Viết nhanh, dễ dụng cửa hàng (Google Play, App Web Apps React, Angular, phát triển Store). Không thể truy cập vào các (PWA) Vue chức năng liên quan đến cảm biến (Sensor), la bàn, Bluetooth, NFC, … Rất dễ cho lập trình viên Web Ứng dụng chạy trên một WebView PhoneGap, vì nó chỉ dùng nên hiệu suất kém. Gần như không Hybrid Ionic HTML và thể chia sẽ mã nguồn với ứng dụng Javascript để mô Web (Web App) tả.

React Native, Tạo ra ứng dụng Giải pháp Native Script, thực (Native Compile- Mất nhiều thời gian để tìm hiểu cách Flutter, app) nên có thể to-native dùng Framework, bộ công cụ Xamarin đưa lên cửa hàng ứng dụng Cho thấy giải pháp Compile-to-native ưu việt hơn so với những cách còn lại.2 So sánh các Compile-to-native Framework đa nền tảng Xamarin NativeScript React Native Flutter Năm ra mắt 2011 2014 2015 2018 Phát triển bởi Microsoft Telerik Facebook Google XAML và/hoặc Ngôn ngữ sử dụng Giống XML Giống JSX Dart Xamarin.Forms Viết bằng ngôn ngữ C# JavaScript JavaScript Dart Trên đây là những Framework khác nhau để xây dụng một ứng dụng đa nền tảng, tất cả đều miễn phí. Đã và đang được sử dụng trên toàn thế giới để xây dựng ứng dụng, cũng như đã triển khai trong các công ty tập đoàn lớn. Nhưng chỉ có một lựa chọn có thể xây dựng Web app và ứng dụng có thể triển khai lên cửa hàng ứng dụng là Flutter. Flutter ra mắt muộn nhất trong các lựa chọn nên sẽ có cách tiếp cận tốt hơn so với các công nghệ đa nền tảng trước đó.

HỆ ĐIỀU HÀNH, CÔNG CỤ PHÁT TRIỂN ANDROID IOS 1. Giới thiệu hệ điều hành Android Hình 1.1 Logo hệ điều hành Android 5 Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế riêng cho các thiết bị di động có màn hình cảm ứng. Ban đầu, Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính từ Google và sau này được chính Google mua lại vào năm 2005. Android ra mắt vào năm 2007.

Android có mã nguồn mở và Google phát triển thành mã nguồn theo giấy phép Apache. Google Play là cửa hàng ứng dụng chính của Android. Android có một kernel dựa trên nhân của Linux phiên bản 2.6, kể từ phiên bản Android 4.0 Ice Cream Sandwich trờ về sau là phiên bản 3. Android sử dụng máy ảo Dalvik với một trình biên dịch tự động để chạy “mã dex” của Dalvik, thường được biên dịch sang Java bytecode.

Nền tảng phần cứng chính của Android là kiến trúc ARM. Người ta củng hỗ trợ x86 thông qua dự án Android x86.2 Kiến trúc hệ điều hành Android 6 Kiến trúc hệ điều hành Android bao gồm các tầng chính: • Tầng Applications: Là tầng chứa các ứng dụng Danh bạ, Gọi điện, Trình duyệt, Nghe nhạc,… các ứng dụng mặc định có sẵn trong máy. • Tầng Framework: Là tầng chứa các API để làm việc với hệ điều hành như lấy thông tin danh bạ, quản lý các Activity, quản lý địa điểm, quản lý các View. • Tầng Libraries: Chứa các thư viện, API gần như là cốt lõi của Android, bao gồm bộ quản lý bề mặt cảm ứng (Surface Manager), OpenGL (Phục vụ cho việc dựng đồ họa phức tạp),… • Tầng Android Runtime: Chứa các thư viện lõi của Android và máy ảo Dalvik Virtual Machine (Từ Android 4.0 trở lên chúng ta có thêm máy ảo Android Runtime - ART).

• Tầng Kernel: Là nhân lõi của hệ điều hành, chứa các tập lệnh, driver giao tiếp giữa phần cứng và phần mềm của Android. Công cụ phát triển phần mềm Android SDK Tháng 5 năm 2013, Google công bố Android Studio, một môi trường phát triển ứng dụng tích hợp (IDE) dành riêng cho Android, mã nguồn mở, dựa trên IDE Java IntelliJ của hãng JetBrains (đối thủ với Eclipse và Netbeans, vốn khá quen thuộc với dân lập trình Java). Android Studio chạy trên Windows, Mac và Linux, nhằm thay thế cho Eclipse Android Development Tool (ADT) vốn được sử dụng làm IDE chính trong các năm trước đó.3 Logo Android Studio 7 Bộ công cụ phát triển phần mềm Android (SDK) là một lựa chọn các công cụ cần thiết để phát triển Android. Các công cụ này bao gồm mã bổ sung sẽ đóng vai trò là cầu nối giữa Java/Kotlin và Android để có thể truy cập các tính năng Android Native.

Phiên bản Android mới nhất hiện tại là Android 11 với bộ SDK API Level 30. Giới thiệu hệ điều hành iOS Hệ điều hành iOS (trước đây là iPhone OS) là hệ điều hành trên các thiết bị di động của Apple. Đây là hệ điều hành chạy trên các sản phẩm iPhone, iPad, và iPod Touch và là hệ điều hành phổ biến thứ 2 trên toàn cầu, sau Android của Google. Ban đầu hệ điều hành này chỉ được phát triển để chạy trên iPhone (gọi là iPhone OS), nhưng sau đó được mở rộng để chạy trên các thiết bị khác của Apple như iPod Touch (tháng 9 năm 2007) và máy tính bảng iPad (tháng 1 năm 2010).

Tính đến tháng 7 năm 2020, App Store trên iOS chứa khoảng 1.8 triệu ứng dụng, 1 triệu trong số đó là ứng dụng chỉ dành cho iPad và được tải về tổng cộng khoảng 130 tỷ lần. Giao diện người dùng của iOS thân thiện với thao tác cảm ứng đa điểm bằng tay, cũng như hỗ trợ bút stylus Apple Pencil (chỉ dành cho iPad Pro). Phiên bản mới nhất là iOS 13 và iPadOS 13 được ra mắt chính thức vào tháng 9 năm 2019 cùng với bộ ba iPhone 11, iPhone 11 Pro và iPhone 11 Pro Max.4 Hệ điều hành iOS 13, iPadOS 13 8 Hình 1.5 Kiến thúc hệ điều hành iOS Kiến trúc của hệ điều hành iOS bao gồm các lớp chính: • Lớp Media: Cung cấp cho hệ điều hành iOS các dịch vụ đa phương tiện như âm thanh, video, hình ảnh, đồ hoạ. • Lớp Core Services: Cung cấp một số dịch vụ cơ bản cho hệ điều hành và các lớp khác.

• Lớp Core OS: Cung cấp một số dịch vụ hệ thống như Memory Manager, Networking, File System,… • Lớp Cocoa Touch: Cung cấp các Framework chung cho các lập trình viên phát triển ứng dụng, bao gồm: o UIKit Framework o Map Kit Framework o Push Notification Service o Message UI Framework 9 o Address Book UI Framework o Game Kit Framework 1. Công cụ phát triển phần mềm iOS Kit Ngoài hệ điều hành iOS, Apple còn cung cấp một bộ SDK bao gồm một tập các công cụ phát triển (Kit) để nhà phát triển có thể sử dụng cho việc triển khai các ứng dụng trên hệ điều hành iOS nói riêng và hệ sinh thái Apple nói chung. Xcode là một IDE chính thức của Apple dùng để tích hợp các công cụ phát triển phần mềm do Apple phát triển. Xuất hiện lần đầu tiên năm 2003, phiên bản mới nhất hiện nay của Xcode là bản Xcode 11.5 và có thể tải về miễn phí dùng ở Mac App Store cho người dùng macOS Catalina.

Trình biên dịch của Xcode gọi là Apple LLVM Compiler. Trình biên dịch này hỗ trợ các ngôn ngữ lập trình như C, C++, Objective-C, Objective- C++, Java, AppleScript, Python và Ruby,… Hình 1. NGÔN NGỮ LẬP TRÌNH DART 1. Giới thiệu Dart là một ngôn ngữ biên dịch, kiểu tĩnh (Statically typed) theo hướng lập trình hướng đối tượng (Object-oriented) nhưng cũng pha trộn hướng thủ tục (Procedural- oriented).

Nó có cấu trúc chủ đạo rất giống với các ngôn ngữ OOP khác, làm cho nó cực kỳ dễ dàng dễ tiếp thu cho những người đã có kinh nghiệm với Java, C#, C++ hoặc ngôn ngữ hướng đối tượng khác. 10 Ban đầu, Dart là một ngôn ngữ lập trình Web do Google phát triển. Nó được chính thức công bố tại Hội thảo GOTO ngày 12-10-2011 tại Aarhus. Mục đích của Dart không phải để thay thế JavaScript như là ngôn ngữ kịch bản chính bên trong trình duyệt Web, mà là cung cấp sự lựa chọn hiện đại hơn.

Và Flutter cũng đã chọn Dart để xây dựng ứng dụng đa nền tảng.7 Flutter sử dụng Dart làm ngôn ngữ phát triển 1. Cú pháp căn bản Cú pháp của Dart khá giống với ngôn ngữ Java, C#. o Kiểu dữ liệu: o Kiểu số nguyên int: o Kiểu số thực, chấm động double: o Kiểu logic bool: o Kiểu động dynamic: o Kiểu chuỗi String: 11 o Mảng/Danh sách: o Câu điều kiện: o Vòng lặp: 1. Lập trình hướng đối tượng với Dart Lập trình hướng đối tượng với Dart cũng tương tự với các ngôn ngữ khác.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ