Tổng hợp bài giảng môn Phát triển ứng dụng đa nền tảng| Bài giảng môn Phát triển ứng dụng đa nền tảng| Trường Đại học Bách Khoa Hà Nội

Tổng hợp bài giảng môn Phát triển ứng dụng đa nền tảng| Bài giảng môn Phát triển ứng dụng đa nền tảng| Trường Đại học Bách Khoa Hà Nội. Tài liệu gồm 473 trang giúp bạn tham khảo, ôn tập và đạt kết quả cao trong kỳ thi sắp tới. Mời bạn đọc đón xem.

KẾ HOẠCH LÀM VIỆC
TUẦN 1
Viện Công nghệ thông tin và Truyền thông
2021
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
HANOI UNIVERSITY OF SCIENCE AND TECHNOLOGY
Mục lục
1. Yêu cu tng quan ca đề tài
2. Yêu cu chc năng và phi ch c năng
3. Cơ s d liu
4. Danh sách API
5. API đăng kí
6. Giao din đăng kí
7. API đăng nhp
8. Giao din đăng nhp
9. API đăng xut
10. Giao din đăng xut
2© SoICT 2021 Agile software development
Mục lục
1. Yêu cu tng quan ca đề tài
2. Yêu c u chc năng và phi chc năng
3. Cơ s d liu
4. Danh sách API
5. API đăng kí
6. Giao din đăng kí
7. API đăng nhp
8. Giao din đăng nhp
9. API đăng xut
10. Giao din đăng xut
3© SoICT 2021 Agile software development
Yêu cầu tổng quan của đề tài (1)
4© SoICT 2021 Agile software development
Phát trin mt h thng có client (ng dng đa nn tng),
h thng database server, chat server và service server
để xây dng li (bt chước mt phn giao din và mt
phn chc năng) mt ng dng ph biến vi người dùng
Vit Nam là Zalo.
Trong hc ky, ng dng được la chn là Zalo. Sinh
viên cn hoàn thành không nhng mt ng dng chy
trên di động mà còn xây dng (các) server h tr.
Yêu cầu tổng quan của đề tài (2)
5© SoICT 2021 Agile software development
Database lưu tr các bài viết, thông tin ca người dùng.
Chat server phc v ch c năng chat cho người dùng.
Service server cung c p các api để ng dng di động truy
cp.
Các push notification được thc hin bng Firebase (hoc
SV t phát trin).
Yêu cầu tổng quan của đề tài (2)
6© SoICT 2021 Agile software development
Lch trình gii thiu chc năng
theo tun:
Tun 1:
- Đăng nhp
- Đăng ký
- Đăng xut
Tun 2:
- Đăng bài
- Giao din Nht ký
- Sa bài
- Xóa bài
Tun 3:
- Báo cáo bài viết
- Bình lun bài
- Thích/b thích bài
Tun 4:
- Nhn tin
Tun 5:
- Tìm kiếm bn bè, tin nhn
- Danh sách bn bè
Yêu cầu tổng quan của đề tài (3)
7© SoICT 2021 Agile software development
Lch trình gii thiu chc năng
theo tun (tiếp):
Tun 6:
- Li mi kết bn
- Giao din trang ngườ i dùng
Tun 7:
- Chc năng chn tin nhn
- Chc năng n nht ký
Tun 8:
- Chc năng đổi mt khu
- Ly/sa thông tin cá nhân
Mục lục
1. Yêu cu tng quan ca đề tài
2. Yêu cu chc năng và phi chc năng
3. Cơ s d liu
4. Danh sách API
5. API đăng kí
6. Giao din đăng kí
7. API đăng nhp
8. Giao din đăng nhp
9. API đăng xut
10. Giao din đăng xut
8© SoICT 2021 Agile software development
Yêu cầu chức năng và phi chức năng
9© SoICT 2021 Agile software development
2.1 Yêu cu chc năng
2.2 Yêu cu phi chc năng
Yêu cầu chức năng (1)
10© SoICT 2021 Agile software development
H thng cn phát trin có các chc năng sau:
Cho phép người dùng đăng ký và đăng nhp vào ng
dng. Tên đăng nhp là s đin thoi, mt khu không
phi là s đin thoi, không cha các ký t đặ c bit.
Cho phép người dùng đăng bài mi vi mt chế độ duy
nht là public, s lượng t gii hn là 500 t.
Yêu cầu chức năng (2)
11© SoICT 2021 Agile software development
H thng cn phát trin có các chc năng sau:
Bài viết ca người dùng gii hn ti đa bn hình nh
HOC mt video.
Khi bài được đăng, bt k ai (tr khi b chn ho c không
phi bn bè) cũng có th xem, like, comment được. S
lượng t trong mt comment không vượt quá 500 t. Ví
d A ch xem được comment ca B (ti bài viết ca C) nếu
A và B là bn bè.
Mt tài khon có th kết bn được vi ti đa 500 bn.
Yêu cầu chức năng (3)
12© SoICT 2021 Agile software development
Mt bài viết bt k đều có chc năng cho phép ngườ i
khác báo cáo.
Mt người có th chn (block) và b chn (unblock) b t
k ai.
Vic chn mt người s khiến người đó không còn là bn
bè ca người thc hin thao tác chn.
Vic người A chn mt ngườ i s khiến bình lun, like ca
người đó b xóa khi trang cá nhân(k c khi kết bn li
s vn không thy các bình lun/ like này).
Yêu cầu chức năng (4)
Vic chn mt người s khiến hai người không th trao
đổi tin nhn vi nhau đượ c na. Nếu người b chn gi tin
nhn cho người kia thì s nhn được tin báo như Zalo.
Vic chn mt người s khiến hai người không xem được
trang cá nhân ca nhau.
Trong tab nht ký s hin th bài viết ca bn bè theo thi
gian. Không hin th bài ca nhng người b chn.
Ch bài viết không xóa bình lun đượ c.
13Agile software development© SoICT 2021
Yêu cầu chức năng (5)
Không xem được danh sách nhng người thích mt bài
viết (nhưng biết đượ c s lượng thích ca bài viết).
Không bày t cm xúc cho bình lun được.
Bình lun ch cha vă n b n, HTTP link và/hoc emoticon.
Các thông tin được push: có người thích bài viết ca bn,
có người bình lun bài viết ca bn, bn bè đăng bài viết
mi, có người gi tin nhn cho bn, có người mun kết
bn vi bn, tài khon đăng nhp trên máy khác
Ti nh có kích thướ c ti đa 4MB, không làm vic vi nh
động.
14Agile software development© SoICT 2021
Yêu cầu chức năng (6)
15Agile software development© SoICT 2021
Ti video có kích thước ti đa 10MB, thi lượng không
quá 10s và phi 1s tr lên.
Hoàn toàn có th sa, xóa bài viết. Nhưng mt bài viết
không cha ln ln c nh ln video.
Vic xem video và xem nh cá nhân, nh bài viết đều có
tri nghim ging như ng dng Zalo.
Mt khi bài viết được đă ng xong hoc sa xong hoc xóa
xong s chuyn v mt trang nào đó (theo đúng kch bn
ca Zalo).
Không có vic tham gia và to lp nhóm.
Không cho phép tag thành viên khác vào bài viết hoc
đon chat hoc bình lun.
Yêu cầu chức năng (7)
16Agile software development© SoICT 2021
ng dng cho phép vic chp nh và quay video trong
app. Ngoài ra vn có th chn các file nh và video có sn
trong máy.
ng dng cho phép chèn các emoticon trong bài viết
hoc bình lun hoc tin nhn chat bng cách nhp các ký
t đặc bit.
Không cho phép màn hình đăng nhp được cha thêm
nhiu tài khon.
Bài viết dài s có nút xem thêm để thu gn li. Nhn vào
“Xem thêm” s m rng nhưng sau đó không thu gn
được.
17Agile software development© SoICT 2021
Yêu cầu chức năng (7)
Tt c các nh upload lên s được hin th phn trung
tâm ca nh
Cho phép tìm kiếm trong màn hình trang ch ca ng
dng. Chng hn tìm kiếm v i t khóa “đội bóng Nam
Vit đá” thì vn ra được các kết qu v các bài viết có cha
các t khóa “đội bóng Vit Nam đá.
KHÔNG cho phép người dùng t xóa tài khon ca mình.
y dng trang qun tr để ngườ i qun tr có th d dàng
thêm/sa/xóa trc tiếp các d liu cn thiết: bài viết, tài
khon, bình lun, tin nh n ...
Yêu cầu chức năng và phi chức năng
18© SoICT 2021 Agile software development
2.1 Yêu cu chc năng
2.2 Yêu cu phi chc năng
Yêu cầu phi chức năng (1)
19Agile software development© SoICT 2021
Tt c d liu trước khi gi lên nên được kim tra phía
client trước
Tr ln đăng nhp đầu tiên, h thng cn có chc năng
cache d liu để to cm giác load ni dung cc k mau
chóng cho người dùng. Vic cache ch áp dng cho màn
trang ch.
Các animation cn phi bt chước theo Zalo
ng dng cn hot động tht trơ n tru, tránh vic b crash
đột ngt.
Mt khi ng dng gi yêu cu lên server, cn có màn
hình loading, sau đó mt khi không có d liu tr v
hoc d liu tr v không đúng định dng thì hin thông
báo v li kết ni.
Yêu cầu phi chức năng (2)
20Agile software development© SoICT 2021
Các d liu liên quan đến privacy ca ngườ i dùng cn
được mã hóa.
Khi tt mng ca đin thoi, nhp d liu và gi yêu cu
thì ng dng vn t xác thc input, nếu input đúng đắn
mi kim tra trng thái mng.
Các thông báo c n s thng nht vi nhau, chng hn
màn hình Login và màn hình Signup, nếu người dùng
nhp sai s đin thoi (tha s hoc thiếu s) thì đều
chung mt thông báo “S đin thoi không đúng định
dng” .
Các thông báo v vic ngườ i khác đã đăng nhp vào tài
khon trên máy khác cn được báo càng sm càng tt.
| 1/473

Preview text:

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
HANOI UNIVERSITY OF SCIENCE AND TECHNOLOGY
KẾ HOẠCH LÀM VIỆC TUẦN 1
Viện Công nghệ thông tin và Truyền thông 2021 Mục lục 1.
Yêu cầu tổng quan của đề tài 2.
Yêu cầu chức năng và phi chức năng 3. Cơ sở dữ liệu 4. Danh sách API 5. API đăng kí 6. Giao diện đăng kí 7. API đăng nhập 8. Giao diện đăng nhập 9. API đăng xuất 10. Giao diện đăng xuất © SoICT 2021 Agile software development 2 Mục lục 1.
Yêu cầu tổng quan của đề tài 2.
Yêu cầu chức năng và phi chức năng 3. Cơ sở dữ liệu 4. Danh sách API 5. API đăng kí 6. Giao diện đăng kí 7. API đăng nhập 8. Giao diện đăng nhập 9. API đăng xuất 10. Giao diện đăng xuất © SoICT 2021 Agile software development 3
Yêu cầu tổng quan của đề tài (1)
Phát triển một hệ thống có client (ứng dụng đa nền tảng),
hệ thống database server, chat server và service server
để xây dựng lại (bắt chước một phần giao diện và một
phần chức năng) một ứng dụng phổ biến với người dùng Việt Nam là Zalo. –
Trong học kỳ này, ứng dụng được lựa chọn là Zalo. Sinh
viên cần hoàn thành không những một ứng dụng chạy
trên di động mà còn xây dựng (các) server hỗ trợ. © SoICT 2021 Agile software development 4
Yêu cầu tổng quan của đề tài (2)
Database lưu trữ các bài viết, thông tin của người dùng. –
Chat server phục vụ chức năng chat cho người dùng. –
Service server cung cấp các api để ứng dụng di động truy cập. –
Các push notification được thực hiện bằng Firebase (hoặc SV tự phát triển). © SoICT 2021 Agile software development 5
Yêu cầu tổng quan của đề tài (2)
Lịch trình giới thiệu chức năng theo tuần: Tuần 1: Tuần 3: - Đăng nhập - Báo cáo bài viết - Đăng ký - Bình luận bài - Đăng xuất - Thích/bỏ thích bài Tuần 2: Tuần 4: - Đăng bài - Nhắn tin - Giao diện Nhật ký Tuần 5: - Sửa bài
- Tìm kiếm bạn bè, tin nhắn - Xóa bài - Danh sách bạn bè © SoICT 2021 Agile software development 6
Yêu cầu tổng quan của đề tài (3)
Lịch trình giới thiệu chức năng theo tuần (tiếp): Tuần 6: Tuần 8: - Lời mời kết bạn
- Chức năng đổi mật khẩu
- Giao diện trang người dùng
- Lấy/sửa thông tin cá nhân Tuần 7:
- Chức năng chặn tin nhắn - Chức năng ẩn nhật ký © SoICT 2021 Agile software development 7 Mục lục 1.
Yêu cầu tổng quan của đề tài 2.
Yêu cầu chức năng và phi chức năng 3. Cơ sở dữ liệu 4. Danh sách API 5. API đăng kí 6. Giao diện đăng kí 7. API đăng nhập 8. Giao diện đăng nhập 9. API đăng xuất 10. Giao diện đăng xuất © SoICT 2021 Agile software development 8
Yêu cầu chức năng và phi chức năng 2.1 Yêu cầu chức năng
2.2 Yêu cầu phi chức năng © SoICT 2021 Agile software development 9
Yêu cầu chức năng (1)
Hệ thống cần phát triển có các chức năng sau: •
Cho phép người dùng đăng ký và đăng nhập vào ứng
dụng. Tên đăng nhập là số điện thoại, mật khẩu không
phải là số điện thoại, không chứa các ký tự đặc biệt. •
Cho phép người dùng đăng bài mới với một chế độ duy
nhất là public, số lượng từ giới hạn là 500 từ. © SoICT 2021 Agile software development 10
Yêu cầu chức năng (2)
Hệ thống cần phát triển có các chức năng sau: •
Bài viết của người dùng giới hạn tối đa bốn hình ảnh HOẶC một video. •
Khi bài được đăng, bất kỳ ai (trừ khi bị chặn hoặc không
phải bạn bè) cũng có thể xem, like, comment được. Số
lượng từ trong một comment không vượt quá 500 từ. Ví
dụ A chỉ xem được comment của B (tại bài viết của C) nếu A và B là bạn bè. •
Một tài khoản có thể kết bạn được với tối đa 500 bạn. © SoICT 2021 Agile software development 11
Yêu cầu chức năng (3)
Một bài viết bất kỳ đều có chức năng cho phép người khác báo cáo. •
Một người có thể chặn (block) và bỏ chặn (unblock) bất kỳ ai. •
Việc chặn một người sẽ khiến người đó không còn là bạn
bè của người thực hiện thao tác chặn. •
Việc người A chặn một người sẽ khiến bình luận, like của
người đó bị xóa khỏi trang cá nhân(kể cả khi kết bạn lại
sẽ vẫn không thấy các bình luận/ like này). © SoICT 2021 Agile software development 12
Yêu cầu chức năng (4)
Việc chặn một người sẽ khiến hai người không thể trao
đổi tin nhắn với nhau được nữa. Nếu người bị chặn gửi tin
nhắn cho người kia thì sẽ nhận được tin báo như Zalo. •
Việc chặn một người sẽ khiến hai người không xem được trang cá nhân của nhau. •
Trong tab nhật ký sẽ hiển thị bài viết của bạn bè theo thời
gian. Không hiển thị bài của những người bị chặn. •
Chủ bài viết không xóa bình luận được. © SoICT 2021 Agile software development 13
Yêu cầu chức năng (5)
Không xem được danh sách những người thích một bài
viết (nhưng biết được số lượng thích của bài viết). •
Không bày tỏ cảm xúc cho bình luận được. •
Bình luận chỉ chứa văn bản, HTTP link và/hoặc emoticon. •
Các thông tin được push: có người thích bài viết của bạn,
có người bình luận bài viết của bạn, bạn bè đăng bài viết
mới, có người gửi tin nhắn cho bạn, có người muốn kết
bạn với bạn, tài khoản đăng nhập trên máy khác… •
Tải ảnh có kích thước tối đa 4MB, không làm việc với ảnh động. © SoICT 2021 Agile software development 14
Yêu cầu chức năng (6)
Tải video có kích thước tối đa 10MB, thời lượng không
quá 10s và phải 1s trở lên. •
Hoàn toàn có thể sửa, xóa bài viết. Nhưng một bài viết
không chứa lẫn lộn cả ảnh lẫn video. •
Việc xem video và xem ảnh cá nhân, ảnh bài viết đều có
trải nghiệm giống như ứng dụng Zalo. •
Một khi bài viết được đăng xong hoặc sửa xong hoặc xóa
xong sẽ chuyển về một trang nào đó (theo đúng kịch bản của Zalo). •
Không có việc tham gia và tạo lập nhóm. •
Không cho phép tag thành viên khác vào bài viết hoặc
đoạn chat hoặc bình luận. © SoICT 2021 Agile software development 15
Yêu cầu chức năng (7)
Ứng dụng cho phép việc chụp ảnh và quay video trong
app. Ngoài ra vẫn có thể chọn các file ảnh và video có sẵn ở trong máy. •
Ứng dụng cho phép chèn các emoticon trong bài viết
hoặc bình luận hoặc tin nhắn chat bằng cách nhập các ký tự đặc biệt. •
Không cho phép màn hình đăng nhập được chứa thêm nhiều tài khoản. •
Bài viết dài sẽ có nút xem thêm để thu gọn lại. Nhấn vào
“Xem thêm” sẽ mở rộng nhưng sau đó không thu gọn được. © SoICT 2021 Agile software development 16
Yêu cầu chức năng (7)
Tất cả các ảnh upload lên sẽ được hiển thị ở phần trung tâm của ảnh •
Cho phép tìm kiếm trong màn hình trang chủ của ứng
dụng. Chẳng hạn tìm kiếm với từ khóa “đội bóng Nam
Việt đá” thì vẫn ra được các kết quả về các bài viết có chứa
các từ khóa “đội bóng Việt Nam đá”.
KHÔNG cho phép người dùng tự xóa tài khoản của mình. •
Xây dựng trang quản trị để người quản trị có thể dễ dàng
thêm/sửa/xóa trực tiếp các dữ liệu cần thiết: bài viết, tài
khoản, bình luận, tin nhắn ... © SoICT 2021 Agile software development 17
Yêu cầu chức năng và phi chức năng 2.1 Yêu cầu chức năng
2.2 Yêu cầu phi chức năng © SoICT 2021 Agile software development 18
Yêu cầu phi chức năng (1)
Tất cả dữ liệu trước khi gửi lên nên được kiểm tra ở phía client trước •
Trừ lần đăng nhập đầu tiên, hệ thống cần có chức năng
cache dữ liệu để tạo cảm giác load nội dung cực kỳ mau
chóng cho người dùng. Việc cache chỉ áp dụng cho màn trang chủ. •
Các animation cần phải bắt chước theo Zalo
Ứng dụng cần hoạt động thật trơn tru, tránh việc bị crash đột ngột. •
Một khi ứng dụng gửi yêu cầu lên server, cần có màn
hình loading, sau đó một khi không có dữ liệu trả về
hoặc dữ liệu trả về không đúng định dạng thì hiện thông báo về lỗi kết nối. © SoICT 2021 Agile software development 19
Yêu cầu phi chức năng (2)
Các dữ liệu liên quan đến privacy của người dùng cần được mã hóa. •
Khi tắt mạng của điện thoại, nhập dữ liệu và gửi yêu cầu
thì ứng dụng vẫn tự xác thực input, nếu input đúng đắn
mới kiểm tra trạng thái mạng. •
Các thông báo cần có sự thống nhất với nhau, chẳng hạn
ở màn hình Login và màn hình Signup, nếu người dùng
nhập sai số điện thoại (thừa số hoặc thiếu số) thì đều có
chung một thông báo “Số điện thoại không đúng định dạng” . •
Các thông báo về việc người khác đã đăng nhập vào tài
khoản trên máy khác cần được báo càng sớm càng tốt. © SoICT 2021 Agile software development 20