1. Trang chủ
  2. » Giáo Dục - Đào Tạo

BÁO CÁO THỰC TẬP LẬP TRÌNH MOBILE APPLICATION TRÊN NỀN TẢNG MOMO PLATFORM

74 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 74
Dung lượng 115,24 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sau hơn 3 năm học tập và làm việc tại Đại học công nghệ thông tin UIT, em đãquyết định đăng ký chương trình Momo Talent với mong muốn được trải nghiệm môi trườnglàm việc của một trong nh

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Thực tập sinh: Phan Duy Đức - 18520621

TP Hồ Chí Minh, tháng 06 năm 2022

11

Trang 2

LỜI MỞ ĐẦU

Ngày nay, với tốc độ phát triển như vũ bão của internet, các công nghệ và dịch vụ mớiliên tiếp ra đời hướng đến nâng cao trải nghiệm của người dùng Ngành kinh tế hiện đại như tàichính-ngân hàng cũng không nằm ngoài xu thế này Các ứng dụng của công nghệ thông tinđược ví như những con sóng mới, làm thay đổi toàn bộ hệ thống mô thức cung ứng và vận hànhcủa các dịch vụ tài chính đã có từ hàng trăm năm nay Từ đó, các công ty, startup Fintech liêntiếp ra đời, trở thành đại diện tiêu biểu cho cuộc các mạng kỹ thuật số, được đồn đoán là có thểthay đổi hoàn toàn phương thức kinh doanh của ngành ngân hàng

Nổi bật nhất trong số đó có thể kể đến Momo, là một nền tảng ví điện tử do Công ty Cổphần Dịch vụ Di động Trực tuyến (M_Service) phát triển cho phép người dùng thực hiện cácthanh toán, giao dịch trên các thiết bị di động Bằng việc hợp tác với hơn 90% ngân hàng tạiViệt Nam cùng 10.000 thương nhân trong nước, công ty này nắm giữ hơn 80% thị phần tronglĩnh vực thanh toán kỹ thuật số.Tính đến năm 2022, ví điện tử MoMo có hơn 31 triệu ngườidùng sử dụng

Sự phát triển và mở rộng vượt bật của Momo kéo theo nhu cầu về nguồn nhân lực đểđảm bảo cho việc phát triển và duy trì các dự án Các cuộc tuyển mộ nhân lực, đặc biệt là nguồnnhân lực trẻ liên tiếp được đội ngũ nhân sự của M_service tổ chức để tìm kiếm các ứng cử viênphù hợp Sau hơn 3 năm học tập và làm việc tại Đại học công nghệ thông tin (UIT), em đãquyết định đăng ký chương trình Momo Talent với mong muốn được trải nghiệm môi trườnglàm việc của một trong những “kỳ lân" công nghệ hàng đầu Việt Nam, đồng thời học hỏi thêmkinh nghiệm trong việc phát triển sản phẩm trong các dự án thực tế

22

Trang 3

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ềukiện em làm bài báo cáo này.

Phan Duy ĐứcTpHCM, 14/06/2022

33

Trang 4

NHẬN XÉT CỦA KHOA

44

Trang 5

MỤC LỤC

55

Trang 7

Chương 1: Giới thiệu công ty thực tập

77

Trang 10

1010

Trang 11

MoMo là một nền tảng ví điện tử do Công ty Cổ phần Dịch vụ Di động Trực tuyến(M_Service) phát triển cho phép người dùng thực hiện các thanh toán, giao dịch trêncác thiết bị di động Bằng việc hợp tác với hơn 90% ngân hàng tại Việt Nam cùng10.000 thương nhân trong nước, công ty này nắm giữ hơn 80% thị phần trong lĩnhvực thanh toán kỹ thuật số Tính đến năm 2022, ví điện tử MoMo có hơn 31 triệungười dùng sử dụng.

MoMo cho phép người dùng thanh toán hơn 500 dịch vụ khác nhau bao gồm hóa đơnđiện, nước, internet, phí chung cư, nạp tiền điện thoại, đặt vé máy bay, vé tàu, vé xe,đặt phòng khách sạn, mua đồ ăn, thức uống, thanh toán cà phê, đổ xăng, mua sắmcùng các dịch vụ tài chính như ngân hàng, bảo hiểm Bên cạnh đó, ứng dụng còn tíchhợp chức năng tích điểm thưởng, đổi điểm thưởng lấy voucher mua sắm, nuôi heođất hoàn tiền hoặc quyên góp cho các hoạt động thiện nguyện Cuối năm 2020,MoMo ra mắt tính năng "du lịch, đi lại"

Ngoài ra, MoMo là ứng dụng thanh toán di động đầu tiên của Việt Nam tích hợpcông nghệ "One Touch Payment", cho phép khách hàng thực hiện giao dịch thôngqua một lần chạm màn hình

1111

Trang 12

1212

Trang 15

Chương 2: Nội dung thực tập

1515

Trang 16

Tham gia vào chương trình Momo Talent với vai trò là một ITC Trainee, em đã được họcrất nhiều kiến thức về công nghệ cũng như quy trình trong việc phát triển các dự án và sảnphẩm thật đến tay người dùng

1616

Trang 17

1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty

1717

Trang 18

Thời gian : 1 ngày

1818

Trang 19

Nội dung : Giới thiệu về công ty, cách tổ chức của công ty

1919

Trang 20

Đượ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ủacông ty

2020

Trang 21

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 tynhư 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ôngviệc…

2121

Trang 22

Kết quả : Hiểu thêm về công ty M_Service, 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

2222

Trang 23

2 Nghiên cứu kỹ thuật

2323

Trang 24

2.1 Các công cụ làm việc

2424

Trang 25

Thời gian : 1 tuần

2525

Trang 26

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.

2626

Trang 27

Trong thời gian này, live manager đã hướng dẫn thực tập sinh tìm hiểu về cáccông cụ sẽ giúp ích cho trong công việc sau này

2727

Trang 28

Các công cụ cần thiết trong việc phát triển sản phẩm bao gồm:

- Visual Studio Code: Text editor được sử dụng chính trong quá trình phát

- NodeJS, NVM, Yarn: Các công cụ quản lý package

- Momo development, staging engine: Các engine sử dụng để dev, debug

- Git, Gitlab, CI/CD: Công cụ quản lý source code, deploy, integration

- Xcode, Iphone Simulator, Android Studio, Android Emulator: Các IDE vàmáy ảo phục vụ cho việc dev, debug sản phẩm

2828

Trang 29

Thực hiện : Học lý thuyết và ứng dụng các công cụ trên

2929

Trang 30

Kết quả : Có thể sử dụng và kết hợp các công cụ kể trên

3030

Trang 31

2.2 Tìm hiểu ngôn ngữ TypeScript và React Native framework

3131

Trang 32

Thời gian : 2 tuần

3232

Trang 33

Nội dung :

- Được training về cách sử dụng TypeScript trong việc viết code, cách hạn chếcrash bằng việc sử dụng thư viện lodash - safeGet kết hợp với type-interface trongTS

Thực hiện :

3333

Trang 34

- Sử dụng Type Script trong dự án Commit và được review code bởi live manager

và các thành viên trong team

Kết quả :

3434

Trang 35

- Có thể sử dụng Type Script một cách cơ bản

3535

Trang 36

- Có thể ứng dụng Type Script cũng với lodash để hạn chế crash của một ứng dụng,giúp nâng cao trải nghiệm người dùng

3636

Trang 38

2.3 Sử dụng React Native framework

3838

Trang 39

Nội dung: Các kiến thức cơ bản về React Native để có thể phát triển một ứng dụng di

động cơ bản:

3939

Trang 40

- React Native là gì ?

4040

Trang 41

React native là một công cụ giúp chúng ta lập trình đa nền tảng để tạo ra các ứngdụng trên môi trường native Nó là một framework mã nguồn mở được phát triểnbởi Facebook, cho phép bạn sử dụng Java script để phát triển phần mềm trên điệnthoại di động Android và IOS React native cũng giống như React vậy chúng sửdụng các native components thay vì các web components Vì vậy để hiểu về cấutrúc của React native chúng ta cần phải có các kiến thức cơ bản với các khái niệm

cơ bản của React như là JSX, components, props hay là state

4141

Trang 43

- Component:

4343

Trang 44

Components là một khái niệm cơ bản của cả React và React native Chính việcchia nhỏ ứng dụng thành các components nhỏ tạo nên tính tái sử dụng cao và khảnăng mở rộng của chúng.

4444

Trang 45

- Props

4545

Trang 46

Props là viết tắt của Properties Một điều mà bạn cần phải nhớ khi sử dụng props

đó là không bao giờ nên thay đổi giá trị của nó, hay nói cách khác, đây là một dữliệu immutable Các component nhận props từ component cha Bạn không đượcthay đổi giá trị của props trong các component này mà chỉ được phép đọc giá trị rathôi Trong React thì dữ liệu sẽ đi theo một chiều, có nghĩa là từ component cha

=> các component con

4646

Trang 48

- State

4848

Trang 49

State thì hoạt động khác với Props State là dữ liệu nội bộ của một Component,trong khi props là dữ liệu được truyền cho Component Chính vì vậy chúng tahoàn toàn có thể thay đổi state, và coi nó là một kiểu dữ liệu mutable Vì đặc điểmnày nên chúng ta hay sử dụng State để thay đổi dữ liệu của view, binding data lạiview khi có thay đổi Nhưng chúng ta không dùng this.state để gán lại giá trị thayđổi cho nó, mà chúng ta sẽ dùng this.setState Function này sẽ trigger cho classrằng hãy render lại component và các component con của nó, còn this.state thìkhông.

4949

Trang 51

- React Lifecycle

5151

Trang 52

Là vòng đời của các Component được sử sụng bên trong ứng dụng của bạn

5252

Trang 53

Có thể group các phương thức lifecycle ra 3 nhóm, ứng với 4 giai đoạn củacomponent: Mounting, Updating, Unmounting, Error Handling

5353

Trang 56

● Unmounting:

componentWillUnmount()

5656

Trang 58

Thực hiện :

5858

Trang 59

- Tự học và bổ sung các kiến thức về React Native thông qua internet và dưới sựchỉ dẫn của live manager cũng như các thành viên trong team

Kết quả :

5959

Trang 60

- Nắm vững cách sử dụng framework React Native và có thể sử dụng trong dự án

6060

Trang 62

2.4 Phát triển ứng dụng trên nền tảng Momo platform

Nội dung : Momoplatform cung cấp các công cụ hỗ trợ lập trình viên trong quá trình

phát triển ứng dụng

- Platform engine

- Web admin

- Momo core pakage

- Kiến trúc Momo platform - mini app

Trang 63

2.5 Tham gia các buổi training kỹ năng mềm

- Problem solving - Critical Thinking

- Project management

6363

Trang 64

2.6 Thực hiện project

6464

Trang 65

1 Dự án Phát tâm công đức

○ Các công việc đã thực hiện:

■ Cải tiến thông tin Phật tử

■ Thêm chức năng An viên tu tập

■ Cải tiến An Viên tu tập

■ Gắn Cornerstone cho HomeBanner

■ Hotfix Home Scroll

■ Chỉnh sửa, thêm tracking cho mini-app

■ Thêm chức năng Đề xuất công đức

○ Các kỹ năng đã học được:

■ Quy trình CI/CD

■ Kiến trúc Momo platform-mini app

■ JavaScript (async, callback, debounce function, )

■ React (reducers, hooks, )

■ Quy trình Agile-Scrum, flow làm việc giữa Frontend

Product-Backend-■ Detox (automation testing framework)

6565

Trang 66

2 Dự án Creditcard - Thẻ tín dụng

○ Các công việc đã thực hiện:

■ Thêm màn hình Onboarding Screen

■ Tích hợp API CheckStatus

■ Khởi tạo, thêm các màn hình Register Application Form (Step 3)

1-2-■ Thêm các màn hình UI của mini app (home, card list, )

■ Tạo các entrypoint để truy cập từ các mini-app khác(ref Id)

■ Thêm performance tracing cho mini-app

■ Tích hợp API Get application step

■ Update lại UI mới theo yêu cầu của product

■ Cải thiện performance cho mini-app (sử dụng cache và kỹ thuật offline-first)

○ Các kỹ năng đã học được:

■ TypeScript

■ Eslint

■ Hiện thực pattern MVVM (Model - View - ViewModel)

■ Cleancode, structure folder

■ Optimize performance: useCallback, useMemoizCallBack, offline first cache,

■ Quy trình khởi tạo mini app

■ Cách handle exception (sử dụng lodash, model, )

■ Cách sử dụng mocking system để tăng năng suất

6666

Trang 67

3 Dự án Fast Money - Vay nhanh

○ Các công việc đã thực hiện:

■ Refactor mini-app sang sử dụng ngôn ngữ TypeScript

■ Cải thiện performance

■ Thêm tracking cho mini-app

○ Các kỹ năng đã học được:

■ Cách refactor và maintain 1 dự án

■ React class component

6767

Trang 68

4 Dự án DNA-FS lib

○ Các công việc đã thực hiện:

■ Đóng góp (commit) vào FSBaseScreen

■ Đóng góp (commit) vào Component, Utils (OnboardingSlider, StringUtils, )

■ Viết TypeScript converting process document

■ Khởi tạo Fs Library Example Mini app

○ Các kỹ năng đã học được:

■ Cách sử dụng và maintain một thư viện trên NPM

6868

Trang 70

3 Lịch làm việc

Tháng Công việc Người hướng dẫn

Mức độ hoàn thành

Nhận xét của người hướng dẫn

1 Maintain và phát triển

dự án Phát tâm côngđức

Anh Nguyễn TrầnHoài Trung, anh

- Maintain dự ánFastmoney

Trang 72

TỔNG KẾT

Sau 6 tháng Momo, em đã may mắn được tham gia vào các dự án thực tế (4 dự án) chứ không chỉ là các project mẫu Quá trình học hỏi và làm việc tại công ty dù có hơi áp lực nhưng đã đem lại cho em rất nhiều kiến thức, tư duy, kinh nghiệm cả về quá trình thực hiện dự án lẫn trong cách làm việc và giao tiếp

Chân thành cảm ơn sự giúp đỡ của anh Trung, anh Thành cũng như các thành viên của DNA team, chị Quyên, và công ty M_Service đã tạo môi trường và giúp đỡ cho em trong suốt quá trình thực tập

Cảm ơn khoa CNPM đã tạo điều kiện cho em hoàn thành bài báo cáo này

Phan Duy Đức

7272

Ngày đăng: 17/08/2022, 21:05

🧩 Sản phẩm bạn có thể quan tâm

w