Trong khoàng thời gian 3 tháng thực tập, em được sự hướng dẫn tận tình từ anh Phạm Hoàng Thông, em đã học được rất nhiều về quy trình phát triển phầm mềm, cách tiếp nhận, xử lý thông tin
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP DOANH NGHIỆP
LẬP TRÌNH ỨNG DỤNG DI ĐỘNG TRÊN ANDROID
(ANDROID DEVELOPER)
Công ty thực tập: Công ty Cổ phần TVT Group
Người phụ trách: Nguyễn Ngọc Tú (Project Manager)
Thực tập sinh: Trần Quốc Khánh
Tp Hồ Chí Minh, tháng 12 năm 2022
Trang 2LỜI MỞ ĐẦU
Khi cuộc cách mạng công nghiệp 4.0 đang diễn ra mạnh mẽ trên toàn thế giới, sự phát triển của ngành Công nghệ thông tin chính là “chìa khoá” cho sự thay đổi, đóng góp vào sự lớn mạnh của đất nước trong nhiều lĩnh vực
Công nghệ thông tin là một trong những ngành có chuyển biến tích cực nhất trong những năm qua khi đã triển khai ứng dụng công nghệ thông tin trong đời sống, xã hội và doanh nghiệp Việt Nam trở thành quốc gia có số lượng người dùng internet thuộc top cao nhất thế giới Chính công nghệ thông tin đã len lỏi vào trong đời sống và sinh hoạt của từng người dân, giúp nâng cao và cải thiện chất lượng cuộc sống
Trong đó phải kể đến sự đóng góp vô cùng to lớn của ứng dụng di động nói riêng và các thiết bị
di động nói chung Nhờ có sự phát triển của khoa học công nghệ, chưa bao giờ người sử dụng điện thoại thông minh lại có nhiều tiện ích phục vụ cuộc sống như bây giờ Theo thống kê, hiện nay, trên cửa hàng ứng dụng của Google (Google Play Store) đang có khoảng 2,87 triệu ứng dụng miễn phí mà người dung có thể tải về và sử dụng Phần lớn trong số đó mang lại lợi ích đáng kể cho người dung, giúp người dung cải thiện cuộc sống, gia tăng năng xuất và hiệu quả trong công việc
Bên cạnh đó, ngành Kỹ thuật phần mềm cũng là một ngành có đóng góp vô cùng to lớn cho nền kinh tế toàn cầu hiện tại Với đặc tính làm việc linh động, dễ dàng và có thể làm việc ở bất cứ đâu cùng với việc các thiệt bị điện tử như laptop, điện thoại thông minh (smartphone) ngành càng trở nên phổ biến Nhờ vào những đặc tính đặc biệt đó, ngành Kỹ thuật phần mềm nói chung
và ngành Lập trình trên thiết bị di động nói riêng đã vượt qua đại dịch một cách thần kỳ và tang trưởng cực kỳ mạnh mẽ Tính đến năm 2023, nền tảng ứng dụng trên thiết bị di động đã thu về gần 935 tỷ đô (theo BuildFire)
Nhận thấy được sự thú vị và tầm quan trọng của ứng dụng di động ở thời điểm hiện tại cũng như trong tương lai vẫn sẽ tiếp tục góp phần to lớn vào việc cải thiện cuộc sống của con người Em
đã chọn định hướng cho mình theo hướng lập trình viên phát triển phần mềm trên ứng dụng di động và nền tảng mà em chọn để tiếp cận với ngành này là Android, một hệ điều hành vô cùng nổi tiếng và phổ biến được phát triển bởi Google
Trang 3LỜI CẢM ƠN
Đầu tiên, em xin gửi lời cảm ơn đến Công ty Cổ phần TVT Group – chi nhánh Hồ Chí Minh đã tạo điều kiện và cơ hội cho em có thể thực tập tại doanh nghiệp và trao dồi thêm kiến thực cũng như kinh nghiệm thực tế
Trong khoàng thời gian 3 tháng thực tập, em được sự hướng dẫn tận tình từ anh Phạm Hoàng Thông, em đã học được rất nhiều về quy trình phát triển phầm mềm, cách tiếp nhận, xử lý thông tin từ khách hang và đặc biệt là kỹ năng phát triển phầm mềm và kỹ năng làm việc nhóm Bên cạnh đó, em cũng học hỏi được từ các anh chị trong công ty về cách thức giao tiếp, vận hành trong một dự án thực tế Chân thành cảm ơn các anh chị đã giúp đỡ, hướng dẫn và cũng như chia sẻ các kỹ năng, kinh nghiệm trong suốt thời gian thực tập
Cũng xin cảm ơn khoa Công nghệ phầm mềm và các thầy cô trong khoa đã tạo điều kiện,
và hỗ trợ em trong bài báo cáo thực tập, cũng mong em sẽ nhận được những lời đóng góp của quý thầy, cô để em có thể hoàn thiện tốt hơn
Tp Hồ Chí Minh, ngày 27 tháng 12 năm 2022
Trần Quốc Khánh
Trang 4NHẬN XÉT CỦA KHOA
………
………
………
………
………
………
………
………
………
………
………
………
………
Trang 5MỤC LỤC
LỜI MỞ ĐẦU 2
LỜI CẢM ƠN 3
NHẬN XÉT CỦA KHOA 4
CHƯƠNG 1: GIỚI THIỆU CÔNG TY 6
1.1 Giới thiệu về Công ty Covisoft 6
1.2 Sản phẩm của công ty 6
CHƯƠNG 2: NỘI DUNG THỰC TẬP 7
2.1 Tìm hiểu về công ty và các kỹ năng cơ bản trong công ty 7
2.2 Làm quen với dự án 7
2.3 Nghiên cứu kỹ thuật 8
2.3.1 Các công cụ làm việc 8
2.3.2 Tìm hiểu về quy trình làm việc của công ty 9
2.3.3 Tìm hiểu về Android Studio 9
2.3.4 Tìm hiểu về Kotlin và MVVM 9
2.4 Thực hiện dự án 10
2.5 Lịch làm việc 10
CHƯƠNG 3: CHI TIẾT DỰ ÁN 12
3.1 Giới thiệu về Handheld POS 12
3.1.1 Giới thiệu dự án 12
3.1.2 Thực hiện 12
3.1.3 Kết quả 13
CHƯƠNG 4: TỔNG KẾT 14
Trang 6CHƯƠNG 1: GIỚI THIỆU CÔNG TY
1 Giới thiệu về Công ty cổ phần TVT Group
TVT Group là công ty chuyên về lập trình phần mềm ở thị trường Việt Nam, Hàn Quốc, Singapore, Thái Lan và Châu Âu Cùng với đội ngũ nhân sự trẻ và nhiệt huyết, công ty đang phát triển sản phẩm phần mềm cho các thị trường châu Âu, Mỹ, Úc, Singapore, Nhật Bản theo 2 hướng cơ bản là out-source và hợp tác cùng phát triển sản phẩm
Chiến lược phát triển
- TVT Group đang từng bước hoàn thiện các giải pháp và nâng cao trình độ kĩ thuật qua từng sản phẩm để ngày càng trở nên hoàn thiện và có thể đáp ứng được nhu cầu cao của thị trường trong và ngoài nước
Chính sách chất lượng:
- Luôn cung cấp sản phẩm dịch vụ tốt nhất, đảm bảo thi công đúng tiến độ, chất lượng, hiệu quả như đã thoả thuận với khách hàng
- Không ngừng cải tiến về mọi mặt để đạt được sự hoàn hảo về sản phẩm và dịch vụ cung cấp về mối quan hệ với khách hàng và khả năng cạnh tranh
- Liên tục đào tạo nhằm phát triển nguồn nhân lực, tăng cường đầu tư trang thiết bị kỹ thuật và công nghệ thi công hiện đại, nghiên cứu và ứng dụng các phương thức quản lý hiệu quả, chuyên nghiệp, tiên tiến nhất nhằm đám ứng yêu cầu của khách hàng, đối tác
2 Sản phẩm của công ty
Những lĩnh vực công ty đang tập trung phát triển:
Mobile application (iOS, Android, Window Phone)
Embeded System, Navigation/Blackbox System
IoT System
Server/Web solution
Các phần mềm chuyên về trí tuệ nhân tạo (AI), xử lý bigdata và chuyển đổi số
Trang 7CHƯƠNG 2: NỘI DUNG THỰC TẬP
Trong quá trình thực tập với chủ đề “Lập trình trên thiết bị di động Android”, em ứng tuyển ở công ty cổ phần TVT Group với vị trí thực tập sinh phát triển phần mềm ứng dụng di động trên nền tảng Android (Android Developer Intern) Trong thời gian thực tập vừa qua, em được các anh chị tạo điều kiện để tiếp xúc với toàn bộ quy trình phát triển và hoàn thiện một ứng dụng di động, cùng với đó là giải pháp tối ưu và bảo trì các ứng dụng về mobile có trong công ty Đồng thời, phát triển cho bản thân của mình các kỹ năng mềm cần thiết như làm việc nhóm, đặt vấn và giải quyết vấn đề, giao tiếp, phân công trong công việc, dự tính tiến độ công việc và thời gian hoàn thành Em có cơ hội làm việc, học hỏi và trải nghiệm, khám phá trong môi trường doanh nghiệp chuyên nghiệp
2.1 Tìm hiểu về công ty và các kỹ năng cơ bản trong công ty
Thời gian: 1 ngày
Nội dung: Giới thiệu về công ty, cách tổ chức của công ty
Được thêm vào trong Trello (Phần mềm quản lý công việc dành cho các doanh nghiệp)
để tìm hiểu về quy trình, nội quy, và các quy định, cách thức làm việc của công ty: thời gian làm việc, các quy định về việc báo cáo cuối ngày, email thông tin liên lạc, trao đổi thông tin công việc qua Skype
Ngoài ra, thực tập sinh còn được giới thiệu về các thành viên trong team, chức vụ của từng người và người sẽ hướng dẫn thực tập sinh, trao đổi và làm quen với các thành viên trong team
Kết quả: Hiểu thêm về văn hóa và về Công ty, quá trình thành lập, quy trình vận hành và phát triển của công ty Có thêm các kỹ năng về việc sử dụng Email, giao tiếp trong công việc, làm việc có kế hoạch, trách nhiệm, kỹ luật hơn
1 Làm quen với dự án
Thời gian: 2 ngày
Nội dung: Giới thiệu về thông tin dự án, số lượng thành viên tham gia, quy trình phát triển và các công nghệ được sử dụng để phát triển dự án Tiến hành thêm thực tập sinh vào group hướng dẫn và cấp quyền cho thực tập sinh truy cập tới source của dự án để tham khảo qua về nền móng của dự án Đồng thời phổ biến cho thực tập sinh sơ qua về business logic của dự án hiện tại và những module đã và đang triển khai
Trang 8Tìm hiểu về Bitbucket, tham khảo về source code của dự án và base project
Tìm hiểu về Business Logic của dự án, hiểu về những flow chính của dự án và giá trị cốt lõi của sản phẩm
Kết quả: Có thể truy cập vào source code của dự án, có thể đọc hiểu về architecture của dự án
và design pattern của dự án hiện tại đang áp dụng Qua đó thực tập sinh có thể nắm rõ về convention cũng như cách tổ chức code của dự án
2 Nghiên cứu kỹ thuật
Các công cụ làm việc
Thời gian: 2 ngày
Nội dung: Tìm hiểu về các công cụ được sử dụng trong quá trình làm việc
Trong thời gian này, leader và mentor đã hướng dẫn thực tập sinh tìm hiểu về các công cụ sẽ giúp ích trong quá trình thực hiện công việc Một số phần mềm đó như là:
Trello: công cụ quản lý công việc trực quan hỗ trợ các nhóm lên ý tưởng, lập kế hoạch, quản lý và ăn mừng thành tựu cùng nhau một cách hợp tác, hiệu quả và có tổ chức Được
sử dụng để chia task (công việc) và quản lý tiến độ, tính hình của dự án theo mô hình Agile
Bitbucket: một dịch vụ lưu trữ trên web dành cho các dự án có sử dụng hệ thống kiểm soát Git/Mercurial revision Bitbucket được viết bằng ngôn ngữ lập trình Python và được xây dựng trên nền tảng Django Framework.Là công cụ quản lý source code các dự án trong công ty, với sự trực quan và nhiều tính năng
Android Studio: IDE thông dụng và phổ biến cho một lập trình viên phát triển ứng dụng Mobile Là môi trường phát triển tích hợp (IDE) chính thức để phát triển ứng dụng Android, dựa trên IntelliJ IDEA Ngoài các trình soạn thảo mã và công cụ phát triển mạnh mẽ của IntelliJ, Android Studio còn cung cấp thêm nhiều tính năng giúp bạn nâng cao năng suất khi xây dựng ứng dụng Android
Trang 9Figma: Công cụ thiết kế giao diện
Skype: Công cụ chat nội bộ, giao tiếp với các thành viên trong team và các teams liên quan
Postman: Công cụ dùng để setup môi trường để test api từ phía Backend
Thực hiện: Tìm hiểu và sử dụng các công cụ kể trên
Kết quả: Hiểu được về quy trình làm việc và các công cụ cần thiết trong quy trình của công ty
3 Tìm hiểu về quy trình làm việc của công ty
Thời gian: 1 ngày
Nội dung: Tìm hiểu về các quy trình làm việc theo mô hình Scrum – Agile Được các anh chị ở các team liên quan hướng dẫn, chỉ dạy và thử tham gia vào quy trình làm việc của công ty Thực hiện: Thực hành tham gia vào các giai đoạn của mô hình
Kết quả: Có thêm kiến thức và thực hành nhuần nhuyễn các công đoạn trong 1 quy trình phát triển ứng dụng
4 Tìm hiểu về Android Studio
Thời gian: 1 ngày
Nội dung: Tìm hiểu về các tính năng cơ bản và cách sử dụng Android Studio, những extensions
và tiện ích mà Android Studio hỗ trợ Học cách quản lí source code trên Bitbucket thông qua Git GUI tích hợp sẵn trong Android Studio
Thực hiện: Thực hành tìm hiểu, và liệt kê công dụng, nội dung của những tính năng thường xuyên sử dụng trong Android Studio
Kết quả: Có thêm kiến thức bổ ích về Android Studio và cách sử dụng trong phát triển phầm mềm trên ứng dụng di động
5 Tìm hiểu về Kotlin và MVVM
Thời gian: 7 ngày
Nội dung: Tìm hiểu về lập trình Mobile với Kotlin
Thực hiện:
Các cú pháp, câu lệnh cở bản của Kotlin
Các kiến thức cơ bản của một ứng dụng Android
Tìm hiểu về các View, Life Circle, Method và các base component, library trong Android Tìm hiểu về MVVM pattern:
Trang 10o Mô hình MVVM là một trong những mô hình kiến trúc được rất nhiều lập trình viên yêu thích sử dụng Mô hình này sinh ra dành cho các ứng dụng sử dụng ngôn ngữ XML để định nghĩa giao diện ứng dụng như: Windows Phone 8.0, 8.1, Silverlight, Windows RT
View
Tương tự như trong mô hình MVC, View là phần giao diện của ứng dụng
để hiển thị dữ liệu và nhận tương tác của người dùng Một điểm khác biệt
so với các ứng dụng truyền thống 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 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à lớp trung gian giữa View và Model View Model 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 thực hiện Data Binding, Command Một điểm cần lưu ý là trong mô hình MVVM, các tầng bên dưới sẽ không biết được các thông tin gì về các tầng trên của nó
Kết quả: Nắm vững được kiến thức và trả lời các câu hỏi của Mentor Bên cạnh đó, hiểu cách thức lập trình cơ bản bằng Kotlin trong Android và cách tổ chức code theo mô hình MVVM
6 Thực hiện dự án
Trong 2 tuần thực tập đầu tiên, dưới sự hướng dẫn nhiệt tính của anh, chị Mentor và bằng sự cố gắng, không ngừng học hỏi, em đã trang bị được các kiến thức nền tảng để có thể xây dựng và phát triển một ứng dụng mobile như thế nào Trong thời gian tiếp theo, em được công ty cho phép tham gia vào quá trình xây dựng và hỗ trợ cải tiến project của công ty
7 Lịch làm việc
dẫn
Mức độ hoàn
1 + Tìm hiểu về công
ty
+ Học hỏi trao đổi
qua Skype và
+ Sử dụng công cụ
Trello để kiểm tra
tiến độ trong công
việc
Anh Nguyễn Ngọc Tú, Anh Đỗ Văn Được, Anh Phạm Hoàng Thông
Trang 11+ Học cách quản lý
source code thông
qua Git GUI trong
Android Studio
2
+ Tìm hiểu về các
kiến thức cơ bản và
nâng cao của
Kotlin trong
Android
+ Tìm hiểu về các
base component cơ
bản của dự án
+ Tìm hiểu về
MVVM Pattern
Anh Phạm Hoàng
Từ tuần 3
Thực hiện các Task
theo Sprint của
team
Anh Phạm Hoàng
Trang 12CHƯƠNG 3: CHI TIẾT DỰ ÁN 3.1 Giới thiệu về Handheld POS
3.1.1 Giới thiệu dự án
Handheld POS là một phần mềm Point Of Sale giúp quản lý, bán hàng và thanh toán trực tiếp trên thiết bị với tích hợp các module đọc thẻ NFC, RFID, EMV, quét mã QR, kết nối máy in nhiệt tích hợp sẵn trên thiết bị POS và hỗ trợ thanh toán một chạm, thống kế, sao lưu đơn hàng 3.1.2 Thực hiện
Vai trò: Android Developer
Công việc:
Làm việc theo nhóm cùng các thành viên trong team
Tìm hiểu tài liệu, nhận sự giúp đỡ và hỏi đáp từ các anh chị Mentor trong team Chỉnh sửa phần View trong XML, thiết kế những giao diện đơn giản và cơ bản để làm quen với các components, convention trong dự án
Chỉnh sửa, thay đổi, tách file trong thư mực cho hợp lý theo structure của dự án Tạo những Activity, Fragment mới từ các base component trong dự án
Tạo những Adapter cho phần View theo dạng List, kết nối giữa Fragment và View theo
mô hình MVVM, tạo interface để khai báo các hàm gọi từ Fragment, tạo ViewModel để
xử lí logic, sự dụng binding data để giao tiếp giữa View và Fragment, Activity Tìm hiểu cách đọc những requirement trong tài liệu của dự án, về những quy định trong xây dựng View trong file XML để phù hợp với design do bên khách hang cung cấp
Trang 13Báo cáo kết quả và tiến độ công việc hang ngày, tiến hành trong đổi với những anh chị
BA để hiểu hơn về Business Logic, trao đổi với team QC để giải quyết những lỗi phát sinh trong quá trình phát triển module hiện tại
3.1.3 Kết quả
Hoàn thành các công việc được giao theo tiến độ
Trang 14CHƯƠNG 4: TỔNG KẾT Chỉ sau vòng vài tháng ngắn ngủi, em đã được hoàn thành thời gian thực tập tại công ty, được học hỏi và tìm hiểu được nhiều kiến thức bổ ích trong quá trình thực tập, biết thêm về những kiến thức, kinh nghiệm trong dự án thực tế Ngoài ra, em được tiếp xúc với môi trường làm việc chuyên nghiệp, học hỏi và cọ xác với các dự án khác nhau, phát triển kỹ năng của bản thân trong việc lập trình, làm việc nhóm và đặc biệt là các xử lý công việc chuyên nghiệp Bên cạnh đó, em đã hoàn thành tốt, theo yêu cầu của cấp trên giao cho và có cơ hội trở thành nhân viên chính thức
Một lần nữa, xin chân thành cảm ơn đến các anh chị trong Team Mobile của công ty cổ phần TVT Group đã tận tình hỗ trợ, giúp đỡ em trong suốt quá trình thực tập, cũng như bên ngoài Em cũng xin cảm ơn khoa Công Nghệ Phần Mềm đã tạo cơ hội cho em được thực tập, cọ xát, nâng cao trình độ và học hỏi các kiến thức ở môi trường doanh nghiệp