Tải bản đầy đủ (.docx) (69 trang)

Xây dựng phầ n mề m hỗ trợ chăm sóc cây trồng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.39 MB, 69 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ 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
ĐỀ TÀI: XÂY DỰNG PHẦN MỀM HỖ TRỢ

CHĂM SÓC CÂY TRỒNG
Giảng viên hướng dẫn:
ThS. Trần Anh Dũng
Danh sách sinh viên:
Lý Hồng Phong

MSSV: 20520364

Huỳnh Thiện Tâm MSSV: 20521867

TP. Hồ Chí Minh, tháng 6 năm 2023


LỜI CẢM ƠN
Nhóm chúng em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đến thầy Trần
Anh Dũng đã hướng dẫn, tạo điều kiện cho nhóm chúng em hồn thành Đồ án 1. Trong
vịng 16 tuần, qua các buổi tương tác, báo cáo tiến độ, nhờ sự chỉ dẫn nhiệt tình của
thầy, chúng em đã tiếp thu được những kiến thức quan trọng, bổ ích cùng những góp ý
chân thành để có thể làm được một đồ án hoàn chỉnh. Trong khoảng thời gian thực hiện
đồ án, chúng em đã học hỏi thêm được nhiều kiến thức, kinh nghiệm, tiếp cận công
nghệ mới và áp dụng vào thực tiễn đồ án. Mặc dù đã cố gắng hoàn thành báo cáo với
tất cả nỗ lực song báo cáo của nhóm chúng em chắc chắn khơng tránh khỏi những thiếu
sót, chúng em rất mong nhận được sự thơng cảm và góp ý chân thành từ thầy. Nhóm
em xin chân thành cảm ơn.


Thành phố Hồ Chí Minh, tháng 07 năm 2023
Lý Hồng Phong
Huỳnh Thiện Tâm

MỤC LỤ


CHƯƠNG 1. ĐỀ CƯƠNG CHI TIẾT........................................................................2
CHƯƠNG 2. MỞ ĐẦU................................................................................................6
2.1.

Lý do chọn đề tài:............................................................................................6

2.2.

Mục đích nghiên cứu:.....................................................................................6

2.2.1.

Khách quan:..............................................................................................6

2.2.2.

Chủ quan...................................................................................................7

2.3.

Mục tiêu đề tài:................................................................................................7

2.3.1.


Mục tiêu tổng quát:..................................................................................7

2.3.2.

Mục tiêu cụ thể:........................................................................................8

2.4.

Đối tượng nghiên cứu:....................................................................................8

2.4.1.

Các công nghệ nghiên cứu:......................................................................8

2.4.2.

Đối tượng sử dụng đề tài hướng đến:......................................................8

2.5.

Phạm vi nghiên cứu:.......................................................................................9

2.5.1.

Phạm vi môi trường:................................................................................9

2.5.2.

Phạm vi chức năng:..................................................................................9


CHƯƠNG 3. KIẾN THỨC NỀN TẢNG....................................................................9
3.1.

Dart:.................................................................................................................9

3.2.

Flutter:...........................................................................................................10

3.3.

FireBase:........................................................................................................11

3.4.

Figma:............................................................................................................12

CHƯƠNG 4. THIẾT KẾ HỆ THỐNG.....................................................................14


4.1.

Kiến trúc hệ thống: Kiến trúc Bloc:.............................................................14

4.2.

Chi tiết các thành phần trong hệ thống:......................................................14

4.3.


Thiết kế sơ đồ lớp:.........................................................................................15

CHƯƠNG 5. ĐẶC TẢ USE-CASE VÀ CÁC SƠ ĐỒ LIÊN QUAN......................17
5.1.

Sơ đồ Use-case:..............................................................................................17

5.2.

Danh sách các tác nhân:...............................................................................17

5.3.

Đặc tả Use-case:.............................................................................................18

5.3.1.

Đăng nhập:..............................................................................................18

5.3.2.

Đăng kí:...................................................................................................19

5.3.3.

Quên mật khẩu:......................................................................................20

5.3.4.


Thêm cây trồng:......................................................................................21

5.3.5.

Thêm cơng việc:......................................................................................23

5.4.

Sơ đồ trình tự:...............................................................................................25

5.4.1.

Đăng nhập:..............................................................................................25

5.4.2.

Thêm cây trồng:......................................................................................26

5.4.3.

Sửa cây trồng:.........................................................................................27

5.4.4.

Thêm công việc:......................................................................................28

5.5.

Sơ đồ hoạt động:............................................................................................28


5.5.1.

Đăng nhập:..............................................................................................29

5.5.2.

Quản lý cây trồng:..................................................................................30

5.5.3.

Quản lý công việc:..................................................................................31

5.5.4.

Quản lý cài đặt:.......................................................................................32


5.6.

Sơ đồ trạng thái:............................................................................................32

5.6.1.

Đăng nhập:..............................................................................................33

5.6.2.

Thêm cây trồng:......................................................................................33

5.6.3.


Sửa cây trồng:.........................................................................................34

5.6.4.

Thêm công việc:......................................................................................34

CHƯƠNG 6. THIẾT KẾ CƠ SỞ DỮ LIỆU............................................................35
6.1.

Thiết kế cơ sở dữ liệu thực tế trên Firebase................................................35

6.2.

Danh sách các quan hệ:................................................................................37

CHƯƠNG 7. THIẾT KẾ GIAO DIỆN NGƯỜI DÙNG..........................................38
7.1.

Danh sách các màn hình:..............................................................................38

7.2.

Sơ đồ liên kết các màn hình:.........................................................................38

7.3.

Mơ tả chi tiết các màn hình:.........................................................................39

7.3.1.


Navigation Bar:.......................................................................................39

7.3.2.

Màn hình Trang chủ:.............................................................................39

7.3.3.

Màn hình chi tiết cây trồng:..................................................................41

7.3.4.

Màn hình Thêm cơng việc:.....................................................................43

7.3.5.

Màn hình Thêm cây trồng:....................................................................47

7.3.6.

Màn hình Lịch:.......................................................................................49

7.3.7.

Màn hình Thơng tin cá nhân:................................................................51

7.3.8.

Màn hình Tài khoản:..............................................................................53


7.3.9.

Màn hình Đăng ký:.................................................................................55

7.3.10.

Màn hình Đăng nhập:.........................................................................57


CHƯƠNG 8. CÀI ĐẶT VÀ KIỂM THỬ.................................................................60
8.1.

Môi trường cài đặt và kiểm thử:..................................................................60

8.2.

Kết quả kiểm thử:.........................................................................................60

CHƯƠNG 9. KẾT LUẬN..........................................................................................62
9.1.

Kết quả đạt được:..........................................................................................62

9.2.

Hạn chế:.........................................................................................................62

9.2.1.


Về việc tổ chức quản lí nhóm:................................................................62

9.2.2.

Về sản phẩm phần mềm:........................................................................63

9.3.

Hướng phát triển:.........................................................................................63

TÀI LIỆU THAM KHẢO..........................................................................................64


TÓM TẮT ĐỒ ÁN
Trong bối cảnh ngày càng tăng những nhu cầu về chăm sóc cây trồng và sự gia tăng
của ngành nông nghiệp, việc xây dựng một ứng dụng hỗ trợ chăm sóc cây trồng trên
nền tảng di động là một sự lựa chọn hợp lý. Theo thống kê, ngày càng có nhiều người
quan tâm và tham gia vào việc trồng cây tại nhà hoặc trang trại cá nhân. Điều này đã
tạo nên nhu cầu cao về ứng dụng điện thoại thông minh giúp người dùng theo dõi và
chăm sóc cây trồng một cách hiệu quả.
Ứng dụng mà chúng tôi đề xuất sẽ cung cấp thông tin chi tiết về các loại cây trồng
phổ biến, từ cách chăm sóc, sự phát triển của cây đến cách xử lý các vấn đề thường gặp
như sâu bệnh, thiếu nước, thiếu chất dinh dưỡng. Đồng thời, ứng dụng cũng sẽ cung
cấp gợi ý về các sản phẩm hữu ích cho việc chăm sóc cây trồng, bao gồm phân bón,
thuốc trừ sâu và các cơng cụ hữu ích khác.
Ngồi ra, ứng dụng cũng sẽ giúp người dùng quản lý các thông tin liên quan đến
chăm sóc cây trồng, bao gồm lịch trình chăm sóc, thơng báo nhắc nhở, ghi chú về các
vấn đề gặp phải và cập nhật về sự phát triển của cây.
Qua quá trình nghiên cứu, thiết kế và triển khai ứng dụng, chúng tôi tự hào được
mang đến những cải tiến và những thành quả tích cực cho việc chăm sóc cây trồng

cơng nghệ. Ứng dụng của chúng tơi khơng chỉ hỗ trợ người dùng trong việc nuôi
dưỡng và phát triển cây trồng một cách hiệu quả mà còn giúp giảm thiểu những rủi ro
và sai sót thường gặp trong q trình chăm sóc.

1


CHƯƠNG 1.

ĐỀ CƯƠNG CHI TIẾT

TÊN ĐỀ TÀI: Ứng dụng hỗ trợ chăm sóc cây trồng
Cán bộ hướng dẫn: ThS. Trần Anh Dũng
Thời gian thực hiện: Từ ngày: 27/02/2023 đến ngày: 17/06/2023
Sinh viên thực hiện:
Huỳnh Thiện Tâm – 20521867
Lý Hồng Phong – 20520364
Nội dung đề tài:
Lý do chọn đề tài

Hiện nay thiết bị di dộng – smart phone ngày càng phổ biến. Việc đưa
một ứng dụng lên các kho lưu trữ tương đối dễ dàng. Hơn nữa, người sử dụng
cũng sẵn sàng chi trả một khoảng tiền phù hợp cho những ứng dụng mà họ cảm
thấy cần thiết hơn so với trước đây.
Ở những quốc gia đang phát triển, nông nghiệp gần như chỉ phụ thuộc
vào kinh nghiệm của những người nơng dân về đặc tính của cây trồng, về thời
tiết… thế nên năng suất và hiệu suất canh tác có xu hướng mang tính “may,
rủi”. Nhưng đa số những người trồng cây lại thiếu kiến thức và phương pháp
chăm sóc cây phù hợp và hiệu quả như quy trình và kế hoạch cần thiết cho
từng loại cây ví dụ như làm cỏ, tạo bồn, cắt tỉa cành, bón phân, tưới nước cho

cây theo định kỳ...
Cùng với việc khắc phục những khuyết điểm trên, một ứng dụng hướng
dẫn chăm sóc cây trồng bằng những cơng nghệ và quy trình cụ thể, sẽ đánh tan
những lo ngại về chất lượng cũng như an tồn thực phẩm, và góp phần thúc
đẩy nâng cao chất lượng sản phẩm nông nghiệp hay cây trồng.
Xuất phát từ những nhận định đó, chúng em đã chọn đề tài “Phần mềm
hỗ trợ chăm sóc cây trồng trên di động” nhằm hỗ trợ người dùng giải quyết các
vấn đề trên.

2


Mục tiêu đề tài
 Xây dựng hệ thống quản lý các cơng việc trong q trình trồng cây:
 Lên danh sách và cập nhật các công việc cần làm cho từng cây trồng.
 Chức năng nhắc nhở người dùng thực hiện các cơng việc. Từ đó người dùng
có thể quản lý công việc một cách đầy đủ và hiệu quả.
 Xây dựng hệ thống cung cấp thông tin về các loại cây trồng, bệnh hại:
 Cung cấp cho người dùng thông tin về các loại cây trồng, bệnh hại thông qua
cơ sở dữ liệu sẵn có
 Xây dựng trị chơi trắc nghiệm về kiến thức cây trồng.
Phạm vi đề tài
 Đề tài tập trung xây dựng ứng dụng hỗ trợ người dùng chăm sóc cây trồng
dành cho các user.
 Phạm vi môi trường:


Triển khai sản phẩm đề tài trên môi trường ứng dụng di động(android, ios).

 Phạm vi chức năng:

 Chức năng quản lý q trình chăm sóc cây trồng.
 Chức năng trò chơi trắc nghiệm về kiến thức cây trồng
Đối tượng sử dụng
 Những cá nhân khơng có nhiều kinh nghiệm cũng như kiến thức về quản lý và
chăm sóc cây trồng.
 Những cá nhân cần sự hỗ trợ từ một công cụ giúp dễ dàng quản lý và thực
hiện công việc theo đúng kế hoạch.
Phương pháp thực hiện
 Phân tích các giải pháp của các ứng dụng tương tự trên thị trường.
 Thực hiện khảo sát nhu cầu, tình trạng thực tế của người dùng.
Cơng nghệ sử dụng

3


 Cơ sở dữ liệu đám mây: Firebase
 Framework: Flutter
 Ngôn ngữ sử dụng: Dart
 Công cụ xây dựng ứng dụng: Android Studio, Visual Studio Code
Kết quả mong đợi
 Nắm bắt và áp dụng được công nghệ mới để xây dựng hoàn thiện sản phẩm
của đề tài.
 Học hỏi cách phát triển một ứng dụng trên di động qua quá trình làm đề tài.
 Trau dồi kinh nghiệm làm việc nhóm.
Triển khai được một sản phẩm hồn thiện, có ích cho người dùng.
Hướng phát triển của đề tài
 Thêm các chức năng hỗ trợ người dùng như chatbox hỗ trợ tư vấn, chức năng
hỏi đáp cộng đồng hay thêm các trò chơi.
 Nâng cấp giao diện, thêm bộ chuyển đổi ngôn ngữ sang tiếng Anh.
 Nâng cấp source code, tăng tốc độ xử lý của ứng dụng nhanh chóng, ổn định.

 Cho ra mắt phiên bản web.
Kế hoạch thực hiện:
Thời gian thực hiện từ ngày 27/02/2023 đến 17/6/2023
Nhóm chia thành 2 giai đoạn cụ thể:
Giai đoạn 1: Gồm 4 sprint với thời gian từ 27/02/2023 đến 30/04/2023
Sprint 1: Tìm hiểu và định hình yêu cầu cho ứng dụng
Sprint 2: Đặc tả ứng dụng
Sprint 3: Thiết kế ứng dụng
Sprint 4: Xây dựng các chức năng cơ bản cho ứng dụng
Tuần
Sprint 1:
27/2 - 27/3

Công việc thành viên 1
(Huỳnh Thiện Tâm)

Công việc thành viên 2
(Lý Hồng Phong)

Tìm hiểu về flutter và setup project và firebase
ngơn ngữ dart
- Tìm hiểu đề tài: Xác
định phạm vi, hướng phát
triển của đề tài.
Tìm hiểu các nguyên tắc

4


thiết kế UI/UX, học cách

sử dụng công cụ thiết kế.
Sprint 2:
27/3 - 4/4

Xác định yêu cầu: Khảo sát yêu cầu người dùng, lập ra
bảng các yêu cầu và quy định cụ thể cho phần mềm.
- Phân tích: Phân loại các yêu cầu và lập sơ đồ Usecase

Sprint 3:
4//4 - 11/4

- Thiết kế: Mô tả các thành phần của phần mềm một
cách rõ ràng, gồm các bước:
- Thiết kế hệ thống, kiến trúc, các đối tượng.
Thiết kế cơ sở dữ liệu.
Thiết kế giao diện.

Sprint 4:
11/4 - 25/4

Xây dựng các chức năng cơ bản của ứng dụng:
 chức năng đăng nhập, đăng ký
 Thêm xóa Sửa loại loại cây trồng cần quản lý
 chức năng quản lý công công việc
 trang cài đặtđặt

Giai đoạn 2: Gồm 5 sprint với thời gian từ 01/05/2023 đến kết thúc đồ án 1.
Sprint 5: Hoàn thiện tính năng sản phẩm quản lý cây trồng
Sprint 6: Hồn thiện tính năng, kiểm thử và triển khai ứng dụng
Sprint 7: đóng gói và cài đặt sản phẩmphẩm

Sprint 8: Tổng kiểm thử và viết báo cáo

Sprint 5
25/4 - 15/5

Tiếp tục hồn thiện các tính năng của ứng dụng
Quản lý cây trồngtrồng

Sprint 6
15/55 - 30/5

Kiểm thử: Chạy thực nghiệm và đánh giá, tìm và sửa
lỗi.

Sprint 7
30/5 - 10-6

Cài đặt: Dựa theo những thiết kế và phân tích, tiến
hành xây dựng ứng dụng thực tế.

Sprint 8
10/6 - 17-6
kết thúc

Viết báo cáo

5


TP. HCM, ngày 23 tháng 02 năm 2023

Sinh viên 1
Sinh viên 2

Xác nhận của CBHD
(Ký tên và ghi rõ họ tên)

(Ký tên và ghi rõ họ tên)

(Ký tên và ghi rõ họ tên)

Huỳnh Thiện Tâm

Lý Hồng Phong

NỘI DUNG KHOÁ LUẬN

CHƯƠNG 2.
2.1.

MỞ ĐẦU

Lý do chọn đề tài:

Hiện nay thiết bị di dộng – smart phone ngày càng phổ biến. Việc đưa một
ứng dụng lên các kho lưu trữ tương đối dễ dàng. Hơn nữa, người sử dụng cũng
sẵn sàng chi trả một khoảng tiền phù hợp cho những ứng dụng mà họ cảm thấy
cần thiết hơn so với trước đây.
Ở những quốc gia đang phát triển, nông nghiệp gần như chỉ phụ thuộc vào
kinh nghiệm của những người nông dân về đặc tính của cây trồng, về thời tiết…
thế nên năng suất và hiệu suất canh tác có xu hướng mang tính “may, rủi”.

Nhưng đa số những người trồng cây lại thiếu kiến thức và phương pháp chăm
sóc cây phù hợp và hiệu quả như quy trình và kế hoạch cần thiết cho từng loại
cây ví dụ như làm cỏ, tạo bồn, cắt tỉa cành, bón phân, tưới nước cho cây theo
định kỳ...
Cùng với việc khắc phục những khuyết điểm trên, một ứng dụng hướng
dẫn chăm sóc cây trồng bằng những cơng nghệ và quy trình cụ thể, sẽ đánh tan
những lo ngại về chất lượng cũng như an toàn thực phẩm, và góp phần thúc đẩy
nâng cao chất lượng sản phẩm nông nghiệp hay cây trồng.
Xuất phát từ những nhận định đó, chúng em đã chọn đề tài “Phần mềm hỗ
trợ chăm sóc cây trồng trên di động” nhằm hỗ trợ người dùng giải quyết các vấn
đề trên.

6


2.2.

Mục đích nghiên cứu:

2.2.1. Khách quan:
Tạo một cộng đồng chăm sóc cây trồng: Ứng dụng sẽ kết nối người dùng với
nhau, cho phép họ trao đổi kinh nghiệm và chia sẻ thơng tin về chăm sóc cây trồng.
Mục tiêu là tạo ra một cộng đồng hỗ trợ và khuyến khích sự chia sẻ kiến thức về chăm
sóc cây trồng.
Quản lý thơng tin và lịch trình chăm sóc cây trồng: Ứng dụng sẽ cho phép người
dùng tạo lịch trình chăm sóc cây trồng, ghi chú về các vấn đề và sự phát triển của cây,
và nhận các thông báo nhắc nhở quan trọng. Mục tiêu là giúp người dùng quản lý hiệu
quả cơng việc chăm sóc cây trồng và đảm bảo rằng cây trồng được chăm sóc đúng cách
và đúng thời gian....


2.2.2. Chủ quan
Mang đến một cơng cụ hữu ích cho người dùng trong việc chăm sóc cây trồng.
Chúng tơi muốn cung cấp cho người dùng một ứng dụng dễ sử dụng và tiện ích, giúp
họ theo dõi, quản lý và cung cấp các thơng tin cần thiết để chăm sóc cây trồng một
cách hiệu quả.
Nghiên cứu này cũng giúp chúng tôi mở rộng kiến thức và hiểu biết về các công
nghệ liên quan đến ứng dụng di động và chăm sóc cây. Chúng tơi đã hứng thú và tìm
hiểu sâu về các công nghệ mới nhất và cách áp dụng chúng vào việc tạo ra một ứng
dụng hữu ích và tiện lợi cho người dùng.
Đồ án này cũng là cơ hội để chúng tôi áp dụng những kiến thức đã học vào thực
tế. Chúng tôi muốn xây dựng một sản phẩm thực tế và hữu ích từ những kiến thức và
kỹ năng đã tích lũy trong q trình học tập suốt thời gian qua.
2.3.

Mục tiêu đề tài:

2.3.1. Mục tiêu tổng quát:

7


Mục tiêu tổng quát của đề tài xây dựng ứng dụng hỗ trợ chăm sóc cây
trồng là tạo ra một cơng cụ hữu ích và tiện lợi để giúp người dùng chăm sóc các
loại cây trồng một cách hiệu quả và thành công. Đồ án nhằm đáp ứng nhu cầu
ngày càng tăng của người yêu thích và quan tâm đến việc trồng

2.3.2. Mục tiêu cụ thể:
-

Đối với công nghệ:

▫ Nghiên cứu và sử dụng cơ sở dữ liệu FireBase.
▫ Nghiên cứu sử dụng figma.com
▫ Nghiên cứu và xây dựng hệ thống bằng các công nghệ mới như Androi
Studio, Visual Studio Code.


Nghiên cứu và xây dựng hệ thống bằng ngôn ngữ mới: Flutter và ngôn
ngữ Dart.

-

Đối với hệ thống:
▫ Xây dựng ứng dụng đáp ứng các yêu cầu nghiệp vụ cơ bản.

2.4.

Đối tượng nghiên cứu:

2.4.1. Các công nghệ nghiên cứu:
-

Đối với thiết kế hệ thống:
▫ Kết nối và trao đổi giữa client, server đến database thông qua kiến trúc
bloc

-

Đối với Database: FireBase

-


Đối với Ứng dụng:
▫ Flutter
▫ Dart
▫ Figma

-

Khác

2.4.2. Đối tượng sử dụng đề tài hướng đến:

8


Với sự bùng nổ của Smartphone, nhóm đối tượng chủ yếu của ứng dụng là
các tổ chức/cá nhân có và biết sử dụng smart phone ở mọi độ tuổi, cụ thể:
- Những cá nhân khơng có nhiều kinh nghiệm cũng như kiến thức về cây
trồng muốn tìm hiểu và trang bị thêm cho mình kiến thức.
- Những cá nhân/tổ chức quan tâm về quy trình chăm sóc cây trồng,
- Những cá nhân/tổ chức chưa hài lịng về các cơng cụ hỗ trợ quản lý công
việc đang sử dụng.
2.5.

Phạm vi nghiên cứu:

2.5.1. Phạm vi môi trường:
-

Hệ điều hành phát triển: Microsoft Windows

Hệ điều hành cài đặt: Android
2.5.2. Phạm vi chức năng:

-

Đối với Ứng dụng
▫ Hệ thống cung cấp giao diện mua dành cho khách hàng tiện lợi, dễ sử
dụng.
▫ Hệ thống cung cấp giao diện đăng ký, đăng nhập giúp xác thực người
dùng.
▫ Hệ thống cung cấp tính năng quản lý cơng việc và quy trình cụ thể.

CHƯƠNG 3.
3.1.

KIẾN THỨC NỀN TẢNG

Dart:

Dart là một ngơn ngữ lập trình được phát triển bởi Google. Nó được sử dụng
để phát triển ứng dụng di động (như ứng dụng di động và web) cũng như ứng dụng
desktop và server. Dart được thiết kế để đơn giản, hiệu quả và có khả năng chạy
trên nhiều nền tảng khác nhau. Nó cũng được sử dụng làm ngơn ngữ chính cho việc

9


phát triển ứng dụng di động trên Flutter, một framework phát triển giao diện người
dùng đa nền tảng của Google.
Tại sao nên sử dụng Dart?

Hiệu suất cao và nhanh: Dart cung cấp hiệu suất rất cao và thời gian thực thi
nhanh. Với việc sử dụng công cụ Just-In-Time (JIT) để biên dịch và máy ảo (VM),
Dart cho phép bạn kiểm tra kết quả ngay lập tức trong quá trình phát triển. Điều này
giúp tiết kiệm thời gian và nâng cao hiệu suất phát triển.
Đa nền tảng: Dart hỗ trợ phát triển đa nền tảng, bạn có thể sử dụng Dart để phát
triển ứng dụng trên nhiều nền tảng khác nhau, bao gồm di động (iOS và Android), web,
desktop và server.
Hỗ trợ Flutter: Dart là ngơn ngữ chính cho việc phát triển ứng dụng di động
trên Flutter. Flutter là một framework phát triển giao diện người dùng đa nền tảng của
Google, cho phép bạn xây dựng ứng dụng di động đồng nhất trên nhiều nền tảng một
cách dễ dàng và hiệu quả.
Cú pháp thân thiện và dễ học: Dart sử dụng cú pháp gần giống với nhiều ngơn
ngữ lập trình phổ biến khác như Java hoặc JavaScript. Điều này làm cho nó dễ học và
nắm bắt, đặc biệt đối với những người đã có kinh nghiệm lập trình trước đó.
Ecosystem phát triển: Dart có một cộng đồng lớn và năng động, với nhiều thư
viện và công cụ hỗ trợ phát triển. Bạn có thể tìm thấy hàng ngàn gói được xây dựng sẵn
trên Dart Pub để giúp bạn nhanh chóng triển khai và mở rộng ứng dụng của mình.
3.2.

Flutter:

Flutter là một framework phát triển ứng dụng di động mã nguồn mở được phát
triển bởi Google. Nó cho phép bạn xây dựng các ứng dụng di động đẹp và tương tác
trên nhiều nền tảng như Android và iOS từ một mã nguồn duy nhất. Flutter sử dụng
ngơn ngữ lập trình Dart để xây dựng ứng dụng và cung cấp một tập hợp các tiện ích và
widgets để giúp tạo giao diện người dùng linh hoạt và phong phú. Nó cũng đi kèm với
một bộ công cụ phát triển mạnh mẽ, giúp bạn debug, kiểm thử và triển khai ứng dụng

10



một cách dễ dàng. Flutter đã trở thành một trong những lựa chọn phổ biến cho việc
phát triển ứng dụng di động hiện nay.
Ưu và nhược điểm của Flutter


Ưu điểm:
o Giao diện người dùng đẹp và tương tác: Flutter cung cấp một tập
hợp các widgets tùy chỉnh và mạnh mẽ giúp bạn tạo ra giao diện
người dùng đẹp mắt và tương tác trên nhiều nền tảng.
o Mã nguồn duy nhất cho nhiều nền tảng: Bằng cách sử dụng Flutter,
bạn chỉ cần viết một lần và triển khai trên nhiều nền tảng như
Android, iOS và cả web.
o Hiệu suất cao: Flutter sử dụng thư viện đồ họa riêng của nó giúp
tăng hiệu suất và tốc độ trong quá trình vẽ giao diện người dùng.
o Phát triển nhanh chóng: Flutter đi kèm với một bộ cơng cụ phát
triển có sẵn, giúp bạn kiểm tra, debug và triển khai ứng dụng một
cách nhanh chóng.
o Cộng đồng hỗ trợ: Flutter có một cộng đồng rất lớn và nhiều tài liệu
học tập, giúp bạn dễ dàng tìm kiếm hỗ trợ và tài nguyên phát triển.



Nhược điểm
o Kích thước ứng dụng: Do Flutter cần bao gồm một số thư viện và
Framework trong ứng dụng, kích thước tệp có thể lớn hơn so với
việc phát triển ứng dụng truyền thống.
o Hạn chế với một số tính năng: Flutter vẫn cịn hạn chế một số tính
năng so với các công nghệ phát triển truyền thống, đặc biệt là trong
việc truyền tải và xử lý dữ liệu lớn.

o Chưa phổ biến trong số các lập trình viên: Mặc dù Flutter đang trở
nên ngày càng phổ biến, nhưng nó vẫn chưa thu hút số lượng lập
trình viên như những cơng nghệ khác như native iOS hoặc Android.

11


Do đó, việc tìm kiếm tài ngun và hỗ trợ có thể hơi khó khăn so
với những cơng nghệ phổ biến hơn.
3.3.

FireBase:

Firebase là một nền tảng phát triển ứng dụng di động và web do Google cung
cấp. Nó cung cấp một loạt các dịch vụ và công cụ giúp phát triển, triển khai và quản lý
ứng dụng di động và web một cách dễ dàng và hiệu quả.
Các dịch vụ Firebase bao gồm:
Firebase Authentication: Xác thực người dùng và quản lý danh tính người
dùng thơng qua các phương thức xác thực như email/mật khẩu, Google, Facebook và
nhiều hơn nữa.
Cloud Firestore: Cơ sở dữ liệu doanh nghiệp linh hoạt và dễ sử dụng để lưu trữ
và đồng bộ dữ liệu thời gian thực trên các thiết bị khác nhau.
Firebase Cloud Messaging: Dịch vụ thông báo và tin nhắn đám mây để gửi
thông báo và tin nhắn đến ứng dụng di động và web.
Firebase Storage: Dịch vụ lưu trữ đám mây để lưu trữ và quản lý dữ liệu đa
phương tiện như hình ảnh, video và tệp tin khác.
Firebase Hosting: Dịch vụ hosting nhanh chóng và dễ dàng để triển khai ứng
dụng web và tài nguyên tiếp cận từ Internet.
Firebase Analytics: Dịch vụ phân tích và theo dõi hiệu suất ứng dụng, sự tương
tác và hành vi người dùng.

Ngồi ra, Firebase cịn cung cấp nhiều dịch vụ và công cụ khác như Firebase
Crashlytics, Firebase Performance Monitoring, Firebase Test Lab và nhiều hơn nữa.
Firebase giúp các nhà phát triển xây dựng ứng dụng nhanh chóng và hiệu quả mà
khơng cần q nhiều kiến thức về cơ sở hạ tầng phức tạp.
3.4.

Figma:

12


Figma là một công cụ thiết kế giao diện người dùng được sử dụng để tạo ra các
thiết kế giao diện, prototype và hợp tác trong quá trình phát triển sản phẩm. Figma có
khả năng hoạt động trên các nền tảng khác nhau, bao gồm cả máy tính để bàn và thiết
bị di động.
Với Figma, bạn có thể tạo ra các bản vẽ của các giao diện người dùng, chỉnh sửa
các thành phần giao diện người dùng, và tạo các prototype tương tác để thử nghiệm trải
nghiệm người dùng. Nó cho phép người dùng làm việc đồng thời và hợp tác trong thời
gian thực, cho phép các nhóm thiết kế và phát triển làm việc cùng nhau từ xa.
Figma cũng cung cấp tính năng phân loại và tổ chức các thành phần giao diện
người dùng, cho phép tái sử dụng chúng trong các bản vẽ khác nhau và duy trì tính
nhất qn trong q trình phát triển sản phẩm.
Với tích hợp vào các công cụ phát triển khác và khả năng xuất ra dạng tệp tin
hợp chuẩn, Figma trở thành một công cụ phổ biến trong cộng đồng thiết kế và phát
triển sản phẩm số.

13


CHƯƠNG 4.

4.1.

THIẾT KẾ HỆ THỐNG

Kiến trúc hệ thống: Kiến trúc Bloc:

Bloc giúp dễ dàng tách biệt phần UI và Business logic, giúp code nhanh, dễ test
và dễ sử dụng. Mục đích của Pattern này là tách code business logic ra khỏi UI thay vì
code gộp chung cả logic và UI vơ cùng 1 file, để sau này spec mới có yêu cầu sửa code
business logic hay sửa UI sẽ dễ dàng sửa hơn. Code business logic được tách ra đó
người ta đặt tên là Bloc (Business Logic Component). Bên cạnh đó, nó cịn giúp chúng
ta quản lý state của 1 màn hình tốt hơn vì các state sẽ được quản ở Bloc tách biệt với
UI. Chính vì vậy, mỗi màn hình trong app flutter chúng ta nên tạo ra 1 bloc để xử lý
logic của màn hình đó và quản lý state của cả màn hình đó.
Bloc được coi như bộ não với nhiệm vụ chuyển đổi ( convert ) các đầu vào là
các stream Event thành các stream State ở đầu ra.
Về kiến trúc Bloc trong Flutter, có hai dạng mà bạn thường gặp đó là :
-

Xây dựng Bloc với RxDart

-

Xây dựng BLoC với Event – State
Nhưng dù dùng kiểu nào đi nữa, thì cấu trúc cũng theo một mơ hình như bên

dưới:

Hình 5.1: Mơ hình Bloc
4.2.

STT

Chi tiết các thành phần trong hệ thống:
Thành phần

Diễn giải

14



×