Kèm theo đó là các công ty công nghệ lớn, đa quốc gia đang tập trung vào mảng phát triển ứng dụng di động như: MoMo, VNPay, Grab, Gojek,… Từ lâu, trong quá trình học tập tại trường, em đ
Trang 1KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
LẬP TRÌNH ỨNG DỤNG DI ĐỘNG
Công ty thực tập: Công ty Cổ phần Dịch vụ Di động Trực tuyến (M_Service) Người phụ trách: Nguyễn Hoàng Tuấn - ITC - App Dev - Mobile App Team Leader
Thực tập sinh : Dương Công Vũ – ITC – App Dev – Junior Mobile Developer (19521110)
TP Hồ Chí Minh, tháng 06 năm 2022
Trang 2LỜI MỞ ĐẦU
Với sự phát triển của công nghệ, các thiết bị di động ngày càng được phát triển mạnh mẽ
và có những chức năng hỗ trợ cuộc sống của con người tốt hơn Với tốc độ phát triển của các thiết
bị di động, tốc độ phát triển của ngành lập trình ứng dụng di động cũng tăng trưởng nhanh chóng
Việt Nam nằm trong top đầu các nước có độ phủ Internet rộng nhất, điện thoại thông minh đang dần trở thành một phần quan trọng không thể thiếu trong cuộc sống hằng ngày Ngày càng nhiều ứng dụng công nghệ được phát triển trên các nền tảng di động Kèm theo đó là các công ty công nghệ lớn, đa quốc gia đang tập trung vào mảng phát triển ứng dụng di động như: MoMo, VNPay, Grab, Gojek,…
Từ lâu, trong quá trình học tập tại trường, em đã định hướng bản thân trở thành một lập trình viên Ứng dụng di động chuyên nghiệp nên em đã tìm tòi về các công nghệ di động, các ngôn ngữ và đăng ký các môn chuyên ngành lập trình ứng dụng di động
Sau quá trình tự học và làm đồ án, em cảm thấy bản thân đã sẵn sàng để xin thực tập để có thể học hỏi, tiếp thu nhiều kiến thức hơn trong ngành này Do đó em đã đăng ký môn thực tập và bắt đầu tìm kiếm công việc Rất may mắn cho em đã đậu được vào Công ty Cổ phần Dịch vụ Di động Trực tuyến hay còn biết tới với tên khác là Ví điện tử MoMo
Trang 3LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty Cổ phần Dịch vụ Trục tuyến (M_Service) đã tạo điều kiện cho em có cơ hội được thực tập tại công ty
Chỉ trong một thời gian ngắn, nhưng nhờ sự chỉ dẫn nhiệt tình của manager, em đã tiếp thu được những kiến thức quan trọng để có thể làm được một ứng dụng di động hoàn thiện Chân thành cảm ơn các anh chị trong team đã bỏ ra nhiều thời gian, công sức để hướng dẫn em hoàn thành đợt thực tập này
Đặc biệt cảm ơn anh Nguyễn Hoàng Tuấn, đã training React Native, hướng dẫn, giúp đỡ cho em tận tình cả những khó khăn trong công việc, đến những khó khăn việc làm quen với môi trường mới; cảm ơn chị Tưởng Thị Khánh Vy, đã hướng dẫn em quy trình phát triển và kiểm thử phần mềm; cảm ơn anh Nguyễn Việt Anh, đã chỉ dẫn em về cách làm báo cáo, lên kế hoạch, những kỹ năng không thể thiếu; cảm ơn các anh Nguyễn Hữu Lực, anh Hồ Nguyễn Hải Nam, đã training cho chúng em những kiến thức quan trọng về kiến thức lập trình
Cũng xin cảm ơn thầy cô trong khoa Công nghệ phần mềm đã nhiệt tình hỗ trợ, tạo điều kiện em làm bài báo cáo này
Dương Công Vũ TP.HCM, tháng 6, 2022
Trang 4NHẬN XÉT CỦA KHOA
Trang 6
Chương 1: Giới thiêu công ty thực tập
1 Giới thiệu công ty Cổ phần Dịch vụ Trực tuyến (M_Service)
Công ty Cổ phần dịch vụ Di Động Trực Tuyến (viết tắt M_Service) hoạt động chính trong lĩnh vực thanh toán trên di động (mobile payment) dưới thương hiệu MoMo Công ty đã được Ngân hàng Nhà nước Việt Nam cấp phép cung cấp dịch
vụ Ví điện tử và dịch vụ chuyển tiền, thu hộ/chi hộ…
2 Sản phẩm của công ty
MoMo là ứng dụng Ví điện tử trên điện thoại thông minh đã có mặt trên 2 hệ điều hành iOS và Android với hơn 23 triệu người tin dùng Là nền tảng thanh toán di động, Ví MoMo thúc đẩy nền kinh tế không tiền mặt và cung cấp cho khách hàng trải nghiệm thanh toán một chạm (One Touch Payment) với hơn hàng trăm tiện ích dịch vụ, bao gồm Chuyển tiền, Thanh toán hóa đơn, Mua vé máy bay, Mua vé xe lửa,
Vé xem phim, Thu-Chi hộ và Thương mại trên di động
Ví MoMo hiện đã liên kết trực tiếp với hơn 25 ngân hàng Người dùng Ví MoMo
có thể thanh toán mọi tiện ích hàng ngày như Điện/Nước/Internet/Truyền hình cáp; Mua vé Máy bay/vé xe/vé tàu hỏa; Thanh toán taxi Vinasun; Mua vé xem phim tất
cả rạp; Đặt dịch vụ giúp việc; Mua hoa tươi…; Đóng vay trả góp của tất cả các công
ty tài chính hoặc sử dụng MoMo để thanh toán tại các điểm chấp nhận thanh toán MoMo như Gongcha, The Coffee House, Al Fresco’s, Món Huế, Hoàng Yến, Co.opMart, Circle K, Ministop,…
Trang 7Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình ứng dụng di động” nhằm mục đích giúp sinh viên thực tập được đào tạo toàn diện về lập trình ứng dụng di động trên cả 2 hệ điều hành Android và iOS thông qua các sản phẩm của ví điện tử MoMo, đồng thời rèn luyện những kỹ năng mềm như làm việc nhóm, thuyết trình, giao tiếp Tại công ty, sinh viên có cơ hội được học tập, khám phá và làm việc trong một môi trường phát triển ứng dụng chuyên nghiệp
1 Tìm hiểu 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 nghe người phụ trách giới thiệu về công ty, quá trình thành lập và phát triên (như đã nhắc đến ở trên), quy trình làm việc từ cao xuống thấp, cách thức tổ chức của công
ty
Ngoài ra, thực tập sinh còn được giới thiệu về cách thức làm việc trong công ty như thời gian đi làm, các quy định cần phải tuân thủ, cách sử dụng email trong công việc…
Kết quả : Hiểu thêm về công ty M_Service và sản phẩm Ví MoMo, quá trình thành lập và
phát triển Có thêm các kỹ năng về việc sử dụng email trong công việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn
2 Giới thiệu, làm quen với các thành viên trong nhóm dự án
Thời gian : 1 ngày
Nội dung : Giới thiệu về Cell Team MAC, do anh Nguyễn Hoàng Tuấn làm leader Giới
thiệu về các thành viên trong team, các sản phẩm và dự án team đang triển khai
Kết quả : Làm quen được các thành viên trong team và hiểu được về các sản phẩm, dự án
team đang làm
3 Nghiên cứu kỹ thuật
3.1 Các công cụ làm việc
Thời gian : 4 ngày
Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc
Sinh viên được giới thiệu tới các công cụ sử dụng trong quy trình làm việc của MoMo như:
- Jira để quản lý công việc theo mô hình Agile – Scrum
Trang 8- Trang HRM là trang để quản lý và thực hiện các thao tác liên quan tới người lao động
- Google Chat để sử dụng giao tiếp trong quá trình làm việc
- Mail Mservice để liên lạc giữa các team, thành viên,…
Thực hiện : Thực hành tìm hiểu về quy tình và sử dụng các công cụ trên
Kết quả : Hiểu được về quy trình làm việc và các công cụ dùng trong quy trình
3.2 Tìm hiểu ngôn ngữ Javascript và React Native
Thời gian: 7 ngày
Nội dung: Tìm hiểu về các khái niệm, kỹ thuật lậpt trình Javascript, React Native:
- Các cú pháp, câu lệnh cơ bản của Javascript
- Typescript
- Làm quen với lập trình cross platform với React Native
- Xây dựng ứng dụng React Native cơ bản
Thực hiện: Tham gia các buổi training và thực hiện các bài test, mock project nhỏ của
trainer đưa ra
Kết quả: Nắm được các khái niệm cơ bản, và cách thức lập trình bằng Javascript và
React Native
3.3 Tìm hiểu về MoMo Platform và Mini App
Thời gian: 7 ngày
Nội dung: Tìm hiểu về Momo platform và cơ chế super app – mini app Các sản phẩm
có trên MoMo Cách thức lập trình một Mini App Cách thức giao tiếp giữa client – server
Thực hiện: Tham gia các buổi training và mock project do trainer đề ra
Kết quả: Cơ bản nắm được các khái niệm trong app MoMo, các công cụ để phát triển
Mini App và có thể xây dựng một Mini App cơ bản
3.4 Tìm hiểu các công cụ build Mini App
Thời gian: 7 ngày
Nội dung: Tìm hiểu các công cụ về build Mini app như:
- Build Machine: Máy build chịu trách nhiệm build một mini app và đưa lên CDN
Trang 9- Web admin: Trang web quản lý các mini app và chức năng để sẵn sàng rollout lên MoMo
- Momo miniapp CLI: CLI sử dụng trong quá trình lập trình mini app cho MoMo
- Mini app Center: Trang web để quản lý các mini app do đối tác bên ngoài yêu cầu phát triển trên Momo Platform
Thực hiện: Tham gia các buổi training và thực hiện các ứng dụng demo do trainer đề
ra
Kết quả: Nắm được quy trình, các công cụ để lập trình các mini app trên MoMo
3.5 Tìm hiểu về ReactJS và Mini App Center
Thời gian: 7 ngày
Nội dung: Tìm hiểu về chức năng, nhiệm vụ của Mini App Center và cách thức xây
dựng ứng dụng web bằng ReactJs
Thực hiện: Tham gia các buổi training và thực hiện các bài tập do trainer đề ra
Kết quả: Nắm được cơ bản về các thành phần, module của Mini App Center và kiến
thức lập trình web bằng library ReactJs
4 Thực hiện project
Sau một tháng được training và thực hành, thực tập sinh đã nắm được những kiến thực cơ bản về Javascript, React Native,… Từ tuần thứ 5, sinh viên được bắt đầu thực hiện các task theo từng Sprint của team Tham gia vào nhiều project khác nhau cũng như giữ nhiều vai trò khác nhau
5 Lịch làm việc
Mức độ hoàn thành
Nhận xét của người hướng dẫn
1
- Tìm hiểu về công
ty, cách tổ chức của công ty
- Làm quen với các công cụ làm việc trong công ty
Anh Nguyễn Hoàng Tuấn
Trang 10- Học cách trao đổi, làm việc qua email
1 – 2
- Tìm hiểu ngôn ngữ Javascript và React Native framework
Anh Nguyễn Việt Anh
3 – 4
- Tìm hiểu về MoMo platform và các mini app
- Tìm hiểu về các công cụ Build mini app
Anh Nguyễn Hữu Lực
4 -5
- Phát triển các tính năng trên Mini App Center
- Xây dựng ứng dụng Mini App in-house
Anh Nguyễn Hoàng Tuấn
Từ tuần 5 Thực hiện các task theo
sprint của team
Anh Nguyễn Hoàng Tuấn
Trang 11Chương 3: Chi tiết các project đã tham gia
1.1 Phiếu cơm MoMo
Giới thiệu: Mini app phiếu cơm MoMo là dự án được khởi xướng bởi anh Nguyễn Hoàng
Tuấn, leader Cell Team MAC Mini app này giúp nhân viên MoMo có thể trao đổi, mua bán phiếu cơm với nhau Công ty có cung cấp dịch vụ căn tin cho nhân viên và cung cấp suất ăn trưa, nhân viên cần đăng ký từ đầu tháng để có thể có suất ăn trưa, thế nhưng trong một số trường hợp nhân viên có nhu cầu ăn ngoài hoặc đem theo thức ăn thì cần phải tìm người khác để bán hoặc bỏ không phiếu cơm Hành động này vô tình chiếm nhiều thời gian của nhân viên Nhận thấy sự cần thiết của một nền tảng trao đổi các phiếu cơm giữa các nhân viên để tránh lãng phí, team đã đề xuất thực hiện mini app Phiếu cơm MoMo và
đã được chấp thuận Mini app có chức năng đăng bán phiếu cơm của nhân viên MoMo Phiếu cơm được liệt kê trên ứng dụng và cho phép người có nhu cầu mua và thực hiện thanh toán qua ví MoMo
Vai trò: App Dev, Backend Dev
Nhiệm vụ:
- Xây dựng giao diện ứng dụng
- Xây dựng server backend để tương tác với ứng dụng
- Thực hiện các HTTP request tới các server của HRM để kiểm tra tính chính xác của phiếu cơm
- Tích hợp thanh toán vào mini app để người mua có thể thực hiện thanh toán bằng
ví MoMo
Kết quả thực hiện: Hoàn thiện và triển khai thành công mini app Phiếu cơm MoMo để
nhân viên công ty sử dụng trên ứng dụng MoMo Ứng dụng nhận được sự quan tâm của nhân viên công ty Lưu lượng truy cập hằng ngày lớn và phần nào tiết kiệm thời gian của nhân viên công ty
1.2 Mini App Center
Giới thiệu: Mini App Center (https://developers.momoapp.vn) là một trang web cho phép
các lập trình viên từ các đối tác của ví MoMo đăng ký và phát triển các mini app trên MoMo MAC cung cấp các bộ công cụ như tạo Mini App, build, rollout request,… Giúp các nhà phát triển dễ dàng triển khai các mini app một cách nhanh nhất Mini App Center
Trang 12cũng được xem như một web admin external, nơi các PO, QC của MoMo quản lý, kiếm thử và go live các mini app cho đối tác
Vai trò: Frontend developer
Nhiệm vụ:
- Thực hiện các task theo sprint từ request của PO hoặc Manager
- Thực hiện module Notice giúp thông báo các thay đổi, changelog tới đối tác
- Thực hiện module Build Machine Management giúp quản lý, phân phối các máy build
- Thực hiện module Analytics giúp hiển thị các thông số, các chỉ số liên quan tới mini app lên Dashboard
- Chỉnh sửa, fix các bug còn tồn động để cải thiện tốc độ, hiệu năng của trang web
Kết quả thực hiện: Hoàn thành các task dựa theo request và document
1.3 Mini App Build Machine
Giới thiệu: Build Machine là một máy build có nhiệm vụ build các mini app từ source
code của đối tác Sau khi đối tác hoàn thành việc phát triển và debug trên môi trường test, đối tác gửi yêu cầu build lên MAC và yêu cầu được đẩy vào các Build Machine để thực hiện build và upload lên CDN chờ rollout request
Vai trò: Software developer
Nhiệm vụ:
Trang 13- Chỉnh sửa, cập nhật các tính năng hiện có giúp Build Machine hoạt động ổn định hơn
- Phát triển Build Machine thành Package và Public package ra để các team có thể triển khai máy build một cách độc lập
Kết quả thực hiện: Hoàn thành và cập nhật Build Machine theo yêu cầu của PO và
Manager Triển khai thành công Build Machine thành một module có thể chạy ở nhiều môi trường khác nhau
1.4 Mini App Build Server
Giới thiệu: Khi một build request được gửi lên MAC, Build Server sẽ chịu trách nhiệm
thu thập các thông tin cần thiết và gửi yêu cầu tới máy build đang ready
Vai trò: Software developer
Nhiệm vụ:
- Chỉnh sửa, cập nhật các tính năng hiện có giúp Build Server hoạt động ổn định hơn
- Phát triển các tính năng Reset server, Build request queue, build machine management,…
Kết quả thực hiện: Hoàn thành các yêu cầu của PO và Manager, giúp Build Server hoạt
động ổn định hơn và đẩy nhanh tốc độ xử lý yêu cầu build
1.5 Momo Mini App CLI
Giới thiệu: Là một giao diện dòng lệnh (Command Line) để các nhà phát triển ứng dụng
sử dụng trong quá trình phát triển mini app
Vai trò: Software developer
Nhiệm vụ:
- Chỉnh sửa, cập nhật các tính năng hiện có giúp CLI hoạt động ổn định hơn
- Phát triển tính năng Select environment giúp người dùng chọn môi trường chạy dev tool
- Phát triển tính năng Select version giúp người dùng chọn phiên bản platform khi debug
- Chỉnh sửa các câu lệnh, cập nhật thay đổi khi platform có thay đổi
Kết quả thực hiện: Hoàn thành các tính năng mới do PO và Manager yêu cầu, public CLI
các phiên bản từ 0.76 – 0.79 Cập nhật các changelog lên document của MAC
Trang 15TỔNG KẾT
Như vậy, chỉ trong vòng vài tháng ngắn ngủi, em đã được tham gia vào nhiều project khác nhau của MoMo dưới các vai trò khác nhau Hoàn thành các task và yêu cầu do cấp trên đề ra Hoàn thành 2 tháng thử việc và trở thành nhân viên chính thức của MoMo
Chân thành cảm ơn các anh, chị trong cell team MAC đã hỗ trợ em hoàn thành kỳ thực tập, cũng như giúp đỡ em rất nhiều trong đời sống