Trong quá trình làm việc, liên lạc hay học tập, giải trí, điện thoại di động trở thành một công cụ hoàn hảo khi có thể hỗ trợ và làm được rất nhi `âi thứ máy tính không thể lam, d Mg tho
Trang 1TRUONG DAI HOC CONG NGHE THONG TIN KHOA CONG NGHE PHAN MEM
BAO CAO THUC TAP
LAP TRINH UNG DUNG DI DONG ANDROID
TP H 6Chi Minh, thang 12 nam 2022
Trang 2
LOI MO' DAU Ngày nay, điện thoại di động đã trở thành một thiết bị, một món đ `ôkhông thể thiếu trong cuộc sống của chúng ta Trong quá trình làm việc, liên lạc hay học tập, giải trí, điện thoại di động trở thành một công cụ hoàn hảo khi có thể hỗ trợ và làm được rất nhi `âi thứ máy tính không thể lam, d Mg thoi van đảm bảo tính gọn nhẹ và dễ sử dụng cho người dùng Ở thời điểm hiện tại,
có hai hệ đi âi hành chính cho điện thoai dé la Android va IOS Theo dong su kién Google I/O
2022, Google đã chính thức xác nhận có hơn 3 tỷ thiết bị chạy hệ đi `âi hành Android trong đương với 74% tổng số thiết bị di động Con số này đối với Iphone chạy hệ đi li hành IOS của Apple.Inc là 26%
V tính phổ biến của các ứng dụng trên thiết bị di động, theo tạp chí Forbes, vào quý 1 năm
2022, trung bình có 29 tỉ lượt tải v`êtrên Google Store trong khi chỉ có khoảng 8 tỉ lượt ứng dụng được tải v`ềtrên nên tảng IOS Từ đó ta có thể thấy được sự chiếm ưu thế của hệ đi hành Android ngành xây dựng và phát triển ứng dụng di động Con số này, riêng ở Việt Nam sẽ được dự đoán còn tăng mạnh trong những năm tới do nhu c1 sử dụng ứng dụng và giải quyết tác vụ từ xa thay vì tại chỗ đang được ưu tiên
Khi xét v`êphương diện lập trình, Android là một công nghệ mã ngu ôn mở, có thể cho phép cộng đ Ông các lập trình viên quan tâm đóng góp và tiếp tục xây dựng hệ đi âi hành này Tuy nhiên đối với hệ đi `âi hành đến tử Apple, công ty này đã đêra những quy định rất nghiêm ngặt
các chuyên gia trong mảng lập trình Ios nhỏ hơn nhỉ 'âi so với số lượng lập trình viên bên hệ
đi âi hành Android
Nhận thấy được ti ân năng phát triển ứng dụng di động nói chung và phát triển ứng dụng trên n& tang Android nói riêng, đặc biệt là ở Việt Nam là rất lớn, vì thế em quyết định sẽ phát triển bản thân, tìm hiểu các kiến thức thực tiễn thông qua cơ hội thực tập để trở thành lập trình viên ứng dụng Android Bên cạnh đó em cũng tìm được công ty cổ phần TVT Group, công ty hiện đại chuyên xây dựng và phát triển các ứng dụng Android và mong muốn sẽ được thực tập ở công ty này ở vị trí Android Internship
Trang 3LOT CAM ON Trân trọng gửi lời cảm ơn Công ty cổ phần TVT Group đã tạo đi ân kiện cho em có cơ hội được thực tập tại quý công ty
Tuy thời gian thực tập chỉ có 3 tháng, nhưng nhở sự chỉ dẫn, hỗ trợ nhi âu tình của các anh, chị mentor trong team, em đã tiếp thu được những kiến thức tối quan trọng, thực tiễn và c3n thiết trong quá trình xây dựng và phát triển một ứng dụng Chân thành cảm ơn các anh chị trong team
đã tận tình giúp đỡ, bỏ thời gian để hướng dẫn em trong những bước đi mới tham gia vào công
ty Tuy nhiên, trong quá trình học tập và làm việc có thể không tránh khỏi những sai sót, mong mọi người có thể bỏ qua cho em
Đặc biệt cảm ơn anh Phạm Hoàng Thông, leader của team Android đã hướng dẫn, giúp đỡ em tận tình trong những bước đầu làm việc Chân thành cảm ơn anh đã chỉ dẫn em những kiến thức rất thực tiễn v`êkiến trúc ứng dụng đến những kỹ năng mm như giao tiếp với khách hàng, Bên cạnh đó, em cũng xin cảm ơn anh Bùi Thế Lượng đã hỗ trợ, cung cấp cho em những kiến thức bổ ích khi giao tiếp và làm việc, meeting với khách hàng và xây dựng sản phẩm
làm bài báo cáo này
Lê Hoàng Thịnh TP.HCM, ngày 22 tháng 12 nam 2022
Trang 4
NHAN XET CUA KHOA
Trang 5MUC LUC Table of Contents
1 GiGi thiéu so làn 6
1.1 Giới thiệu công ty cổ phần TVT Group - ch Hệ 6 1.2 Sam phaim ctia Ong na 6
IA*kố in .Ố.Ố.Ố.Ố.Ố 7
h9 ae 7
2 (00 ii .ố 8
2.1 Tim hiéu v €céng ty và các dự án đang thực hiện của công ty -.-cs-s- 8 PIN (¡co o0 na -.xaẲŸ 8
2.2.1 Cài đặt các công cụ làm việc cñn thiết cho dự An 0 ee cece cece cence ceeeeeseeeeneeeeee 8 2.2.2 Tìm hiểu ngôn ngữ Kotlin và framework Android sxsxxexxsrxsrsses 9 2.2.3 Tìm hiểu v dự án hiện tại . 2G Ă 5< SE 2 E121 123v nh ng ng ng ven 10 2.3 Thực hiện DFOJCÍ 7G GH HnHHH T T rư 11 QA Lich Lam Vide occ 11
EAH9Sn ào) .ằằằ 14
3.1 Giới thiệu v`Êứng dụng EMOL, - -G- 2x HT HH như 14 E9 sáo nan 15
3.2.1 Thu thập những trải nghiệm của người sử dụng ccccccesieereeeree 15 3.2.2 Tham gia vào các bài học hễ trợ tĩnh th 5 S2 S2 2S errtrkerrreee 15 3.2.3 Chatbot trò chuyện với người sử dỤng ác Sàn Hy 16 3.2.4 Các tính năng khác - - - + xnxx 17 'ThựC hiñỆN 7 0 HH gọn Thọ Thọ Họ kg 17 h.‹<s sen ae 18
5.1 Phase 1: Tinh nh na 18
5.2 Phase 2: Tinh ác ẽa ae a 18
TAI LIEU THAM KHAO 19
990950011055 - -j‡-:§:||âỞ ÔÒÔỎ 20
Trang 6
1 Giới thiệu công ty thực tập
Vv
TVTGroup
TVT Group được đầi tư và phát triển dựa trên nguyên tắc lựa chọn và tập trung, ngoài việc tiếp tục nâng cao thế mạnh vốn có của mình trong lĩnh vực Navigation, công ty còn mở rộng thêm các hoạt động trên các lĩnh vực lập trình phần m`ần ứng dụng cho các dòng sản phẩm, thiết bị di động thông minh (smart phone, tableÙ sử dụng hệ đi`âi hanh Android, iOS, Window Phone, Blackberry OS dao sâu nghiên cứu, cập nhật các công nghệ mới để cho ra đởi các ứng dụng với nhi `êâi tính năng thông minh, tiên tiến trên thế giới như công nghệ xử lý hình ảnh (Image Processing), Công nghệ tương tác thực tế ảo (Augmenrted Reality), DM (Direct marketing), DM+CRM
TVT Group chịu trách nhiệm thiết kế và trực tiếp thực thi, xây dưng các ứng dụng di động, các thiết bị POS và những sản phẩm có tính thực tế cao và úng dụng những công nghệ tiên tiến như AR, Blockchain Một số sản phẩm nổi tiếng của công ty có thể kể đến như: Car Navigation, EMOL, POS Android (được sử dụng cho chuỗi cửa hàng Highland Vietnam), Starverse Henieken (Ưng dụng công nghệ blockchain), Naver Labs Apps Nhở việc hợp tác với các đối tác lớn và không ngừng mở rộng quy mô, công ty đã liên kết và đi đến hợp tác thoả thuận với những thương hiệu lớn trên toàn
ca
Trang 7Trở thành một đơn vị hàng đầu trong việc nghiên cứu và phát triển những phần m`ân ứng dụng mang tính kỹ thuật cao, phù hợp với xu thế chung của n` công nghệ thế giới, kháng định chất lượng sản phẩm và thương hiệu công ty tại thị trưởng Việt Nam nói riêng và thị trường châu Á nói chung
Triết lý công ty: SC
> Challenge — Thach thtrc
Thach thire cho caéc thanh vién v €viéc luén cập nhật công nghệ mới để thực hiện các dự án có yéu c 4 cao Thach thire cing 14 co héi dé cdc thanh vién tu phat trién ban than minh
> Collaboration — Hop tac
Hợp tác với các công ty đối tác hoặc khách hàng
> Định hướng Khách hàng
Hiểu rõ yêu câi của khách hàng
> Tu tin
Đảm bảo hiểu biết vêcông nghệ cũng như khả năng làm việc trong lĩnh vực đang đảm nhận
> Thay đổ
Ưng dụng kiến thức, công nghệ mới để liên tục thay đổi, đổi mới trong việc phát triển ý tưởng và ứng dụng
Sơ đ ồtổ chức của công ty được thể hiện như sau, trong đó, em thuộc v`êteam phát tiển phần m`ần Android
Managing Director Strategy Header
Application MEC Administrator
10S L Navigation Saree Human
Management
Resource
Android
Trang 8
Trong thời gian thực tập tại công ty, em đã may mắn được tham gia vào dự án thực tế của công ty và là một trong những dự án thành công của TVT Group Đây là ứng dụng chạy trên
nô tảng Android va được upload lên Play Store Ð ông thời thông qua quá trình này, bên cạnh những kiến thức v`êkhía cạnh kỹ thuật, em còn được tiếp cận và hỗ trợ những kỹ năng m`ân như tin học văn phòng, giao tiếp khách hàng, xử lý vấn đề đánh giá và tiếp cận công việc 2.1 _ Tìm hiểu v`ềềcông ty và các dự án đang thực hiện của công ty
Thời gian: 1 tuần
Nội dung:
- _ Tìm hiểu v €quy trinh va quy định làm việc tại công ty, cách tổ chức và nội bộ, các phòng ban của công ty
- _ Em được thêm vào những resources, tài nguyên của công ty, được cung cấp email riêng của công ty để làm việc Bên cạnh đó em còn được hướng dẫn viết báo cáo cuối ngày, sử dụng email công ty để trao đổi, liên lạc và sử dụng các tài nguyên được cung cấp
- _ Trong quá trình thực tập, em được thêm vào Trello (Ph 3ñ m'`ần quản lý công việc
và phân chia đầi việc) để tìm hiểu v`êdự án hiện tại mà em sẽ tham gia Công ty sử dụng Skype là kênh liên lạc chính của các thành viên trong công ty Ngoài ra em còn được tham gia vào buổi hợp mặt thành viên mới trong công ty
Kết quả: Em đã hiểu thêm v`êquy trình làm việc, phong cách làm việc và văn hoá công
ty Đ'ềng thời em cũng có thêm các kỹ năng m'`ần liên quan đến việc sử dụng email nội
bộ, báo cáo hằng ngày, làm việc có kế hoạch, trách nhiệm và kỷ luật hơn
2.2.1 Cài đặt các công cụ làm việc c®n thiết cho dự án
Thời gian: 1 ngày
Nội dung:
- - Em được tìm hiểu v`các công cụ lập trình và các công cụ văn phòng sẽ được sử dụng trong quá trình làm việc
- _ Trong thởi gian này, em được khuyến khích nên sử dụng Android Studio, là một IDE được sử dụng để phát triển các ứng dụng Android Cũng trong thởi gian này, menfor giới thiệu cho em một số ứng dụng khác để có thể sử dụng trong quá trình phát triển ứng dụng như: Figma, Postman, Git Kraken, Day la những công cụ hữu ích và thiết yếu trong quá trình phát triển ứng dụng Ngoài ra, em cũng được
tracking các tasks
Thực hiện: Tải v`êvà cài đặt các ứng dụng cân thiết
Kết quả: Có thể lập trình ứng dụng Android trên IDE dựa vào design Update tình hình tiến độ công việc và báo cáo Sử dụng Git Kraken để tương tác với cdc repository
Trang 92.2.2 Tìm hiểu ngôn ngữ Kotlin và framework Android
Thơi gian: 7 ngày
Nội dung: Dự án hiện tại được chạy trên nền tảng Android và viết bằng ngôn ngữ Kotlin Di i nay khác với ngôn ngữ Java để làm ứng dụng Android em được học trên trưởng Vì thế công ty đưa ra cho em lệ trình 3 ngày để đọc và tìm hiểu v`êKotlin Đi`âi nay bao g lân nhưng không giới hạn bởi những kiến thức nêu ra dưới đây:
Em được học cách khai báo biến, viết cái câu đi ân kiện, hàm goi, callback, trong Kotlin
- _ Lập trình hướng đối tượng với Kotlin:
Em tự học và tìm hiểu cách viết các lớp, kế thừa lớp, ghi đè các phương thức trong Kotlin
- _ Các thành phân chính trong lập trình Android:
Em được đưa các ngu ồn tài liệu để có thể tự học lập trình Android Qua các tài liệu này, em hiểu được các thành phñ cơ bản của Android Vòng đơi của một ứng dụng Android, cách lập trình giao diện và tương tác với chúng Hiểu được
mô hình MVVM và databinding trong Android
- _ Tìm hiểu v`êcác sử dụng máy ảo và truy cập vào bộ nhớ máy ảo
Thực hiện:
- _ Tham gia đầy đủ các buổi training của công ty
Kết quả:
- _ Em đã có thể lập trình ứng dụng di động với ngôn ngữ Kotlin sử dung framework Android
- _ Em đã có thể clone project hién tai va hoc các tiêu chuẩn viét code, commit code
và tách ra nhánh riêng để tiến hành làm việc
Trang 10
2.2.3 Tìm hiểu v`êdự án hiện tại
Thời gian: 4 ngày
Nội dung: Em được giao chông nhiệm vụ tìm hiểu v`êdự án hiện tại Việc tìm hiểu này bao gồm tìm hiểu v`ềcấu trúc dự án, các user flow, danh sách các màn hình, design, coding convetion, kiến trúc của ứng dụng, Sau khi có các kiến thức nhất định v`êdự
án, em mới có thể được xem xét cho phép tiến hành thực hiện các nhiệm vụ trong dự
án
- - Mô hình MVVM:
Đây là mô hình cũng như là kiến trúc chính của ứng dụng Android Đại đa số các
dự án Android đềầi được phát triển dựa trên kiến trúc này Đây là mô hình 3 lớp có khả năng tách biệt giữa Logic và UI Giúp mã ngu ân dễ phát triển và mở rộng hơn Đồng thời cơ chế databinding giúp việc phát triển ứng dụng nhanh chóng
Ở thời điểm em gia nhập vào dự án, đây là dự án đang trong giai đoạn phát triển chứ không phải mới khởi động Vì thế dự án đã có một số tính năng cũng như là các mẫu đã viết san Bang cach st dung Template Method, ma ngu & cua dir 4n nay
có thể dễ dàng phát triển và mở rộng hơn Với các phương thức được định sẵn và các bước đã được thực thi trước, em được yêu cÂi tìm hiểu v`êCode Base của ứng dụng để có thể dễ dàng phát triển một tính năng sau này
Da s& cdc tng dung Android d& yéu c & phai trong tac voi server th6ng qua HTTP Rest API Mét trong những thư viện phổ biến của Android dé trong tac voi HTTP
la str dung Retrofit Retrofit lam việc như một client để gọi và nhận các dữ liệu từ server thông qua HTTP Em được yêu cẦ tìm hiểu cách tạo các request GET, POST, PUT, DELETE để tương tác với server
Tuy nhiên đi âi đặc biệt với ứng dụng nay 14 Animation của nó Đây là giao diện thân thiện với người dùng và đê cao trả nghiệm của ngươi dùng hơn là Logic ẩn chứa trong nó Vì thế animation là một kiến thức không thể thiếu khi phát triển hoặc bảo trình mệt tính năng trong dự án Vì thế em phải học cách tạo và đi lãi khiển các animation trong tng dụng
Thuc hién:
- _ Tự học các ly thuyết trong tài liệu các mentor đã đưa
- _ Thử tạo một ứng dụng Android và tìm hiểu các cơ chế hoạt động của nó
- _ Tìm hiểu các thành phần chức năng trong dự án, cách tổ chức và chia File, chia thư mục Các feature template đã được định nghĩa sẵn
Kết quả:
- _ Biết được cách thức lập trình ứng dụng Android với ngôn ngữ Kotlin theo kiến trúc MVVM
- _ Biết được cách làm animation trong Android và gọi RestAPI để lấy và update dữ liệu trên server