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

Đồ án tốt nghiệp khoa đa phương tiện, học viện bưu chính viễn thông (4)

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 (1.61 MB, 32 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA ĐA PHƯƠNG TIỆN

BÁO CÁO
THỰC TẬP TỐT NGHIỆP
PHÁT TRIỂN ỨNG DỤNG DỰ BÁO THỜI TIẾT
TRÊN NỀN TẢNG DI ĐỘNG
Đơn vị thực tập

: Công ty TNHH Sun Asterisk

Người hướng dẫn
Tên sinh viên
Mã sinh viên
Giảng viên hướng dẫn

:
:
:
:

Viet Nam
Nguyễn Minh Tuấn
Phạm Văn Liên
B17DCPT116
ThS. Nguyễn Thị Thanh Tâm

Hà nội, 2021
1



CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc

CÔNG TY TNHH
SUN ASTERISK VIET NAM

PHIẾU NHẬN XÉT ĐÁNH GIÁ THỰC TẬP TỐT NGHIỆP
Họ và tên sinh viên thực tâp
Mã sinh viên
Đơn vị thực tập
Thời gian thực tập

: Phạm Văn Liên
: B17DCPT116
: Công ty TNHH Sun Asterisk Viet Nam
: Từ ngày 19/07/2021 đến ngày 31/08/2021

NHẬN XÉT CỦA CƠ SỞ THỰC TẬP
1. Chấp hành nội quy và quy định của cơ quan:
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
2. Ý thức học tập:
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
3. Quan hệ, giao tiếp tại đơn vị:
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………

4. Điểm: … (Bằng chữ: ……)

Xác nhận của cơ quan thực tập
(Ký, ghi rõ họ tên và đóng dấu)

Hà nội, ngày
tháng
năm 2021
Người đánh giá
(Ký và ghi rõ họ tên)

2


HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH
VIỄN THƠNG
KHOA ĐA PHƯƠNG TIỆN

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập Tự do Hanh phúc

ĐÁNH GIÁ KẾT QUẢ THỰC TẬP TỐT NGHIỆP
(Thời gian thực tập: Từ ngày

đến ngày

)

Họ và tên sinh viên : Phạm Văn Liên

Mã sinh viên
: B17DCPT116
Lớp
: D17PTDPT2
NỘI DUNG ĐÁNH GIÁ
1. Chấp hành kỷ luật: (Tốt, Trung bình, hoặc Yếu)

2. Ý thức học tập: (Tốt, Trung bình, hoặc Yếu)

3. Quan hệ, giao tiếp: (Tốt, Trung bình, hoặc Yếu)

4. Điểm ((Thang điểm 10)
Các ý kiến khác (nếu có:
Ngày tháng năm 20….
Giáo viên hướng dẫn thực tập
(Ký và ghi rõ họ tên)

3


LỜI CẢM ƠN
Để hoàn thành báo cáo thực tập tốt nghiệp này, em xin tỏ lịng biết ơn đến thầy/cơ
trong khoa Đa phương tiện, Học viện Cơng nghệ Bưu chính Viễn thơng đã tận tình truyền
đạt kiến thức trong những năm em học tập. Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến
giáo viên ThS. Nguyễn Thị Thanh Tâm đã hướng dẫn em trong suốt quá trình viết báo cáo
và thực tập tốt nghiệp. Em chân thành cảm ơn Ban giám đốc công ty TNHH Sun Arsterisk
Viet Nam cùng tồn thể anh/chị trong nhóm phát triển ứng dụng di động đã cho phép và
tạo điều kiện thuận lợi để em thực tập tại công ty.
Với vốn kiến thức được tiếp thu trong quá trình học tập, thực tập khơng chỉ là nền
tảng cho q trình nghiên cứu khóa luận mà còn là hành trang quý báu để em bước vào

đời một cách vững chắc và tự tin. Cuối cùng em kính chúc q thầy, cơ dồi dào sức khỏe
và thành cơng trong sự nghiệp cao q. Đồng kính chúc các cô, chú, anh, chị trong công
ty TNHH Sun Asterisk luôn dồi dào sức khỏe, đạt được nhiều thành công tốt đẹp trong
công việc.

4


MỤC LỤC
LỜI CẢM ƠN__________________________________________________________________4
MỤC LỤC_____________________________________________________________________5
PHẦN A: ĐỀ CƯƠNG THỰC TẬP________________________________________________6
PHẦN B : GIỚI THIỆU ĐƠN VỊ THỰC TẬP_______________________________________8
I. Chức năng, nhiệm vụ______________________________________________________________8
II. Cơ cấu tổ chức___________________________________________________________________9
III. Các lĩnh vực hoạt động___________________________________________________________11

PHẦN C : NỘI DUNG THỰC TẬP_______________________________________________12
I. Giới thiệu chung_________________________________________________________________12
II. Nội dung thực tập________________________________________________________________13

PHẦN D : KẾT LUẬN__________________________________________________________28
I. Kết quả đạt được_________________________________________________________________28
II.Hướng phát triển_________________________________________________________________29
III. Bài học kinh nghiệm_____________________________________________________________30

TÀI LIỆU THAM KHẢO_______________________________________________________31

5



PHẦN A: ĐỀ CƯƠNG THỰC TẬP
ĐỀ TÀI: Phát triển ứng dụng di động trên nền tảng hệ điều hành Android.
Nội dung công việc:
Công việc 1: Khảo sát sơ bộ về mơi trường làm việc nơi mình thực tập.
Cơng việc 2: Tìm hiểu các kiến thức cơ bản về phát triển ứng dụng di động trên nền tảng
Android.
Công việc 3: Tham gia dự án và tìm hiểu u cầu dự án.
Cơng việc 4: Phát triển và hoàn thiện dự án được giao.
Cơng việc 5: Báo cáo thực tập.
Lập trình thực hiện:
TT

Nội dung thực tập

Thời gian

1

Làm quen với môi trường làm việc, tìm hiểu về cơng

Từ ngày 19/7 đến ngày 24/7

ty: cơ cấu tổ chức, chức năng, nhiệm vụ...
2

Tìm hiểu quy trình phát triển ứng dụng trên nền tảng

Từ ngày 24/7 đến ngày 28/7


Android
3

Tìm hiểu về những kiến thức cơ bản trong phát triển

Từ ngày 29/7 đến ngày 10/8

ứng dụng Android (Ngôn ngữ lập trình, kỹ thuật lập
trình, mơ hình, IDE)
4

Tìm hiểu yêu cầu đề tài dự án thực tập

Từ ngày 11/8 đến ngày 13/8

5

Phân tích thiết kế dự án (Thiết kế UI, UX, cấu trúc

Từ ngày 13/8 đến ngày 17/8

dự án)
6

Chú

Tiến hành thực hiện phát triển và hồn thiện dự án

thích:


………………….

Từ ngày 18/8 đến ngày 31/8

………………….………………….………………….………………….

…………
………………….………………….………………….………………….………………….………………….……

6


Hà Nội, ngày 19 tháng 07 năm 2021
SINH VIÊN

GIÁO VIÊN HƯỚNG DẪN

Liên
Phạm Văn Liên

7


PHẦN B: GIỚI THIỆU ĐƠN VỊ THỰC TẬP
I.

Chức năng, nhiệm vụ

Công ty TNHH Sun Asterisk Viet Nam (viết tắt Sun*) được biết đến là một “Digital
Creative Studio” được thành lập nhằm mục đích phát triển các sản phẩm cơng nghệ như:

Ứng dụng di động, Website, giải pháp công nghệ,... cho các đối tượng khách hàng trong
khu vực Chấu Á cũng như tồn thế giới.
Đứng ở điểm giao thoa giữa cơng nghệ, kinh doanh và giáo dục, Sun* hy vọng sẽ mang
lại sự thay đổi tích cực cho tồn xã hội.
Tầm nhìn: Tạo ra thế giới bình đẳng nơi mỗi người đều có cơ hội mang lại những giá trị
“Awesome”.
Sứ mệnh: Cùng những con người đam mê thử thách, Sun* tạo ra thay đổi tích cực cho xã
hội thơng qua các sản phẩm và lĩnh vực kinh doanh.

8


II.

Cơ cấu tổ chức

Công Ty TNHH Sun Asterisk Viet Nam được thành lập từ năm 2012 là một công ty
phần mềm với toàn bộ vốn đầu tư đến từ Nhật Bản, một Digital Creative Studio hiện có
hơn 1300 thành viên tại 6 thành phố ở 4 quốc gia Châu Á (Nhật Bản, Việt Nam,
Singapore, Bangladesh). Tại Việt Nam, Sun* có 3 trụ sở ở 3 thành phố lớn là Hà Nội, Đà
Nẵng, Hồ Chí Minh. Tại thời điểm hiện tại Sun* Việt Nam đang hoạt động theo cơ cấu
như sơ đồ bên dưới.

Ban Giám Đốc

Khối Văn Phòng

Khối Kinh Doanh

Khối Phát Triển


Trong đó:
 Ban Giám Đốc: Là ban lãnh đạo có chức năng, nhiệm vụ thiết lập chính sách
cho cơng ty và giám sát các quản lý các phòng ban bên dưới, đưa ra các quyết
định về vấn đề lớn của cơng ty.
 Khối Văn Phịng: Bao gồm: Hành chính nhân sự và Kế tốn tài chính có chức
năng, nhiệm vụ xử lý các vấn đề liên quan đến con người, nhân sự và tài
chính, chính sách phúc lợi của nhân viên trong công ty
 Khối Kinh Doanh: Khối này đảm nhiệm các công việc liên quan đến quản lý
kinh doanh, khách hàng, đưa ra các kế hoạch phát triển cho công ty trong
từng giai đoạn. Đảm bảo doanh nghiệp luôn phát triển đúng hướng.
 Khối Phát Triển: Bao gồm: Đội phát triển (Developer), Đội kiểm thử (Tester,
QA), Đội bảo mật (Sercurity) mang chức năng xây dựng, phát triển các dự án
do công ty đảm nhiệm. Đảm bảo chất lượng và tiến độ dự án đúng như đã
thỏa thuận với bên phía khách hàng.

9


Tất cả các khối, ban đều có liên kết chặt chẽ với nhau thành một thể thống nhất để
tạo điều kiện tốt nhất cho việc quản lý và đưa công ty phát triển theo chiến lược đề ra.

10


III. Các lĩnh vực hoạt động
Là một Digital Creative Studio, Sun* luôn đề cao tinh thần làm chủ sản phẩm, tư
duy sáng tạo trong mỗi dự án để mang đến những trải nghiệm "Awesome" nhất cho enduser. Hiện tại, công ty đang phát triển hai dòng dịch vụ là "Creative & Engineering" và
"Talent Platform” cụ thể:
Creative & Engineering: Trong lĩnh vực Creative & Engineering, hơn 1500 thành

viên bao gồm các kỹ sư, nhà thiết kế, và chuyên viên tư vấn chiến lược. Sun* liên tục
tham gia tư vấn cho khách hàng trên nhiều lĩnh vực khác nhau như phát triển sản phẩm
công nghệ, hoạch định chiến lược kinh doanh, hỗ trợ Chuyển đổi số (Digital
Transformation) cho các doanh nghiệp lớn. Lấy người dùng làm trung tâm là cốt lõi của
tư duy thiết kế. Khi định hình ý tưởng cho mỗi sản phẩm, Sun* đã coi trọng việc “thiết kế
lấy người dùng làm trung tâm”. Bắt đầu từ khi nghiên cứu sản phẩm, team cần giải quyết
được những câu hỏi như: sản phẩm có thực sự giải quyết được vấn đề của end-user
khơng, giá trị cần cung cấp được là gì, người dùng sử dụng có cảm thấy thoải mái với
những trải nghiệm này…
Talent Platform: Sun* thấu hiểu rằng nguồn nhân lực dồi dào và tài năng sẽ là yếu
tố quan trọng để giúp thực hiện hóa những hồi bão lớn trong việc kiến tạo thế giới bằng
những giải pháp công nghệ. Không chỉ tạo ra môi trường học tập, phát triển bản thân sôi
nổi dành cho đội ngũ nhân viên cơng ty, Sun* cịn tạo ra khơng ít những giá trị từ hệ sinh
thái đào tạo nguồn nhân lực thông qua việc kết hợp với nhiều tổ chức uy tín, lớn mạnh tại
Việt Nam và trên thế giới. Cụ thể, hiện tại Sun* tại Việt Nam có liên kết với một số
trường đại học về công nghệ như:
- Đại học Bách Khoa Hà Nội
- Đại học Công nghệ - Đại học Quốc gia Hà Nội
- Đại học Công nghệ thông tin- Đại học Quốc gia Hồ Chí Minh
- Đại học Bách Khoa Đà Nẵng
Nhằm đào tạo, bồi dưỡng chất lượng cho nguồn lực công nghệ thông tin chất lượng cao
cho công ty cũng như cho xã hội.

11


PHẦN C: NỘI DUNG THỰC TẬP
I.

Giới thiệu chung


Trong thời gian thực tập từ ngày 19/07/2021 đến ngày 31/08/2021, em tham gia thực
tập dưới hình thức online tại cơng ty TNHH Sun Asterisk Viet Nam với chủ đề kiến thức
về lập trình ứng dụng di động trên nền tảng điện thoại Android. Trong suốt q trình tham
gia thực tập tại cơng ty, vận dụng những kiến thức đã học trên trường trong 4 năm qua
cùng với sự giúp đỡ của giáo viên hướng dẫn và anh/chị trong đội phát triển của cơng ty
Sun* em đã tham gia và hồn thành khóa thực tập của mình với một số nội dung theo
từng cơng việc được lên kế hoạch theo đề cương đó là:
Công việc 1: Khảo sát sơ bộ về môi trường làm việc nơi mình thực tập.
Cơng việc 2: Tìm hiểu các kiến thức cơ bản về phát triển ứng dụng di động trên nền tảng
Android.
Công việc 3: Tham gia và phát triển dự án do công ty giao cho sinh viên thực tập.

12


II.

Nội dung thực tập

1. Kế hoạch công việc và cách thức thực hiện.
 Cơng việc 1: Tìm hiểu tổ chức (Từ 19/07/2021 – 24/07/2021)
Nội dung:
- Tham gia buổi seminar One Day dành cho nhân viên mới vào để giới thiệu sơ lược về
cơng ty và các chính sách, quy định tại cơng ty.
- Tìm hiểu thơng tin sơ lược về công ty TNHH Sun Asterisk Viet Nam.
- Tham gia đội phát triển ứng dụng di dộng thuộc Viet Nam Education Unit (VEU) với
chuyên môn về phát triển ứng dụng trên nền tảng Android
Kết quả đạt được:
1.1: Nắm được các thông tin cơ bản về công ty bao gồm:

+ Lịch sử hình thành: Cơng Ty TNHH Sun Asterisk Viet Nam (tiền thân là
Framgia) được thành lập từ năm 2012 là một cơng ty phần mềm với tồn bộ vốn đầu tư
đến từ Nhật Bản, một Digital Creative Studio hiện có hơn 1300 thành viên tại 6 thành
phố ở 4 quốc gia Châu Á (Nhật Bản, Việt Nam, Singapore, Bangladesh). Tại Việt Nam,
Sun* có 3 trụ sở ở 3 thành phố lớn là Hà Nội, Đà Nẵng, Hồ Chí Minh
+ Ý nghĩa tên gọi công ty: Tên công ty Sun Asterisk (viết tắt Sun*) chứa đựng ước
mơ và mục tiêu kiến tạo nên thật nhiều những điều tốt đẹp cho xã hội của tập thể những
chiến binh mặt trời.
Từ “Sun” trong tên cơng ty chính là “Mặt trời”. Đây chính là nền tảng nuôi dưỡng
mọi sự sống trên Trái Đất. Chúng tôi hướng tới trở thành nền tảng mạnh nhất dùng ánh
sáng của mình để chiếu sáng và ni dưỡng các “mầm ươm” của những người thực hiện
công cuộc đổi mới (innovator) cũng như những dịch vụ tiên tiến mang tính cải cách. Bằng
việc trở thành nền tảng giúp xây dựng các giá trị “Awesome”, Sun* sẽ đánh thức nhiệt
huyết sáng tạo mà mỗi con người chúng ta đều mang trong mình ngay từ khi mới sinh ra
và tạo ra “thế giới bình đẳng nơi mỗi người đều có cơ hội mang lại những giá trị
“Awesome””.
* - "Asterisk” là biểu tượng thể hiện cho phép nhân trong nhiều ngơn ngữ lập trình.
Vượt qua rào cản của các doanh nghiệp startup và các doanh nghiệp lớn, tập hợp và xây
13


dựng đội ngũ team thích hợp nhất để xây dựng các giá trị “Awesome”, tạo ra thay đổi tích
cực cho xã hội thông qua việc thúc đẩy chuyển đổi số (DX) các ngành công nghiệp bằng
sự kết hợp giữa Sự vật - Sự việc - Con người đam mê thử thách nghiêm túc giải quyết các
vấn đề xã hội.
+ Cơ cấu tổ chức (thơng tin có trong phần B của bài báo cáo).
+ Chức năng, nhiệm vụ (thơng tin có trong phần B của bài báo cáo).
+ Lĩnh vực hoạt động(thơng tin có trong phần B của bài báo cáo).
+ Các phịng ban, đội nhóm trong cơng ty (thơng tin khơng được cung cấp bên
ngồi).

+ Các quy định, cam kết trong q trình thực tập tại cơng ty.
1.2: Nắm được nhiệm vụ của bản thân trong quá trình thực tập tại Sun*:
+ Tìm hiểu khối kiến thức theo lộ trình do công ty đưa ra
+ Thực hiện các bài test sau khi hoàn thành 1 đầu mục kiến thức
+ Tham gia chia sẻ kiến thức, hỗ trợ các thành viên khác trong team
1.3: Hoàn thành tham gia team đội Android Developer thuộc VEU của cơng ty.
 Cơng việc 2: Tìm hiểu các kiến thức cơ bản về phát triển ứng dụng di động
trên nền tảng Android (từ ngày 24/07/2021 đến ngày 10/08/2021)
Nội dung:
- Tìm hiểu quy trình phát triển ứng dụng trên nền tảng Android.
- Tìm hiểu về Kotlin, ngơn ngữ lập trình ứng dụng Android.
- Tìm hiểu về cơng cụ Android Studio để phát triển các dự án Android.
- Tìm hiểu về mơ hình MVP (Model, View, Presenter), MVVM (Model, View,
ViewModel) để phát triển dự án theo cấu trúc dự án chuẩn do cơng ty đưa ra.
- Tìm hiểu về Github công cụ quản lý source code trong dự án.

14


Kết quả đạt được:
2.1: Học được những kiến thức về quy trình từ khi bắt đầu đến khi hồn thiện một dự
án đang được áp dụng tại công ty Sun*. Quy trình gồm các bước:
Bước 1: Tìm hiểu yêu cầu ứng dụng .
Bước 2: Xây dựng các chức năng có trong ứng dụng.
Bước 3: Thiết kế Ứng dụng, xây dựng prototype.
Bước 4: Phát triển song song với kiểm thử và sửa lỗi.
Bước 5: Kiểm tra lại ứng dụng sau khi hoản thành phát triển.
Bước 6: Phát hành ứng dụng.
2.2: Hiểu những kiến thức mới liên quan đến ngôn ngữ lập trình Kotlin:
+ Định nghĩa: Kotlin là một loại ngơn ngữ lập trình dạng tĩnh và được sử dụng

dành cho những ứng dụng thuộc dạng đa nền tảng hiện đại. Hiện nay, người ta đã chính
thức phát hành phiên bản 1.0. Kotlin và nó được tạo ra cũng như phát triển bởi các đội
ngũ lập trình nằm trong nhóm JetBrains.
Kotlin là một trong những ngôn ngữ thông dụng khi phát triển với Android, được
thiết kế với khả năng tương tác cùng với ngơn ngữ lập trình Java cũng như có thể khai
thác những gì có ở bên trong Java Class Library để bổ sung lẫn nhau trong một dự án.
+ Ưu điểm: Code ngắn gọn và dễ hiểu, có khả năng tương tác cao, Kotlin được hỗ
trợ ưu tiên hỗ trong Android Studio và IDE
+ Hạn chế: Chưa có kiểu Aliases, Các mặc định class trong Kotlin là final, Cộng
đồng hỗ trợ hạn chế, không tự ép kiểu dữ liệu
+ Học thêm các cú pháp chương trình viết bằng Kotlin, syntax, biến, vòng lặp, ...

15


2.3: Hiểu được mơ hình code phát triển một dự án thực tế với mơ hình MVP và
MVVM:
+ Mơ hình MVP (Model, View, Presenter):

Hình 1.1: Mơ hình MVP trong Android
MVP là một mơ hình kiến trúc hướng giao diện người dùng, được thiết kế để tạo
thuận lợi cho việc kiểm thử đơn vị (unit testing) và tăng tính tách biệt giữa tầng dữ liệu và
tầng hiển thị dữ liệu trong mơ hình MVC (Model, View, Controller). Đây là mơ hình đang
được áp dụng khá nhiều trong ứng dụng Android.
Mơ hình MVP cho phép tách tầng trình diễn (Presenter) ra khỏi tầng dữ liệu
(Model), vì vậy tương tác với giao diện được tách biệt với cách chúng ta biểu diễn nó trên
màn hình (View), hay nói cách khác, tất cả logic sẽ được tách ra và đưa vào tầng trình
diễn (Presenter). Thiết kế lý tưởng nhất là với cùng một logic được áp dụng cho nhiều
View khác nhau và hoán đổi được cho nhau.
Có rất nhiều biến thể cũng như phương pháp triển khai MVP, lập trình viên có thể

điều chỉnh mơ hình này tùy theo nhu cầu và cách họ cảm thấy thoải mái hơn. Nhưng tất cả
vẫn phải dựa vào các quy tắc chung trên Model - View - Prensenter.
Model: Dùng để mơ tả, chứa dữ liệu . Ví dụ ta có model Animal, Bike …
View: Thường được implement bởi một Activity , Fragment, View ... tùy thuộc vào
16


cấu trúc ứng dụng, View này sẽ chứa một thuộc tính là một lớp Presenter.
Presenter: Tầng trình diễn có trách nhiệm như một cầu nối giữa View và Model.
Nó lấy dữ liệu từ Model, định dạng và trả về cho View. Nhưng khơng giống như
MVC, nó cũng quyết định những gì sẽ xảy ra khi người dùng tương tác với View,
hay nói cách khác nó hàm chứa logic ứng dụng. Lý tưởng nhất Presenter nên được
cung cấp bởi một Dependency Injection framewok như Dagger, nhưng trong
trường hợp ứng dụng không sử dụng một thư viện hay framework như vậy ta hồn
tồn có thể tạo ra các đối tượng Presenter.
Lý do nên sử dụng MVP để phát triển ứng dụng Android:
MVP phân chia các lớp một cách rành mạch so với MVC (Model, View,
Controller). Trong mơ hình MVC, View và Model có thể tương tác lẫn nhau tức là lập
trình viên thường có xu hướng đưa nhiều các xử lý bên ngoài vào View. Hệ quả là View
sẽ chứa rất nhiều các xử lý liên quan đến business logic và data logic. Và như vậy chúng
ta cần phải phân tách 2 lớp xử lý này một cách rành mạch giống như MVP đã làm. Trong
quá trình phát triển phần mềm, View là lớp mà có khả năng sẽ thay đổi nhiều nhất nên
việc phân tách sẽ giúp thay đổi View một cách độc lập mà không ảnh hướng đến các
thành phần khác.
Với mơ hình MVP, việc viết Unit Tests sẽ đơn giản hơn rất nhiều. Bởi vì giờ đây
Presenter và Model layer sẽ thuần là code Kotlin hoặc Java xử lý logic Có thể giúp giảm
thiểu lượng code trong ứng dụng cũng như gộp các xử lý, logic trong ứng dụng vào cùng
một nơi.

17



+ Mơ hình MVVM (Model , View, ViewModel):

Hình 1.2: Mơ hình MVVM
Định nghĩa:
MVVM (Model, View, ViewModel) khơng phải là framework hay thư viện, api…
nó chỉ đơn thuần là hướng dẫn lập trình viên định nghĩa cấu trúc ứng dụng của họ.
MVVM được phát triển dựa trên kiến trúc MVP.
Mơ hình này cho phép tách biệt dữ liệu (Model), mã thực thi (logic hay
ViewModel) và giao diện người dùng (View). Trong mơ hình MVVM, các điều khiển
(control) như Button, ListView, SearchBar, v.v. không thể kết buộc trực tiếp đến dữ liệu
mà phải thơng qua thuộc tính Command – là một thuộc tính kiểu ICommand.
Cấu trúc:
View: Thành phần giao diện của ứng dụng. Tương tự như ở trong mơ hình MVC,
View là thành phần duy nhất mà người dùng có thể tương tác được trong chương
trình, nó chính là thành phần mơ tả dữ liệu. Một điểm khác biệt so với các mơ hình

18


khác là View trong mơ hình này tích cực hơn. Nó có khả năng thực hiện các hành
vi và phản hồi lại người dùng thơng qua tính năng là: binding, command.
Model: Cũng tương tự như trong mơ hình MVC. Model là các đối tượng giúp truy
xuất và thao tác trên dữ liệu thực sự.
ViewModel: Lớp trung gian giữa View và Model. ViewModel có thể được xem là
thành phần thay thế cho Controller trong mơ hình MVC. Nó chứa các mã lệnh cần
thiết để thực hiện data binding, command, đảm nhận công việc đồng bộ dữ liệu từ
model lên View. Mối quan hệ giữa View và View-Model là View sẽ được ánh xạ
tới View-Model nhưng View-Model lại không biết thông tin gì về View. Nó được

ẩn dấu qua cách sử dụng Data-binding và cơ chế của mơ hình Observer. Một ViewModel có thể được ánh xạ từ nhiều View.
Ưu, nhược điểm của mơ hình MVVM:
Ưu điểm:
+ Thực hiện Unit testing bây giờ sẽ rất dễ dàng, vì bạn thực sự khơng phụ thuộc
vào view.
+ MVVM sẽ tạo sự tương tác hiệu quả giữa designer và developer.
+Tăng khả năng sử dụng lại các thành phần hay việc thay đổi giao diện chương
trình mà không cần phải viết lại code quá nhiều.
+ Phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp, bảo trì…
Nhược điểm:
+ Khả năng duy trì khi view có thể gán cả biến và biểu thức, các logic không liên
quan sẽ tăng dần theo thời gian, ảnh hưởng đến việc thêm code vào XML.
+ Đối với dự án nhỏ việc áp dụng mơ hình MVVM gây cồng kềnh, tốn thời gian
trong quá trình phát triển.
+ Tốn thời gian trung chuyển dữ liệu của các thành phần. Đối với dự án lớn hơn,
nó gây khó khăn và mất thời gian để thiết kế các ViewModel.

19


+ Việc liên kết dữ liệu cho tất cả các thành phần gây khó khăn trong việc debug khi
cơ sở dữ liệu phức tạp.
2.4: Học được cách sử dụng công cụ Android studio để phát triển dự án.
+ Định nghĩa: Android Studio là IDE chính thức được sử dụng trong phát triển
ứng dụng Android dựa trên IntelliJ IDEA. Android Studio đã được công bố vào
năm 2013 tại hội nghị Google I/O và được phát hành vào năm 2014 sau nhiều
phiên bản khác nhau.
+ Vai trị: Chức năng chính của Android Studio là cung cấp các giao diện giúp
người dùng có thể tạo các ứng dụng và xử lý các công cụ file phức tạp sau hậu
trường ứng dụng Android, giúp cho việc tạo ứng dụng dễ dàng hơn so với các phần

mềm chun dụng. Ngơn ngữ lập trình được sử dụng trong Android Studio là Java
hoặc Kotlin.
+ Vận dụng: Sử dụng công cụ Android studio để tạo dự án Android sử dụng ngơn
ngữ lập trình Kotlin thơng qua các cơng cụ có sẵn trong IDE này để phát triển 1 dự
án từ khi bắt đầu đến khi hoàn thiện:
1: Tạo dự án:

20


Hình 1.2: Sử dụng cơng cụ Android Studio để tạo dự án demo.
2: Phát triển dự án sử dụng ngôn ngữ Kotlin:

Hình 1.3: Sử dụng cơng cụ Android Studio để phát triển dự án demo.
3: Xem Preview dự án:
21


Hình 2.1: Dùng Android Studio để xem preview giao diện dự án.

22


2.5: Học được công cụ Github quản lý mã nguồn của dự án.
+ Định nghĩa: Github là một dịch vụ nổi tiếng cung cấp kho lưu trữ mã nguồn Git
cho các dự án phần mềm. Github có đầy đủ những tính năng của Git, ngồi ra nó
cịn bổ sung những tính năng về social để các developer tương tác với nhau.
+ Vai trị: Github Là cơng cụ giúp quản lý source code tổ chức theo dạng dữ liệu
phân tán. Giúp đồng bộ source code của team phát triển lên 1 server. Hỗ trợ các
thao tác kiểm tra source code trong quá trình làm việc (diff, check modifications,

show history, merge source, …)
+ Vận dụng: Sử dụng công cụ Github để quản lý source code dự án demo qua đó
hiểu được cách hoạt động của Github
1: Tạo Repository để lưu trữ code:

Hình 2.2: Tạo Repository dự án Github.

23


2: Lưu trữ code trên Repository Github theo các thư mục dự án:

Hình 2.3: Lưu trữ code trên Repository Github vừa tạo.

 Công việc 3: Tham gia phát triển dự án được giao (Từ ngày 11/08/2021 đến
ngày 31/08/2021).
Nội dung:
- Tiếp nhận bản yêu cầu về dự án Ứng dụng: Dự báo thời tiết. Dự án do công ty giao cho
sinh viên thực tập phát triển để kiểm tra khả năng tiếp thu và vận dụng kiến thức.
- Thiết kế UI Ứng dụng.
- Phát triển Ứng dụng dựa theo UI đã thiết kế.
- Báo cáo kết quả với người hướng dẫn tại cơng ty sau khi hồn thành phát triển và kiểm
thử ứng dụng.
Kết quả đạt được:
3.1: Hoàn thành phát triển ứng dụng di động Dự báo thời tiết sử dụng công cụ
Android studio và ngôn ngữ Kotlin:
+ Bản thiết kế từng màn hình trong ứng dụng:

24



Hình 3.1: Splash

Hình 3.2: Thơng báo

Hình 3.3: Dự báo giờ

Hình 4.1: Dự báo ngày

25


×