ĐẠ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
DƯƠNG PHƯỚC HẢI THỌ
ĐỖ THÀNH THẮNG
KHĨA LUẬN TỐT NGHIỆP
TÌM HIỂU FLUTTER
VÀ XÂY DỰNG ỨNG DỤNG MINH HOẠ
Flutter research
and build illustrative application
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
TP. HỒ CHÍ MINH, 2020
ĐẠ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
DƯƠNG PHƯỚC HẢI THỌ – 15520851
ĐỖ THÀNH THẮNG – 15520787
KHĨA LUẬN TỐT NGHIỆP
TÌM HIỂU FLUTTER
VÀ XÂY DỰNG ỨNG DỤNG MINH HOẠ
Flutter research
and build illustrative application
KỸ SƯ NGÀNH KỸ THUẬT PHẦN MỀM
GIẢNG VIÊN HƯỚNG DẪN
TS. HUỲNH NGỌC TÍN
THS. NGUYỄN CƠNG HOAN
TP. HỒ CHÍ MINH, 2020
THƠNG TIN HỘI ĐỒNG CHẤM KHĨA LUẬN TỐT NGHIỆP
Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số ………………
ngày ………………….. của Hiệu trưởng Trường Đại học Công nghệ Thông tin
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC
Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày
tháng
năm 2020
NHẬN XÉT KHĨA LUẬN TỐT NGHIỆP
CỦA CÁN BỘ HƯỚNG DẪN
Tên khóa luận:
TÌM HIỂU FLUTTER VÀ XÂY DỰNG ỨNG DỤNG MINH HOẠ
Cán bộ hướng dẫn:
Nhóm SV thực hiện:
Dương Phước Hải Thọ
15520851
TS. Huỳnh Ngọc Tín
Đỗ Thành Thắng
15520787
ThS. Nguyễn Cơng Hoan
Đánh giá Khóa luận
1. Về cuốn báo cáo:
Số trang
................
Số chương
................
Số bảng số liệu
................
Số hình vẽ
................
Sản phẩm
................
Số tài liệu tham khảo ...............
Một số nhận xét về hình thức cuốn báo cáo:
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
2. Về nội dung nghiên cứu:
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
3. Về chương trình ứng dụng:
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
4. Về thái độ làm việc của sinh viên:
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
Đánh giá chung: ………………………………………………………………………..
……………………………………………………………………………………………
……………………………………………………………………………………………
Điểm từng sinh viên:
Dương Phước Hải Thọ: …../10
Đỗ Thành Thắng:
…../10
Người nhận xét
(Ký tên và ghi rõ họ tên)
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC
Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày … tháng … năm 2020
NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP
CỦA CÁN BỘ PHẢN BIỆN
Tên khóa luận:
TÌM HIỂU FLUTTER VÀ XÂY DỰNG ỨNG DỤNG MINH HOẠ
Nhóm SV thực hiện:
Cán bộ phản biện:
Dương Phước Hải Thọ
15520851
Đỗ Thành Thắng
15520787
……………………
Đánh giá Khóa luận
1. Về cuốn báo cáo
Số trang
................
Số chương
................
Số bảng số liệu
................
Số hình vẽ
................
Sản phẩm
................
Số tài liệu tham khảo ...............
Một số nhận xét về hình thức cuốn báo cáo:
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
2. Về nội dung nghiên cứu:
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
3. Về chương trình ứng dụng:
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
4. Về thái độ làm việc của sinh viên:
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
……………………………………………………………………………………………
Đánh giá chung:………………………………………………………………………...
……………………………………………………………………………………………
……………………………………………………………………………………………
Điểm từng sinh viên:
Dương Phước Hải Thọ: …../10
Đỗ Thành Thắng:
…../10
Người nhận xét
(Ký tên và ghi rõ họ tên)
LỜI CẢM ƠN
Lời đầu tiên nhóm em xin chân thành cảm ơn các Thầy (Cô) của trường Đại học Công
Nghệ Thông Tin đặc biệt là các Thầy (Cô) trong Khoa Cơng Nghệ Phần Mềm đã tận
tình chỉ dạy, truyền đạt kiến thức quý báu trong suốt thời gian học tập tại trường. Tiếp
đó xin chân thành cảm ơn sâu sắc đến TS. Huỳnh Ngọc Tín và ThS. Nguyễn Cơng
Hoan đã chỉ bảo và hướng dẫn nhóm em trong suốt quá trình thực hiện đề tài.
Bên cạnh đó, xin cảm ơn những người thân, bạn bè đã giúp đỡ, động viên để nhóm
có thêm động lực học tập trong suốt thời gian qua.
Cuối cùng, dù đã cố gắng hoàn thành đề tài với tất cả sự nỗ lực, nhưng khố luận
khơng tránh khỏi những thiếu sót, nhóm chúng em rất mong nhận được những ý kiến
đóng góp chân thành từ quý thầy cô và các bạn. Chúc quý thầy cô luôn có nhiều sức
khỏe và thành cơng trong cuộc sống.
Trân trọng cảm ơn!
Tp. Hồ Chí Minh, tháng 07 năm 2020
Nhóm thực hiện
Dương Phước Hải Thọ
Đỗ Thành Thắng
ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM
TRƯỜNG ĐẠI HỌC
Độc Lập - Tự Do - Hạnh Phúc
CÔNG NGHỆ THÔNG TIN
ĐỀ CƯƠNG CHI TIẾT
Tên đề tài tiếng việt: Tìm hiểu Fultter và xây dựng ứng dụng minh hoạ
Tên đề tài tiếng anh: Flutter Reseach And Build Illustrative Application
Cán bộ hướng dẫn:
TS. Huỳnh Ngọc Tín
ThS. Nguyễn Công Hoan
Thời gian thực hiện: Từ ngày 16/03/2020 đến ngày 11/07/2020
Sinh viên thực hiện:
Dương Phước Hải Thọ – 15520851
Đỗ Thành Thắng – 15520787
Nội dung đề tài:
•
Mục tiêu:
- Tìm hiểu tổng quan về Flutter, lịch sử phát triển, ưu nhược điểm, so sánh
Flutter với đối thủ.
- Tìm hiểu ngơn ngữ Dart: cú pháp, các kiểu dữ liệu thường dùng, lập trình bất
động bộ, các kỹ thuật lập trình, …
- Tìm hiểu các kỹ thuật lập trình với Flutter.
- Tìm hiểu các cơng nghệ phù hợp có thể kết hợp với Flutter để xây dựng ứng
dụng trên nền tảng Android và iOS.
•
Đới tượng:
- Các cơng cụ và thư viện của Flutter.
- Các công nghệ phù hợp hỗ trợ xây dựng ứng dụng minh họa.
- Những cá nhân có nhu cầu cập nhật tin tức, giải trí.
•
Phương pháp thực hiện
- Làm việc nhóm hai thành viên, lên kế hoạch và thực hiện bằng cách trao đổi
trực tiếp hoặc gián tiếp qua các kênh chat online.
- Tham khảo các ứng dụng tương tự.
- Tham khảo ý kiến của giảng viên hướng dẫn để đạt kết quả tốt nhất.
- Thu thập phản hồi của người dùng để hồn thiện ứng dụng.
• Kết quả mong đợi
- Hiểu được các kiến thức liên quan đến Flutter.
- Biết cách sử dụng các công cụ hỗ trợ lập trình đa nền tảng với Flutter.
- Biết được các kỹ thuật lập trình với Flutter.
- Biết cách sử dụng các công nghệ hỗ trợ để xây dựng ứng dụng minh họa.
- Có khả năng dùng Flutter để xây dựng các ứng dụng đa nền tảng.
- Hoàn thành ứng dụng tổng hợp tin tức, bảng xếp hạng bài hát đáp ứng nhu cầu
cập nhật tin tức và giải trí của người dùng với giao diện trực quan, hoạt động tốt
trên cả hai nền tảng Android và iOS.
Kế hoạch thực hiện:
Công việc
STT
Thời gian
Người làm
1
Phân tích và lên kế hoạch cho đề tài
1.1
Phân tích nghiệp vụ và lên kế hoạch
Thọ, Thắng
1.2
Tìm hiểu và tham khảo các ứng dụng đã có
Thọ, Thắng
1.3
Tìm hiểu các cơng nghệ có thể sử dụng
Thọ, Thắng
2
Tìm hiểu công nghệ
2.1
Tìm hiểu Flutter
Thọ, Thắng
2.2
Tìm hiểu về các công cụ, thư viện thu thập dữ liệu
Thọ
3
Thiết kế và xây dựng ứng dụng công cụ thu thập,
và gửi dữ liệu
16/03/2020 – 25/03/2020
25/03/2020 - 15/04/2020
15/04/2020 - 15/05/2020
3.1
Xây dựng chức năng thu thập dữ liệu tin tức
Thọ
3.2
Xây dựng chức năng thu thập dữ liệu bảng xếp hạng bài hát
Thọ
3.3
Xây dựng API để giao tiếp giữa ứng dụng với cơ sở dữ liệu
Thắng
4
Xây dựng các chức năng, giao diện về tin tức
15/05/2020 – 01/06/2020
4.1
Phác thảo và thiết kế các giao diện
Thọ, Thắng
4.2
Xây dựng màn hình hiển thị danh sách bài viết theo chuyên mục
Thắng
4.3
Xây dựng chức năng cho màn hình nội dung bài viết
Thắng
4.5
Xây dựng chức năng lọc danh mục
Thắng
4.6
Xây dựng chức năng chế độ tối, chế độ đọc nhanh
Thọ
4.7
Xây dựng chức năng tìm kiếm bài viết
Thắng
4.9
Tìm hiểu FPT.AI API và xây dựng chức năng chuyển văn bản
Thọ
thành giọng nói
4.10
Xây dựng chức năng cho màn hình lưu bài viết
Thắng
4.11
Xây dựng chức năng chia sẻ bài viết
Thọ
5
Xây dựng các chức năng, giao diện về âm nhạc
5.1
Phác thảo và thiết kế các màn hình giao diện
Thọ, Thắng
5.2
Xây dựng màn hình bảng xếp hạng bài hát
Thắng
01/05/2020 - 15/06/2020
5.3
Xây dựng chức năng phát bài hát từ danh sách
Thắng
5.4
Xây dựng các chức năng màn hình chi tiết bài hát
Thọ, Thắng
5.6
Xây dựng các chức năng cho màn hình bát hát yêu thích
Thọ
6
Kiểm thử, hoàn thiện và đánh giá kết quả đạt
được
15/05/2020 - 11/07/2020
6.1
Kiểm thử trên nhiều thiết bị
Thọ, Thắng
6.2
Hoàn thiện ứng dụng
Thọ, Thắng
6.3
Đánh giá kết quả đạt được và đề ra hướng phát triển
Thọ, Thắng
6.4
Hoàn thành báo cáo
Thọ, Thắng
Xác nhận của CBHD
Tp. HCM, ngày 12 tháng 05 năm 2020
(Ký tên và ghi rõ họ tên)
Sinh viên
(Ký tên và ghi rõ họ tên)
MỤC LỤC
TĨM TẮT KHỐ LUẬN ..........................................................................................1
Chương 1
MỞ ĐẦU .................................................................................................2
1.1.
Lý do chọn đề tài .........................................................................................2
1.2.
Mục tiêu và phạm vi đề tài ..........................................................................2
1.2.1.
Mục tiêu ..............................................................................................2
1.2.2.
Phạm vi đề tài ......................................................................................3
1.3.
Đối tượng ....................................................................................................3
1.4.
Kết quả mong đợi ........................................................................................3
Chương 2
2.1.
TÌM HIỂU VỀ FLUTTER ......................................................................5
Tổng quan về Flutter ...................................................................................5
2.1.1.
Tổng quan và lịch sử ...........................................................................5
2.1.2.
Ưu điểm và nhược điểm của Flutter ...................................................6
2.1.3.
So sánh Flutter với React Native ........................................................7
2.2.
Ngôn ngữ Dart .............................................................................................8
2.3.
Kiến trúc Flutter ..........................................................................................9
2.4.
Widget .......................................................................................................10
2.4.1.
Khái niệm ..........................................................................................10
2.4.2.
Phân loại widget ................................................................................12
2.4.3.
Khái niệm về Widget tree và Element tree .......................................13
2.4.4.
Vòng đời của stateful widget: ...........................................................14
2.4.5.
Các widget quan trọng ......................................................................15
2.5.
Animation ..................................................................................................17
2.5.1.
Khái niệm ..........................................................................................17
2.5.2.
Tạo animation....................................................................................18
2.6.
Sử dụng platform-specific code ................................................................21
2.6.1.
Khái niệm ..........................................................................................21
2.6.2.
Ví dụ minh họa ..................................................................................22
2.7.
Package .....................................................................................................25
2.7.1.
Khái niệm ..........................................................................................25
2.7.2.
Sử dụng package ...............................................................................26
2.7.3.
Một vài package thường dùng ...........................................................26
Chương 3
CÁC CÔNG NGHỆ ÁP DỤNG ...........................................................27
3.1.
Flask framework........................................................................................27
3.1.1.
Tổng quan về Flask framework ........................................................27
3.1.2.
Áp dụng Flask framework vào đề tài ................................................27
3.1.3.
Lý do sử dụng Flask framework .......................................................27
3.2.
Microsoft Azure ........................................................................................27
3.2.1.
Khái niệm ..........................................................................................27
3.2.2.
Áp dụng Microsoft Azure vào đề tài .................................................28
3.2.3.
Lý do sử dụng Microsoft Azure ........................................................28
3.3.
MySQL ......................................................................................................28
3.3.1.
Khái niệm ..........................................................................................28
3.3.2.
Áp dụng MySQL vào đề tài ..............................................................29
3.3.3.
Lý do sử dụng MySQL .....................................................................29
3.4.
FPT.AI .......................................................................................................29
3.4.1.
Khái niệm ..........................................................................................29
3.4.2.
Áp dụng FPT.AI vào đề tài ...............................................................29
3.4.3.
Lý do sử dụng MySQL .....................................................................29
3.5.
Firebase .....................................................................................................30
3.5.1.
Khái niệm ..........................................................................................30
3.5.2.
Áp dụng Firebase vào đề tài ..............................................................30
3.5.1.
Lý do sử dụng Firebase .....................................................................30
Chương 4
PHÂN TÍCH VÀ THIẾT KẾ ................................................................32
4.1.
Mơ hình use case .......................................................................................32
4.1.1.
Sơ đồ use case ...................................................................................32
4.1.2.
Danh sách người dùng.......................................................................33
4.1.3.
Danh sách use case ............................................................................33
4.2.
Các sơ đồ và luồng xử lý ...........................................................................35
4.2.1.
Tìm kiếm bài viết ..............................................................................35
4.2.2.
Xem nội dung bài viết .......................................................................36
4.2.3.
Xem lịch sử bài viết ..........................................................................39
4.2.4.
Xem bài viết đã lưu ...........................................................................40
4.2.5.
Thay đổi giao diện .............................................................................42
4.2.6.
Lọc chuyên mục ................................................................................45
4.2.7.
Xem bảng xếp hạng bài hát ...............................................................46
4.2.8.
Chơi bài hát .......................................................................................48
4.2.9.
Xem danh sách bài hát u thích ......................................................50
4.2.10.
Gửi thơng báo bài viết, bài hát nổi bật ..............................................51
4.2.11.
4.3.
Thu thập bài viết, bài hát ...................................................................52
Thiết kế kiến trúc ......................................................................................54
4.3.1.
Mơ hình kiến trúc ..............................................................................54
4.3.2.
Mơ tả .................................................................................................54
4.4.
Thiết kế cơ sở dữ liệu ................................................................................55
4.4.1.
Tổng quan cơ sở dữ liệu ....................................................................55
4.4.2.
Mô tả chi tiết các các table trong cơ sở dữ liệu.................................56
4.5.
Thiết kế giao diện ......................................................................................58
4.5.1.
Giao diện danh sách bài viết .............................................................58
4.5.2.
Giao diện tìm kiếm bài viết ...............................................................59
4.5.3.
Giao diện nội dung bản tin ................................................................61
4.5.4.
Giao diện lịch sử tin đã xem .............................................................63
4.5.5.
Giao diện tin đã lưu ...........................................................................64
4.5.6.
Giao diện bảng xếp hạng bài hát .......................................................66
4.5.7.
Giao diện chơi bài hát .......................................................................67
4.5.8.
Giao diện nhạc yêu thích ...................................................................69
4.5.9.
Giao diện cài đặt................................................................................71
Chương 5
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ............................................73
5.1.
Kết quả đạt được .......................................................................................73
5.2.
Hướng phát triển .......................................................................................73
TÀI LIỆU THAM KHẢO .........................................................................................75
DANH MỤC HÌNH
Hình 2.1 Các ứng dụng nổi bật được phát triển với Flutter ........................................5
Hình 2.2 Kiến trúc Flutter .........................................................................................10
Hình 2.3 Minh họa cây widget của một chương trình Flutter đơn giản....................11
Hình 2.4 Widget tree, Element tree, Render tree ......................................................14
Hình 2.5 Vịng đời của stateful widget .....................................................................15
Hình 2.6 Kênh giao tiếp giữa ứng dụng Flutter và platform host .............................22
Hình 4.1 Sơ đồ use case tổng quát ............................................................................32
Hình 4.2 Activity diagram tìm kiếm bài viết ............................................................35
Hình 4.3 Sequence diagram tìm kiếm bài viết ..........................................................36
Hình 4.4 Activity diagram xem nội dung bài viết.....................................................37
Hình 4.5 Sequence diagram xem nội dung bài viết ..................................................38
Hình 4.6 Activity diagram xem lịch sử bài viết ........................................................39
Hình 4.7 Sequence diagram xem lịch sử bài viết ......................................................40
Hình 4.8 Activity diagram xem bài viết đã lưu .........................................................41
Hình 4.9 Sequence diagram xem bài viết đã lưu ......................................................42
Hình 4.10 Activity diagram thay đổi giao diện .........................................................43
Hình 4.11 Sequence diagram thay đổi giao diện ......................................................44
Hình 4.12 Activity diagram lọc chuyên mục ............................................................45
Hình 4.13 Sequence diagram lọc chuyên mục ..........................................................46
Hình 4.14 Activity diagram xem bảng xếp hạng bài hát ..........................................47
Hình 4.15 Sequence diagram xem bảng xếp hạng bài hát ........................................47
Hình 4.16 Activity diagram chơi bài hát ...................................................................48
Hình 4.17 Sequence diagram chơi bài hát ................................................................49
Hình 4.18 Activity diagram xem danh sách bài hát yêu thích ..................................50
Hình 4.19 Sequence diagram xem danh sách bài hát yêu thích ................................51
Hình 4.20 Sequence diagram gửi thơng báo bài viết, bài hát nổi bật .......................52
Hình 4.21 Sequence diagram thu thập bài viết, bài bài hát .......................................53
Hình 4.22 Mơ hình kiến trúc hệ thống ......................................................................54
Hình 4.23 Giao diện danh sách bài viết ....................................................................58
Hình 4.24 Giao diện tìm kiếm bài viết ......................................................................59
Hình 4.25 Giao diện nội dung bản tin .......................................................................61
Hình 4.26 Giao diện lịch sử tin đã xem ....................................................................63
Hình 4.27 Giao diện tin đã lưu ..................................................................................64
Hình 4.28 Giao diện bảng xếp hạng bài hát ..............................................................66
Hình 4.29 Giao diện chơi bài hát ..............................................................................67
Hình 4.30 Giao diện nhạc u thích ..........................................................................69
Hình 4.31 Giao diện cài đặt.......................................................................................71
DANH MỤC BẢNG
Bảng 2.1 So sánh Flutter và React Native ..................................................................8
Bảng 4.1 Danh sách người dùng ...............................................................................33
Bảng 4.2 Danh sách use case ....................................................................................34
Bảng 4.3 Danh sách table có trong cơ sở dữ liệu ......................................................55
Bảng 4.4 Bảng mô tả chi tiết table articles ...............................................................56
Bảng 4.5 Bảng mô tả chi tiết table musics ................................................................57
Bảng 4.6 Chú thích giao diện danh sách bài viết ......................................................59
Bảng 4.7 Chú thích giao diện tìm kiếm bài viết........................................................60
Bảng 4.8 Chú thích giao diện nội dung bảng tin .......................................................62
Bảng 4.9 Chú thích giao diện lịch sử tin đã xem ......................................................64
Bảng 4.10 Chú thích giao diện tin đã lưu..................................................................65
Bảng 4.11 Chú thích giao diện bảng xếp hạng bài hát ..............................................67
Bảng 4.12 Chú thích giao diện chơi bài hát ..............................................................68
Bảng 4.13 Chú thích giao diện nhạc yêu thích .........................................................70
Bảng 4.14 Chú thích giao diện cài đặt ......................................................................72
DANH MỤC TỪ VIẾT TẮT
Từ viết tắt
API
Nghĩa tiếng Anh
Application Programming
Nghĩa tiếng Việt
Giao diện lập trình ứng dụng
Interface
HTML
UI
URL
HyperText Markup Language
Ngơn ngữ đánh dấu siêu văn bản
User Interface
Giao diện người dùng
Uniform Resource Locator
Định vị tài nguyên thống nhất
(hay còn gọi là địa chỉ web)
TĨM TẮT KHỐ LUẬN
Khóa luận đề tài “Tìm hiểu Flutter và xây dựng ứng dụng minh họa” bao gồm các nội
dung sau:
-
Tìm hiểu Flutter:
• Tìm hiểu tổng quan về Flutter, ưu nhược điểm, so sánh với đối thủ.
• Tìm hiểu ngơn ngữ Dart.
• Tìm hiểu cách xây dựng UI với Flutter.
• Tìm hiểu các kỹ thuật lập trình với Flutter.
• Tìm hiểu về các thư viện và cơng cụ Flutter.
-
Tìm hiểu về các công nghệ khác hỗ trợ xây dựng ứng dụng minh họa.
-
Thiết kế và xây dựng ứng dụng minh họa hoạt động tốt trên hai nền tảng
Android và iOS.
-
Trình bày kết luận và hướng phát triển.
1
Chương 1 MỞ ĐẦU
1.1.
Lý do chọn đề tài
Ngày nay, công nghệ thơng tin ngày một phát triển, kéo theo đó là sự bùng nổ của
các thiết bị điện tử, đặc biệt là điện thoại thơng minh và máy tính. Nếu như trước đây
việc sở hữu một chiếc điện thoại thông minh hay máy tính khá khó khăn thì ngày nay
do sự cạnh tranh gay gắt giữa các thương hiệu khiến giá thành những thiết bị này rẻ
hơn và việc sở hữu chúng trở nên dễ dàng hơn. Vì thế nhu cầu phát triển ứng dụng
cho các thiết bị này càng ngày càng tăng cao.
Để tiếp cận đến nhiều người dùng, các nhà phát triển ứng dụng mong muốn ứng dụng
của họ chạy được trên nhiều nền tảng đặc biệt là Android, iOS, Windows, MacOS và
web. Thay vì phải tìm hiểu nhiều ngôn ngữ, công nghệ khác nhau ứng với từng nền
tảng thì hiện nay trên thị trường có nhiều cơng cụ hỗ trợ lập trình đa nền tảng như
Flutter, React Native, Ionic, … giúp các nhà phát triển ứng dụng tiết kiệm thời gian,
chi phí dành cho q trình phát triển ứng dụng.
Trong số đó có Flutter mặc dù là cơng cụ ra đời muộn nhất nhưng có tốc độ phát triển
vượt trội và nhiều ưu điểm so với các công nghệ đi trước, nhiều công ty công nghệ
lớn sử dụng Flutter để phát triển sản phẩm của mình như Google, Alibaba, Tencent,
… Ứng dụng xây dựng với Flutter hoạt động với hiệu năng mạnh mẽ và hiếm có vấn
đề về mặt tương thích, ngồi ra đây cịn là cơng cụ mã nguồn mở nên ngày càng nhiều
lập trình viên và công ty quan tâm đến công nghệ mới này.
Đây là lý do nhóm chọn đề tài khóa luận tốt nghiệp là “Tìm hiểu Flutter và xây dựng
ứng dụng minh họa”.
1.2.
Mục tiêu và phạm vi đề tài
1.2.1. Mục tiêu
-
Tìm hiểu tổng quan về Flutter, lịch sử phát triển, ưu nhược điểm, so sánh
Flutter với đối thủ.
2
-
Tìm hiểu ngơn ngữ Dart: cú pháp, các kiểu dữ liệu thường dùng, lập trình bất
động bộ, các kỹ thuật lập trình, …
-
Tìm hiểu các kỹ thuật lập trình với Flutter.
-
Tìm hiểu các cơng nghệ khác hỗ trợ xây dựng ứng dụng minh họa.
-
Xây dựng ứng dụng minh hoạ hoạt động tốt trên hai nền tảng Android và iOS.
1.2.2. Phạm vi đề tài
Đề tài “Tìm hiểu Flutter và xây dựng ứng dụng mình họa” gồm hai nội dung với phạm
vi sau:
-
Tìm hiểu:
• Tìm hiểu về Flutter cho hai nền tảng Android và iOS. Nền tảng web,
Windows và MacOS không thuộc phạm vi đề tài này.
• Tìm hiểu về các cơng cụ hỗ trợ để phát triển ứng dụng minh họa.
• Tìm hiểu về các cơng nghệ phù hợp để xây dựng ứng dụng minh họa.
-
Xây dựng ứng dụng minh họa bao gồm các chức năng cơ bản:
• Tổng hợp tin tức từ ba trang báo lớn là VnExpress, VTC News, Tuổi Trẻ
Online.
• Tổng hợp các bảng xếp hạng bài hát từ cộng đồng Chiasenhac.vn.
• Phát các bài hát và điều khiển trình chơi nhạc.
• Chia sẻ các tin tức và bài hát.
• Lưu các tin tức, bài hát và xem lại/ chơi lại.
1.3.
Đối tượng
-
Các thư viện và công cụ Flutter.
-
Các cơng nghệ có thể sử dụng để hỗ trợ xây dựng ứng dụng minh họa.
-
Các cá nhân có nhu cầu cập nhật tin tức và giải trí.
1.4.
-
Kết quả mong đợi
Hiểu được các kiến thức liên quan đến Flutter.
3
-
Biết cách sử dụng các công cụ hỗ trợ lập trình đa nền tảng với Flutter.
-
Biết được các kỹ thuật lập trình với Flutter.
-
Biết cách sử dụng các cơng nghệ hỗ trợ để xây dựng ứng dụng minh họa.
-
Có khả năng dùng Flutter để xây dựng các ứng dụng đa nền tảng.
-
Hoàn thành ứng dụng tổng hợp tin tức, bảng xếp hạng bài hát đáp ứng nhu cầu
cập nhật tin tức và giải trí của người dùng với giao diện trực quan, hoạt động
tốt trên cả hai nền tảng Android và iOS.
4