ĐẠ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
Học Kỳ II (2021 – 2022)
ĐỀ TÀI:
ỨNG DỤNG SỔ TAY CÁ NHÂN
Nhóm sinh viên thực hiện:
- Phạm Văn Chánh – 19521274
Hồ Quang – 19520875
- Lớp: SE121.M21.PMCL
- Trường: ĐH CNTT
- Giảng viên: Trần Anh Dũng
Thành phố Hồ Chí Minh, ngày 17, tháng 06, năm 2022
ĐẠ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
Học Kỳ II (2021 – 2022)
ĐỀ TÀI:
ỨNG DỤNG SỔ TAY CÁ NHÂN
Nhóm sinh viên thực hiện:
- Phạm Văn Chánh – 19521274
Hồ Quang – 19520875
- Lớp: SE121.M21.PMCL
- Trường: ĐH CNTT
- Giảng viên: Trần Anh Dũng
Thành phố Hồ Chí Minh, ngày 17, tháng 06, năm 2022
MỤC LỤC
DANH MỤC HÌNH ........................................................................................................ 1
DANH MỤC TỪ VIẾT TẮT .......................................................................................... 2
LỜI CẢM ƠN ................................................................................................................. 3
ĐỀ CƯƠNG CHI TIẾT ................................................................................................... 4
NỘI DUNG ..................................................................................................................... 9
Chương 1. GIỚI THIỆU ................................................................................................. 9
1.1. Lý do chọn đề tài .................................................................................................. 9
1.2. Mục tiêu ............................................................................................................... 9
1.3. Phạm vi .............................................................................................................. 10
1.4. Đối tượng sử dụng .............................................................................................. 10
1.5. Phương pháp thực hiện ....................................................................................... 10
Chương 2. KIẾN THỨC VÀ CÔNG NGHỆ NỀN TẢNG ............................................ 12
2.1. Kiến thức nền tảng ............................................................................................. 12
Để thiết kế và hoàn thiện sản phẩm đúng với yêu cầu người dùng, chúng ............... 12
2.2. Công nghệ sử dụng ............................................................................................. 12
2.2.1. Ngôn ngữ lập trình Dart ............................................................................... 12
2.2.2. Flutter .......................................................................................................... 13
2.2.3. Nodejs ......................................................................................................... 14
2.2.4. Expressjs ..................................................................................................... 15
2.2.5. MongoDB .................................................................................................... 16
2.2.6. DialogFlow .................................................................................................. 17
2.2.7. Visual Studio Code ...................................................................................... 18
Chương 3. XÂY DỰNG ỨNG DỤNG ......................................................................... 19
3.1. Yêu cầu chức năng ............................................................................................. 19
3.1.1. Use Case Diagram ....................................................................................... 19
3.1.2. Mô tả Use Case ............................................................................................ 20
3.1.3. Đặc tả Use case ............................................................................................ 21
UC1: Đăng nhập ..................................................................................................... 21
UC2: Đăng ký ........................................................................................................ 23
UC3: Quên mật khẩu .............................................................................................. 26
UC4: Send OTP ...................................................................................................... 29
UC5: Đăng xuất ...................................................................................................... 30
UC6: Cập nhật thông tin cá nhân ............................................................................ 31
UC7: Tạo công việc (CRUD) ................................................................................. 32
UC8: Tạo thông báo nhắc việc ................................................................................ 35
UC9: Tạo ghi chú (CRUD) ..................................................................................... 37
UC10: Tạo Album ảnh (CRUD) ............................................................................. 40
UC11: Thêm ảnh (CRUD) ...................................................................................... 43
UC12: Thêm tài khoản (CRUD) ............................................................................. 45
UC13: Thêm giấy tờ (CRUD) ................................................................................. 47
UC14: Scan ảnh ...................................................................................................... 50
UC15: Hỏi đáp chatbot ........................................................................................... 52
UC16: Thêm thông tin sức khoẻ (CRUD) ............................................................... 54
3.1.4. Mô tả cơ sở dữ liệu ...................................................................................... 56
3.1.5. Danh sách Messages .................................................................................... 61
3.2. Yêu cầu phi chức năng ....................................................................................... 62
3.2.1. Capacity....................................................................................................... 62
3.2.2. Response Time ............................................................................................ 62
3.2.3. Portability .................................................................................................... 62
3.2.4. Reliability .................................................................................................... 62
3.2.5. Safety .......................................................................................................... 63
Chương 4. THIẾT KẾ GIAO DIỆN ỨNG DỤNG ........................................................ 64
4.1. Giao diện đăng ký .............................................................................................. 64
4.2. Giao diện đăng nhập ........................................................................................... 65
4.3. Giao diện quên mật khẩu .................................................................................... 67
4.4. Màn hình trang chủ ............................................................................................ 68
4.5. Màn hình thông tin cá nhân ................................................................................ 69
4.6. Giao diện lập kế hoạch ....................................................................................... 71
4.7. Giao diện thêm công việc ................................................................................... 72
4.8. Giao diện ghi chú ............................................................................................... 73
4.9. Giao diện album ảnh .......................................................................................... 75
4.10. Giao diện tài khoản .......................................................................................... 77
4.11. Giao diện sức khoẻ ........................................................................................... 79
4.12. Giao diện chatbot hỏi đáp sức khoẻ .................................................................. 81
Chương 5. THỬ NGHIỆM VÀ ĐÁNH GIÁ ................................................................. 82
5.1. Môi trường thử nghiệm ...................................................................................... 82
5.2. Kết quả thử nghiệm ............................................................................................ 82
5.3. Đánh giá sản phẩm ............................................................................................. 82
Chương 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ................................................... 83
6.1. Kết luận.............................................................................................................. 83
6.2. Hạn chế và hướng phát triển ............................................................................... 83
6.2.1. Hạn chế........................................................................................................ 83
6.2.2. Hướng phát triển .......................................................................................... 83
TÀI LIỆU THAM KHẢO ............................................................................................. 85
DANH MỤC HÌNH
Hình 2.1: Ngôn ngữ lập trình Dart ................................................................................. 12
Hình 2.2: Flutter SDK.................................................................................................... 13
Hình 2.3: Javascript runtime Nodejs .............................................................................. 14
Hình 2.4: Expressjs framework ...................................................................................... 15
Hình 2.5: Cơ sở dữ liệu MongoDB ................................................................................ 16
Hình 2.6: Dialogflow framework AI .............................................................................. 17
Hình 2.7: Visual Studio Code ........................................................................................ 18
Hình 3.1: Sơ đồ Usecase tổng quát hệ thống…………………………………………….19
Hình 3.2: Database Diagram .......................................................................................... 57
Hình 4.1: Danh sách màn hình đăng ký………………………………………………….64
Hình 4.2: Màn hình đăng nhập....................................................................................... 65
Hình 4.3: Màn hình quên mật khẩu ................................................................................ 67
Hình 4.4: Màn hình trang chủ ........................................................................................ 68
Hình 4.5: Màn hình thông tin cá nhân ............................................................................ 69
Hình 4.6: Màn hình lập kế hoạch ................................................................................... 71
Hình 4.7: Màn hình thêm công việc ............................................................................... 72
Hình 4.8: Danh sách màn hình ghi chú .......................................................................... 74
Hình 4.9: Danh sách màn hình album ảnh ...................................................................... 76
Hình 4.10: Danh sách màn hình lưu trữ tài khoản .......................................................... 77
Hình 4.11: Danh sách màn hình hồ sơ sức khoẻ ............................................................. 79
Hình 4.12: Màn hình chatbot ......................................................................................... 81
1
DANH MỤC TỪ VIẾT TẮT
#
1
Từ viết tắt
UI
Từ đầy đủ
User Interface
Ý nghĩa
Giao diện người dùng
2
API
Application Programing
Inteface
Giao diện lập trình ứng dụng
3
CSDL
Cơ sở dữ liệu
4
SDK
Software Development Kit
Công cụ và phần mềm dùng để
phát triển ứng dụng thông qua
một nền tảng nhất định
5
I/O
Input / Output
Thiết bị đầu cuối
6
HTTP
Hyper Text Transfer
Protocol
Giao thức truyền tải siêu văn bản
7
URL
Uniform Resource Locator
Hệ thống định vị tài nguyên
thống nhất (hay địa chỉ web)
8
JSON
Javascript Object Notation
Kiểu dữ liệu mở trong Javascript
dùn để trao đổi dữ liệu trên web
9
AI
Artificial Intelligence
Trí tuệ nhân tạo
10
IVR
Interactive Voice Response
Hệ thống tổng đài trả lời tự động
11
IDE
Integrated Development
Environment
Môi trường tích hợp dùng để
viết code để phát triển ứng dụng
12
UC
Usecase
13
CRUD
Create, Read, Update,
Delete
Thêm, đọc, sửa, xoá
14
OTP
One Time Password
Mật khẩu xác thực một lần được
coi là lớp bảo vệ thứ hai cho ứng
dụng
15
BR
Business Rule
Quy tắc nghiệp vụ
16
MSG
Message
17
MTBF
Mean time between failure
2
Thời gian trung bình giữa các
lần hỏng hóc
LỜI CẢM ƠN
Sau quá trình ho ̣c tập và rèn luyện ta ̣i khoa Công nghệ phầ n mề m trường Đa ̣i ho ̣c
Công nghệ Thông tin – ĐHQG TP.HCM chúng em đã đươc̣ trang bi ̣các kiế n thức cơ bản,
các kỹ năng thực tế để có thể lầ n đầ u thực hiện Đồ án 1 của mình.
Để hoàn thành Đồ án này, chúng em xin gửi lời cảm ơn chân thành đế n:
Ban Giám hiệu trường Đa ̣i ho ̣c Công nghệ Thông tin – ĐHQG TP.HCM vì đã ta ̣o
điề u kiện về cơ sở vật chấ t với hệ thố ng thư viện hiện đa ̣i, đa da ̣ng các loa ̣i sách, tài liệu
thuận lơị cho việc tìm kiế m, nghiên cứu thông tin.
Chúng em xin gửi lời cảm ơn chân thành đế n thầ y Trầ n Anh Dũng đã tận tình giúp
đỡ, đinh
̣ hướng cách tư duy và cách làm việc khoa ho ̣c. Đó là những góp ý hế t sức quý
báu không chỉ trong quá trình thực hiện đề tài mà còn là hành trang tiế p bước cho chúng
em trong quá trình ho ̣c tập và lập nghiệp sau này.
Và cuố i cùng, chúng em xin gửi lời cảm ơn đế n gia đình, tấ t cả thầ y cô trong khoa,
ba ̣n bè, tập thể lớp PMCL2019 là những người luôn sẵn sàng sẻ chia và giúp đỡ trong ho ̣c
tập và cuộc số ng. Mong rằ ng, chúng ta sẽ mãi mãi gắ n bó với nhau.
Tuy nhiên trong quá trình nghiên cứu đề tài, do kiến thức chuyên ngành còn hạn chế
nên chúng em vẫn còn nhiều thiếu sót khi tìm hiểu, đánh giá, trình bày về đề tài. Rất
mong nhận được sự quan tâm, góp ý của thầy để đề tài của chúng em được đầy đủ và
hoàn chỉnh hơn.
Chúng em xin chân thành cảm ơn.
TP. Hồ Chí Minh, ngày 14 tháng 06 năm 2022
3
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc Lập – Tự Do – Hạnh Phúc
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
TP. HCM, ngày 17 tháng 6 năm 2022
ĐỀ CƯƠNG CHI TIẾT
TÊN ĐỀ TÀI: Xây dựng ứng dụng sổ tay cá nhân
Cán bộ hướng dẫn: ThS. Trần Anh Dũng
Thời gian thực hiện: Từ ngày 28/02/2022 đế n ngày 11/06/2022
Sinh viên thực hiện:
Phạm Văn Chánh – 19521274
Hồ Quang – 19520875
Nội dung đề tài
1. Lý do chọn đề tài
Với nhiều hoạt động xảy ra thường xuyên mỗi phút, mỗi giờ hằng ngày. Khi chúng
ta làm bất cứ một việc nào đó, ta thường làm theo bản năng và không có một kế hoạch
nào nhất định. Và chúng ta hoàn toàn có thể quên béng đi chỉ ngay trong chớp mắt.
Chính việc này dẫn đến tình trạng bị trì trệ, không mang đến kết quả tốt. Những điều
đó khả năng là bạn không biết quản lý thời gian và lên kế hoạch cho cuộc sống.
Ngoài thói quen sắp xếp lối sống sinh hoạt, sắp xếp các vật dụng trong nhà, thì bạn
cũng cần phải có sự sắp xếp để quản lý thời gian của bản thân. Có một cuốn sổ tay để
ghi vào đó những lịch hẹn hay deadline cho công việc trong tuần kế tiếp, lướt qua nó
trước khi bắt đầu một ngày mới, chắc chắn bạn sẽ có được kế hoạch tốt hơn cho bản
thân, Bộ nhớ của con người là vô hạn. Nhưng nếu không thường xuyên được gợi nhớ
thì các thông tin lưu trữ cũng có thể bị mất đi. Một cuốn sổ tay sẽ là trợ lý tuyệt vời
4
giúp bạn ghi nhớ mọi vấn đề trong cuộc sống. Địa chỉ của khách hàng, số điện thoại
của người bạn mới quen, liệt kê các hạng mục cần mua sắm, nhật ký chi tiêu hàng
ngày…
Biết được tầm quan trọng, chúng em quyết định xây dựng ứng dụng sổ tay cá nhân.
Với mong muốn giúp người dùng quản lý được thời gian, kế hoạch cho riêng mình.
Giúp quản lý chi tiêu cá nhân để bạn biết sử dụng đồng tiền một cách hợp lý, hiệu quả
hơn. Giúp ghi chú lại những thứ quan trọng, đặc biệt lưu trữ thông tin trình trạng sức
khoẻ và hệ thống chatbot hỗ trợ trả lời các câu hỏi về sức khoẻ, bệnh lý và các triệu
chứng thông thường mà mỗi cá nhân chúng ta gặp phải.
2. Mục tiêu
Xây dựng ứng dụng hỗ trợ về các vấn đề cá nhân
-
Hỗ trợ việc lên kế hoạch và nhắc việc.
-
Hỗ trợ việc ghi chú thông tin, lưu trữ tài sản cá nhân (hình ảnh, video, tài
khoản,…)
-
Hỗ trợ giúp cải thiện sức khỏe: lưu trữ thông tin sức khoẻ, chatbot hỗ trợ sức
khoẻ (FAQ các vấn đề cơ bản về sức khỏe, cung cấp các bài viết của các chuyên
gia về các bệnh lý, triệu chứng thông thường, Hỏi đáp về các khoảng thời gian
ngủ nghỉ hợp lý,..)
3. Phạm vi
Phạm vi môi trường: Ứng dụng di động.
Phạm vi chức năng:
Đối với ứng dụng:
-
Cung cấp chức năng xem thông tin, đăng nhập, đăng ký, đăng xuất.
-
Cung cấp chức năng để người dùng lên kế hoạch và nhắc việc
-
Cung cấp chức năng để lưu ghi chú và xem các tư liệu, các thông tin đã lưu.
-
Cung cấp chức năng quản lý thông tin sức khoẻ
5
Đối với chatbot
-
Có khả năng trả lời các câu hỏi về các bệnh lý thường gặp một cách hiệu
quả.
-
Hiểu và gửi các tài liệu hợp lý cho người dùng.
-
Tính toán và cung cấp thời gian hợp lý về việc ngủ nghỉ.
4. Đối tượng sử dụng
Tất cả người dùng có lối sống sinh hoạt bận rộn, hay quên, không làm chủ được thời
gian trong công việc hằng ngày muốn đề ra kế hoạch rõ ràng cho bản thân bao gồm
theo dõi, đánh giá, điều chỉnh thời gian, tình trạng tài chính cá nhân,..
5. Phương pháp thực hiện:
Phương pháp làm việc:
-
Làm việc nhóm 2 thành viên thông qua cả 2 phương thức online và offline
dưới sự hướng dẫn của giảng viên.
Phương pháp nghiên cứu:
-
Phân tích nhu cầu sử dụng của đối tượng người dùng.
-
Nghiên cứu tài liệu các công nghệ liên quan.
Phương pháp công nghệ:
- Xây dựng giao diện mobile app để tương tác với người dùng
- Quản lý source code thông qua Github
6. Nền tảng công nghệ:
-
Frontend: Flutter, Dart
-
Backend: nodejs, express, javascript
-
Database: MongoDB
-
Extension: Visual Studio Code
6
-
DialogFlow Chatbot
7. Kết quả mong đợi:
- Ứng dụng hoạt động ổn định, có thể xử lý thông tin nhanh chóng, giao diện thân
thiện với người dùng,...
- Chatbot có khả năng phản hồi nhanh và chính xác ở mức tương đối.
8. Hướng phát triển của đề tài:
- Thêm tính năng đăng, xem bài viết chia sẻ
- Liên kết với các ví điện tử trong quản lý chi tiêu
- Hỗ trợ nhiều gói ngôn ngữ
9. Kế hoạch làm việc
Thời gian thực hiện từ ngày 28/02/2022 đến ngày 11/06/2022
Thời gian
Công việc dự kiến
Phân công
28/02/2022 -
Tìm hiểu công nghệ
13/03/2022
Tìm hiểu yêu cầu nghiệp vụ
14/03/2022 -
Đặc tả yêu cầu phần mềm
27/03/2022
Thiết kế database
sketches
Xây dựng giao diện,
Chánh, Quang
Các tính năng đăng nhập, đăng ký
Chánh
Quên mật khẩu, thông tin cá nhân.
Quang
Xây dựng giao diện
Chánh, Quang
28/03/2022 10/4/2022
7
Chánh, Quang
Chánh, Quang
11/4/2022 -
Các tính năng phân hệ lập kế hoạch và
Chánh
nhắc việc
1/5/2022
Tính năng ghi chú và lưu trữ tài sản cá
Quang
nhân (image, video, account, …)
Xây dựng giao diện,
Chánh, Quang
Các tính năng lưu trữ thông tin sức khoẻ
Chánh
Chatbot
Quang
29/5/2022 -
Kiểm thử ứng dụng
Chánh, Quang
11/6/2022
Hoàn thiện và sửa các lỗi
Hoàn thành báo cáo
2/5/2022 28/5/2022
.
8
NỘI DUNG
Chương 1. GIỚI THIỆU
1.1. Lý do chọn đề tài
Với nhiều hoạt động xảy ra thường xuyên mỗi phút, mỗi giờ hằng ngày. Khi chúng
ta làm bất cứ một việc nào đó, ta thường làm theo bản năng và không có một kế hoạch
nào nhất định. Và chúng ta hoàn toàn có thể quên béng đi chỉ ngay trong chớp mắt. Chính
việc này dẫn đến tình trạng bị trì trệ, không mang đến kết quả tốt. Những điều đó khả
năng là bạn không biết quản lý thời gian và lên kế hoạch cho cuộc sống.
Ngoài thói quen sắp xếp lối sống sinh hoạt, sắp xếp các vật dụng trong nhà, thì bạn
cũng cần phải có sự sắp xếp để quản lý thời gian của bản thân. Có một cuốn sổ tay để ghi
vào đó những lịch hẹn hay deadline cho công việc trong tuần kế tiếp, lướt qua nó trước
khi bắt đầu một ngày mới, chắc chắn bạn sẽ có được kế hoạch tốt hơn cho bản thân. Bộ
nhớ của con người là vô hạn, nhưng nếu không thường xuyên được gợi nhớ thì các thông
tin lưu trữ cũng có thể bị mất đi. Một cuốn sổ tay sẽ là trợ lý tuyệt vời giúp bạn ghi nhớ
mọi vấn đề trong cuộc sống. Địa chỉ của khách hàng, số điện thoại của người bạn mới
quen, liệt kê các hạng mục cần mua sắm, nhật ký chi tiêu hàng ngày…
Biết được tầm quan trọng, chúng em quyết định xây dựng ứng dụng sổ tay cá nhân.
Với mong muốn giúp người dùng quản lý được thời gian, kế hoạch cho riêng mình. Giúp
quản lý chi tiêu cá nhân để bạn biết sử dụng đồng tiền một cách hợp lý, hiệu quả hơn.
Giúp ghi chú lại những thứ quan trọng, đặc biệt lưu trữ thông tin trình trạng sức khoẻ và
hệ thống chatbot hỗ trợ trả lời các câu hỏi về sức khoẻ, bệnh lý và các triệu chứng thông
thường mà mỗi cá nhân chúng ta gặp phải.
1.2. Mục tiêu
Xây dựng ứng dụng hỗ trợ về các vấn đề cá nhân
-
Hỗ trợ việc lên kế hoạch và nhắc việc.
9
-
Hỗ trợ việc ghi chú thông tin, lưu trữ tài sản cá nhân (hình ảnh, video, tài
khoản,…)
-
Hỗ trợ giúp cải thiện sức khỏe: lưu trữ thông tin sức khoẻ, chatbot hỗ trợ sức khoẻ
(FAQ các vấn đề cơ bản về sức khỏe, cung cấp các bài viết của các chuyên gia về
các bệnh lý, triệu chứng thông thường, Hỏi đáp về các khoảng thời gian ngủ nghỉ
hợp lý,..)
1.3. Phạm vi
Phạm vi môi trường: Ứng dụng di động.
Phạm vi chức năng:
Đối với ứng dụng:
-
Cung cấp chức năng xem thông tin, đăng nhập, đăng ký, đăng xuất.
-
Cung cấp chức năng để người dùng lên kế hoạch và nhắc việc
-
Cung cấp chức năng để lưu ghi chú và xem các tư liệu, các thông tin đã lưu.
-
Cung cấp chức năng quản lý thông tin sức khoẻ
Đối với chatbot
-
Có khả năng trả lời các câu hỏi về các bệnh lý thường gặp một cách hiệu quả.
-
Hiểu và gửi các tài liệu hợp lý cho người dùng.
1.4. Đối tượng sử dụng
Tất cả người dùng có lối sống sinh hoạt bận rộn, hay quên, không làm chủ được thời
gian trong công việc hằng ngày muốn đề ra kế hoạch rõ ràng cho bản thân bao gồm theo
dõi, đánh giá, điều chỉnh thời gian, tình trạng tài chính cá nhân,..
1.5. Phương pháp thực hiện
Phương pháp làm việc:
10
-
Làm việc nhóm 2 thành viên thông qua cả 2 phương thức online và offline dưới sự
hướng dẫn của giảng viên.
Phương pháp nghiên cứu:
-
Phân tích nhu cầu sử dụng của đối tượng người dùng.
-
Nghiên cứu tài liệu các công nghệ liên quan.
Phương pháp công nghệ:
- Xây dựng giao diện mobile app để tương tác với người dùng
- Quản lý source code thông qua Github
11
Chương 2. KIẾN THỨC VÀ CÔNG NGHỆ NỀN TẢNG
2.1. Kiến thức nền tảng
Để thiết kế và hoàn thiện sản phẩm đúng với yêu cầu người dùng, chúng em đã vận
dụng các kiến thức có liên quan, cụ thể:
Frontend: Ngôn ngữ Dart với mobile UI framework Flutter và công cụ lập trình
Visual Studio Code: Kiến thức lập trình hướng đối tượng, chức năng cơ bản của
các Widget, thiết kế giao diện, xử lí sự kiện …
Backend: Nodejs với Javascript và thư viện hỗ trợ tạo API Express: tạo API,
tương tác database,…
Cơ sở dữ liệu: thiết kế CSDL phù hợp với mô hình ứng dụng, ràng buộc dữ liệu,
truy vấn dữ liệu…
2.2. Công nghệ sử dụng
2.2.1. Ngôn ngữ lập trình Dart
Hình 2.1: Ngôn ngữ lập trình Dart
Giới thiệu:
Dart là ngôn ngữ lập trình được phát triển bởi Google, hiện đã được chấp thuận
bởi tổ chức Ecma. Dart được sử dụng để xây dựng các loại ứng dụng: web, server, di
động (IOS và Android với công cụ Flutter).
Dart là ngôn ngữ hỗ trợ lập trình hướng đối tượng, cú pháp kiểu C, mã code Dart
có thể biên dịch thành JavaScript để chạy trên trình duyệt. Nó hỗ trợ những khái niệm
lập trình hiện đại như giao diện lớp, lớp trừu tượng ...
12
Từ ngôn ngữ lập trình Dart, Google giới thiệu SDK Futter để sử dụng ngôn ngữ
Dart phát triển ứng dụng di động chạy đa nền tảng (Một lần viết code build ra ứng
dụng cho IOS và Android).
Lý do sử dụng:
Vì Dart là một ngôn ngữ phổ biến hiện nay trong việc phát triển ứng dụng di động,
nó giúp tạo ra ứng dụng một cách nhanh chóng và đẹp mắt hơn.
Vì đây là ứng dụng hướng đến mọi người dùng nên việc dùng Dart sẽ giúp phát
triển ứng dụng đa nền tảng cho cả người dùng IOS và Android.
2.2.2. Flutter
Hình 2.2: Flutter SDK
Giới thiệu:
Đây là một UI Framework mã nguồn mở miễn phí được phát triển bởi Google và
phát hành vào tháng 5/2017. Flutter cho phép người dùng tạo ra native app (ứng
dụng di động gốc) với một codebase có giao diện chất lượng cao trên iOS và
Android trong thời gian ngắn nhất. Flutter hoạt động trên code có sẵn và được rất
nhiều lập trình viên và các tổ chức sử dụng.
Sự phát triển của Flutter đã giải quyết được bài toán thường gặp trong di động là
native PerFormance và Fast Development. Nếu như Code Native thuần chỉ đảm bảo
được Native PerFormance và React Native chỉ giải quyết được Fast Development
thì Flutter sẽ giải quyết được cả hai vấn đề trên.
Flutter gồm có 2 thành phần quan trọng là:
13
- Một SDK (Software Development Kit): Tổng hợp các công cụ giúp người
dùng phát triển ứng dụng. Nó bao gồm cả những công cụ biên dịch mã thành các
mã máy gốc dùng cho iOS và Android.
- Một Framework (UI Library based on widgets): Là tập hợp gồm nhiều thành
phần giao diện người dùng có thể tái sử dụng như slider, button,… giúp người
dùng có thể cá nhân hóa theo nhu cầu cá nhân.
Lý do sử dụng
Có thể sử dụng Flutter để tạo ra các ứng dụng di động vô cùng đơn giản mà không
cần phải code nhiều.
Với Flutter, Có thể tạo ra các hiệu ứng và đồ hoạ bất kỳ trên cả hai nền tảng là
Android và IOS.
Khi làm việc liên quan đến giao diện người dùng UI, Flutter giúp tạo ra sự thuận
tiện cho bạn cũng như thay đổi code và xem kết quả trong thời gian thực bởi nó sở
hữu Hot Reload.
2.2.3. Nodejs
Hình 2.3: Javascript runtime Nodejs
Giới thiệu:
NodeJS là mã nguồn mở chạy trên môi trường V8 JavaScript runtime (một trình
thông dịch Javascript chạy cực nhanh trên trình duyệt Chrome). NodeJS giúp các
nhà phát triển xây dựng các ứng dụng web một cách đơn giản và dễ dàng mở rộng.
14
NodeJS có thể được dùng để xây dựng các loại ứng dụng khác nhau như các ứng
dụng dòng lệnh, ứng dụng web, ứng dụng trò chuyện theo thời gian thực, máy
chủ Rest API … Tuy nhiên, NodeJS thường được dùng chủ yếu để xây dựng các
chương trình mạng như máy chủ web, tương tự như PHP, Java hoặc ASP.NET.
Vì đây là mã nguồn mở nên cho phép bạn sử dụng miễn phí và đồng thời được
liên tục được chỉnh sửa, cải tiến bởi cộng đồng các nhà phát triển toàn cầu.
Lý do sử dụng:
Nodejs chạy đa nền tảng phía Server, sử dụng kiến trúc hướng sự kiện Eventdriven, cơ chế non-blocking I/O làm cho nó nhẹ và hiệu quả.
Có thể chạy ứng dụng Nodejs ở bất kỳ đâu trên máy Mac – Window – Linux, hơn
nữa cộng đồng Nodejs rất lớn và hoàn toàn miễn phí.
Các ứng dụng NodeJS đáp ứng tốt thời gian thực và chạy đa nền tảng, đa thiết bị.
2.2.4. Expressjs
Hình 2.4: Expressjs framework
Giới thiệu:
Express là một framework nhỏ và tiện ích để xây dựng các ứng dụng web, cung
cấp một lượng lớn của tính năng mạnh mẽ để phát triển các ứng dụng web và
mobile. Nó rất dễ dàng để phát triển các ứng dụng nhanh dựa trên Nodejs cho các
ứng dụng Web. Các tính năng cơ bản của Express framework:
- Cho phép thiết lập các lớp trung gian để trả về các HTTP request.
15
- Xem thêm -