Tải bản đầy đủ (.pdf) (16 trang)

Báo cáo thực tập phát triển ứng dụng di động

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 (563.06 KB, 16 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM

BÁO CÁO THỰC TẬP

PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG

Công ty thực tập:
CÔNG TY TNHH KỸ THUẬT SỐ TYME

Người phụ trách:
ĐẠT HUỲNH
Thực tập sinh:
TRẦN LÊ THANH TÙNG

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


LỜI MỞ ĐẦU
Ngày nay, ngành công nghiệp phần mềm đang có những bước tiến nhanh chóng cùng với
những ứng dụng thực tiễn trong cuộc sống. Chính nhờ vào sự phát triển đó mà dẫn tới các thiết bị
số như máy tính, điện thoại thơng minh đang trở nên vơ cùng phổ biến. Vì thế mà nhu cầu về phát
triển các ứng dụng trên điện thoại thông minh ngày càng gia tăng khiến nó trở thành một mảng
khơng thể thiếu trong bức tranh tồn cảnh của ngành cơng nghiệp phần mềm.
Đối với em, điện thoại di động đã trở thành một người bạn đồng hành không thể thiếu trong
cuộc sống hiện đại ngày nay. Tuy điện thoại chỉ mang một kích thước nhỏ gọn nhưng lại mang
trong mình vơ vàn những chức năng hữu ích. Có thể nói rằng, điện thoại di động có thể thay thế
phần nào những thiết bị khác như đồng hồ, máy ảnh, máy tính cầm tay,… Bản thân em tuy tiếp
xúc khá trễ với điện thoại di động nhưng sự đa năng của nó lại làm em hứng thú với việc lập trình
các ứng dụng di động, đặc biệt là khi mình có thể tự tay tạo ra các ứng dụng để phục vụ cho bản
thân mình và những người khác.


Sự phát triển của ngành cơng nghiệp phần mềm nói chung cũng như lập trình ứng dụng di
động nói riêng có tác động to lớn đến hầu hết tất cả các lĩnh vực trong đời sống. Ngành kinh tế
hiện đại như tài chính – ngân hàng cũng khơng nằm ngồi xu thế này. Các ứng dụng của cơng
nghệ thơng tin đã góp phần hỗ trợ cho sự vận hành của các dịch vụ tài chính – ngân hàng. Từ đó,
các cơng ty cơng nghệ tài chính và các ngân hàng số liên tiếp ra đời với một phương thức kinh
doanh hoàn toàn mới và Tyme Bank là một trong số đó.
Sau ba năm học tập trên trường, em cảm thấy đã đến lúc mình bắt đầu một chặng đường
mới để mình có thể học hỏi thêm kinh nghiệm thực tế và phát triển bản thân mình. Ngay lúc đó,
em đã tìm thấy Tyme – một mơi trường chuyên nghiệp, lý tưởng để có thể giúp em thực hiện điều
đó, đồng thời đây cũng là một cơ hội để em thể hiện bản thân mình, mở đầu cho sự nghiệp sau
này của em.

2


LỜI CẢM ƠN
Em xin trân trọng gửi lời cảm ơn đến quý công ty Tyme đã tạo điều kiện cho em có cơ hội
được thực tập và phát triển tại cơng ty. Trong suốt q trình thực tập em đã học hỏi được rất nhiều
điều, từ những kiến thức chuyên môn cho đến những kỹ năng mềm cần thiết trong môi trường làm
việc chuyên nghiệp.
Đặc biệt em muốn gửi lời cảm ơn chân thành đến mentor của mình là anh Đạt Huỳnh,
người đã luôn bên cạnh hướng dẫn, giúp đỡ và cho em những lời khuyên trong quá trình thực tập
tại Tyme. Bên cạnh đó em cũng muốn gửi lời cảm ơn đến những thành viên của Bamboo team,
những anh/chị đã giúp đỡ em rất nhiều từ ngày những đầu em đến công ty. Và cũng không thể
không kể đến sự hỗ trợ từ bộ phận nhân sự và bộ phận IT tại Tyme, em xin cảm ơn rất nhiều vì
sự hỗ trợ tận tình mà mọi người đã dành cho em cũng như dành cho các bạn thực tập sinh khác
tại Tyme. Ngồi ra thì, em xin đặc biệt cảm ơn những anh chị trainer, anh Sơn Lê, anh Hà Hồ,
anh Long Huỳnh, chị Thủy Phạm, chị Tuyến Nguyễn đã góp sức vào chương trình thực tập này
để tạo ra những buổi training vơ cùng hữu ích.
Cuối cùng, em xin cảm ơn các thầy cô tại trường Đại học Công nghệ Thông tin cũng như

các thầy cô tại khoa Công nghệ Phần mềm đã tận tâm giảng dạy em trong suốt những năm đại học
của mình để em có thể tự tin vững bước trên con đường sự nghiệp. Em cũng xin cảm ơn các thầy
cơ vì đã hỗ trợ và tạo điều kiện cho em thực hiện bài báo cáo này. Một lần nữa, em xin chân thành
cảm ơn.
Trần Lê Thanh Tùng
Thành phố Hồ Chí Minh, ngày 10 tháng 12 năm 2022

3


NHẬN XÉT CỦA KHOA
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................

4



MỤC LỤC
CHƯƠNG 1. GIỚI THIỆU CÔNG TY THỰC TẬP ................................................................ 6
1. Giới thiệu về Tyme ............................................................................................................... 6
2. Sản phẩm của công ty ........................................................................................................... 6
CHƯƠNG 2. NỘI DUNG THỰC TẬP ....................................................................................... 7
1. Giai đoạn 1: Tìm hiểu, khám phá ......................................................................................... 7
2. Giai đoạn 2: Quan sát ......................................................................................................... 10
3. Giai đoạn 3: Thực hành ...................................................................................................... 10
4. Giai đoạn 4: Ship IT ........................................................................................................... 11
CHƯƠNG 3. CHI TIẾT VỀ PROJECT .................................................................................. 12
1. Send money with QR Code (iOS) ...................................................................................... 12
TỔNG KẾT ................................................................................................................................. 16

5


CHƯƠNG 1. GIỚI THIỆU CÔNG TY THỰC TẬP
1. Giới thiệu về Tyme

Tyme Group là một trong những tập đoàn ngân hàng kỹ thuật số phát triển nhanh nhất thế
giới, xây dựng các ngân hàng “high-tech” và “high-touch” ở các thị trường đang phát triển
mới nổi.
Có trụ sở chính tại Singapore cùng với Trung tâm Phát triển Sản phẩm & Công nghệ tại
Việt Nam, Tyme Group thiết kế, xây dựng và thương mại hóa các ngân hàng kỹ thuật số
cho các thị trường mới nổi, với chuyên môn đặc biệt trong việc phục vụ các nhóm dân cư
chưa được phục vụ đầy đủ và ít được tiếp cận với ngân hàng.
Tyme Group sở hữu nền tảng công nghệ và tài sản trí tuệ trên tồn cầu, đồng thời hợp tác
với các ngân hàng trong nước cũng như các đối tác trong lĩnh vực Fintech để cho ra mắt

những ngân hàng kỹ thuật số mới.
Về phía Tyme Vietnam, đây là một Trung tâm Công nghệ (Technology Hub) của Tyme
Group và được thành lập vào năm 2016. Tyme Vietnam tập hợp những người làm về kĩ
thuật và sản phẩm có chung sứ mệnh toàn cầu là trở thành serial bank builders, định hướng
tương lai của ngân hàng thông qua công nghệ.
2. Sản phẩm của công ty
Tyme đã xây dựng và cung cấp các dịch vụ ngân hàng tại hai quốc gia là Nam Phi và
Philippines.
 TymeBank: có trụ sở tại Nam Phi, hiện là một trong những ngân hàng số phát triển
nhanh nhất thế giới với hơn 5 triệu khách hàng kể từ khi ra mắt vào tháng 2 năm 2019.
 GoTyme: có trụ sở tại Philippines, là công ty liên doanh giữa Gokongwei Group và
Tyme Group.
6


CHƯƠNG 2. NỘI DUNG THỰC TẬP
Chương trình thực tập năm 2022 của Tyme bao gồm nhiều mảng khác nhau, như mảng
Mobile (di động), Python (Data, DevOps), Java API (Backend) và Quality Assurance. Cơng ty tổ
chức chương trình thực tập này nhằm muốn tạo ra nơi để các bạn sinh viên có cơ hội được học
tập, phát triển cũng như là trải nghiệm đầu tiên tốt đẹp khi làm việc ở trong mơi trường làm việc
chun nghiệp. Xun suốt q trình tham gia vào đợt thực tập này, em không những có cơ hội
được tiếp xúc với các kiến thức chuyên mơn mà cịn được phát triển các kỹ năng mềm khác nhằm
tạo cho bản thân một bước đà để tiếp tục sự nghiệp của bản thân sau này.
Nhìn chung thì quá trình thực tập bao gồm 4 giai đoạn (trong vòng 3 tháng), đối với mảng
Mobile mà em đã chọn thì có thêm 2 mảng con nữa là Android và iOS. Khi tham gia chương trình
thực tập của Tyme, em đã có cơ hội để tiếp xúc với iOS Development, một định hướng mà em đã
có hứng thú từ lâu và đây cũng chính là nội dung mà em đã thực tập tại Tyme trong 3 tháng vừa
qua.
1. Giai đoạn 1: Tìm hiểu, khám phá
Thời gian: tuần 1 – 2.

Nội dung:
 Tham gia những buổi sharing chung về giới thiệu cơng ty, q trình phát triển,
những quy tắc, quy định về bảo mật, an tồn thơng tin, văn hóa, sự kiện, cách làm
việc, v.v.
 Tham gia những phiên học (online & offline sessions):
o Engineering Culture: Những hành vi, thái độ của một kỹ sư và giá trị cốt lõi
của công ty
o Professionalism in Working: Tác phong chuyên nghiệp khi làm việc tại cơng
ty, văn hóa ứng xử sao cho chuẩn mực.
o Git: Cơ bản về hệ thống quản lý phiên bản phân tán và cách sử dụng.

7


o Branching Model: Mơ hình phân nhánh, có thể hiểu là các quy tắc trong
quản lý source code để mà mọi người cùng làm việc hiệu quả trên một source
code dễ dàng và tránh các vấn đề về merge code.
o Cyber Security: Khóa học về bảo mật về an ninh mạng, những nguy cơ dẫn
đến bị hack và cách phòng tránh (bởi banking là domain khá nhạy cảm).
o KnowBe4 Security Training: Những vấn đề về bảo mật và hành động cần
lưu ý để tránh gây rị rỉ thơng tin.
 Tìm hiểu cách sử dụng các công cụ làm việc:
o Confluence: Công cụ quản lý, lưu trữ, chia sẻ tài liệu.
o Jira: Công cụ quản lý công việc.
o BitBucket: Code repository dựa trên Git.
o Hibob: Nền tảng quản lý nhân sự.
o Slack: Cơng cụ giao tiếp chính tại Tyme.
o Outlook: Nền tảng Email chính tại Tyme.
o Xcode: IDE phát triển ứng dụng nền tảng iOS.
 Tìm hiểu tài liệu, nghiên cứu, thực hành và tham gia những buổi training về chuyên

môn theo lộ trình đã được các trainer và mentor của từng mảng xây dựng:
o iOS Development: Phát triển ứng dụng điện thoại trên nền tảng iOS sử dụng
ngôn ngữ Swift và UIKit Framework, đồng thời kết hợp với Reactive
Programming thông qua RxSwift.
 Swift Foundation: Cơ bản về ngôn ngữ Swift.
 UIKit: UI Framework để phát triển iOS.
 Reactive Programming với RxSwift: Ý tưởng chính là làm cho ứng
dụng có thể phản ứng với thay đổi trong dữ liệu cơ bản mà khơng cần
phải trực tiếp gọi đến nó.
 Networking + Alamofire: Tổng quan về kết nối mạng trong phát triển
iOS và thư viện Alamofire.
 Multi-threading: Xử lý đa luồng trong iOS.
8


 Local Storage: Xử lý lưu trữ dữ liệu cục bộ.
 Unit Testing: Cách thực hiện các unit test trong phát triển ứng dụng
iOS.
o MVVM-C Pattern: Mẫu thiết kế phát triển ứng dụng điện thoại iOS mà Tyme
đang áp dụng để giảm bớt sự phụ thuộc giữa các thành phần trong cấu trúc
ứng dụng.
o Clean Architecture: Clean Architecture là một khái niệm được định nghĩa
và đề xuất bởi Robert C.Martin (hay còn gọi là Uncle Bob) với mục tiêu là
thức đẩy việc triển khai hệ thống gắn kết, độc lập với công nghệ và ưu tiên
khả năng tái sử dụng lại code.
o TymeBank iOS Application Architecture: Kiến trúc của ứng dụng trên nền
tảng iOS của TymeBank với sự áp dụng MVVM-C và Clean Architecture.
o Automation Test: Kiểm thử tự động với Pikachu Framework, Appium.
Kết quả:
 Hiểu rõ hơn về công ty và các sản phẩm của công ty.

 Hiểu được cách đảm bảo an tồn, bảo mật thơng tin khi làm việc tại cơng ty.
 Hiểu được văn hóa và quy trình làm việc tại cơng ty.
 Ứng dụng được các công cụ làm việc hiệu quả.
 Nắm rõ các nội dung cơ bản trong lập trình iOS và có thể ứng dụng để xây dựng
tính năng.
 Hiểu được cấu trúc ứng dụng của TymeBank, từ đó có thể tiến tới phát triển các tính
năng.
 Hiểu rõ tầm quan trọng của Clean Architecture và cách ứng dụng để phát triển phần
mềm.
 Hiểu cơ bản về Automation Test, biết cách sử dụng Pikachu Framework và Appium
để chạy Automation Test. Đồng thời, thực hiện được việc viết các testcase cho các
tính năng với Pikachu Framework.
9


2. Giai đoạn 2: Quan sát
Thời gian: tuần 3 – 4.
Nội dung:
 Tham gia quan sát và tìm hiểu cách làm việc, quy trình và văn hóa của team.
o Agile Scrum
o Các sự kiện:
 Daily Standups
 Refinement
 Sprint Planning
 Internal Review
 Sprint Review
 Sprint Retro
o Quy trình làm việc của team và của community cho các tech stack tại Tyme
o Quy trình Release tại Tyme
 Tìm hiểu domain mà team mình đang chịu trách nhiệm.

o DebiCheck – Transaction & Saving
Kết quả:
 Nắm rõ được các nội dung liên quan đến quy trình làm việc, tại sao phải có những
sự kiện đó.
 Hiểu rõ quy trình làm việc và văn hóa của team.
 Hiểu được những công việc mà các thành viên của team đang thực hiện.
 Có thể tham gia và đóng góp vào các sự kiện của team cũng như của cơng ty.
 Nắm rõ quy trình để release phiên bản mới cho ứng dụng.
3. Giai đoạn 3: Thực hành
Thời gian: tuần 5 – 12.
Nội dung:
 Tham gia vào quy trình của team và bắt đầu thực hiện các công việc.
10


 Ứng dụng những gì đã tìm hiểu, nghiên cứu để thực hiện trên sản phẩm thật của
công ty.
 Thực hiện ý tưởng riêng với team thực tập sinh mảng Mobile Send Money with QR
Code (chi tiết ở chương 3).
Kết quả:
 Có được kinh nghiệm thực tế về quy trình làm việc của team.
 Có kinh nghiệm thực tế trong việc thực hiện tính năng trên sản phẩm thật của công
ty.
4. Giai đoạn 4: Ship IT
Thời gian: tuần 13.
Nội dung:
 Thuyết trình về những bài học tại Tyme và đề xuất một ý tưởng, giải pháp để cải
thiện Tyme, có thể là về quy trình, về cách làm việc, hoặc về sản phẩm,…
o Send Money with QR Code
 Performance Review với mentor.

Kết quả:
 Biết được ưu điểm và nhược điểm của bản thân từ Performance Review để từ đó có
thể cải thiện và phát triển bản thân hơn nữa.

11


CHƯƠNG 3. CHI TIẾT VỀ PROJECT
Ngoài mở tài khoản và giao dịch thông qua các kiosk, TymeBank cung cấp các nền tảng
giao dịch khác trên thiết bị điện thoại di động bao gồm cả Android và iOS. Các ứng dụng này có
thể tải về và sử dụng miễn phí.

1. Send money with QR Code (iOS)
Một trong những tính năng thiết yếu nhất trong ứng dụng di
động TymeBank là Send Money, hay cịn gọi là Gửi Tiền.
Tính năng này cho phép một người dùng TymeBank có thể
gửi tiền đến một số điện thoại vùng Nam Phi (cả những số
điện thoại chưa có tài khoản ngân hàng).
Ở tính năng này, theo cách thơng thường hiện có tại ứng dụng,
người dùng phải thực hiện các bước sau để có thể thực hiện
gửi tiền: nhập số điện thoại → nhập tên người nhận → nhập
số tiền → nhập mô tả giao dịch → gửi tiền.

12


Tuy nhiên thì đó là trong trường hợp thuận lợi, còn trong trường hợp người dùng nhập sai
số điện thoại thì người dùng phải quay trở lại và bắt đầu luồng gửi tiền lại từ đầu và điều
này thì khá bất tiện. Ngoài ra, trong trường hợp người dùng muốn gửi hoặc nhận tiền từ
nhiều người thì việc thực hiện thủ công các bước trên sẽ khá mất nhiều thời gian.

Điều này dẫn đến một ý tưởng để cải thiện quá trình gửi tiền cho người dùng. Bằng cách
sử dụng mã QR để lưu trữ thông tin gửi tiền, người dùng có thể thực hiện thao tác nhanh
hơn. Mã QR này được tạo tự động dựa trên thông tin người dùng và người dùng có thể
chỉnh sửa số tiền nhận và mơ tả cho giao dịch. Sau đó thì người dùng có thể gửi mã QR
cho những người khác, người sẽ quét mã QR này để gửi số tiền đã được xác định trước đó.
Các tính năng:
 Hiển thị mã QR:
o Cho phép chỉnh sửa số tiền và mô tả giao dịch
o Gợi ý mô tả giao dịch
o Lưu và chia sẻ mã QR
 Quét mã QR:
o Quét mã QR với số tiền và mô tả chưa được xác định
o Quét mã QR với số tiền và mô tả đã được xác định
o Bật/tắt đèn flash
o Lấy mã QR từ thư viện ảnh
 Hướng dẫn sử dụng
So sánh với các phương thức khác thì mã QR là rất nhanh. Những gì người dùng cần làm
là mở ứng dụng và quét mã, sau đó là xác nhận giao dịch. Khi thực hiện so sánh luồng gửi
tiền theo cách thông thường và dùng mã QR thì thời gian hồn thành có sự cách biệt khá
rõ ràng.
Một ứng dụng khác nữa là điều này có cho phép nhà bán lẻ có thể tạo mã QR trên biên lai
của khách hàng, để in ra và đặt tại cửa hàng, đưa vào hóa đơn hoặc cung cấp duới dạng
thanh tốn trực tuyến. Khách hàng có thể quét nó và sau đó xác nhận giao dịch.
13


Giao dịch với mã QR cũng làm giảm khả năng xảy ra lỗi, chẳng hạn như nhập sai số điện
thoại hoặc gửi nhầm người nhận. Điều này tất nhiên sẽ thuận tiện hơn cho người dùng khi
họ không bận tâm đến việc số điện thoại nhận tiền mà họ nhập vào có chính xác hay khơng.
Người thực hiện:

 Trần Lê Thanh Tùng
 Trương Kim Lâm (sinh viên UIT cùng là thực tập sinh Mobile mảng iOS tại Tyme
với em)
Những việc đã làm:
 Tự động tạo mã QR dựa trên thông tin người dùng
 Tính năng gửi tiền bằng mã QR với số tiền và mô tả giao dịch chưa được xác định
 Tính năng gửi tiền bằng mã QR với số tiền và mô tả giao dịch đã được xác định
 Tính năng bật/tắt đèn flash
 Tính năng gửi tiền với mã QR được lấy từ thư viện ảnh
 Tính năng chỉnh sửa số tiền và mô tả giao dịch cho mã QR
 Tính năng gợi ý mơ tả giao dịch trong phần chỉnh sửa số tiền và mô tả giao dịch
 Tính năng lưu mã QR dưới dạng hình ảnh
 Tính năng chia sẻ mã QR
 Tính năng hướng dẫn sử dụng
 Đồng bộ hóa dữ liệu QR giữa nền tảng Android và iOS
Hướng phát triển:
 Hiện tại tính năng quét mã QR chỉ hỗ trợ với camera được đính sẵn trong ứng dụng,
nên cải thiện tiếp theo cho tính năng này có thể là qt mã QR với camera của thiết
bị di động. Tuy nhiên, điều đó cũng đồng nghĩa với việc phải đối mặt với nhiều thử
thách về bảo mật.
 Một cải thiện hơn nữa có thể là mã hóa dữ liệu được sử dụng để tạo mã QR. Điều
này sẽ tăng được tính bảo mật hơn nữa, tuy nhiên thì ta phải đảm bảo được sự đồng
14


bộ về phương thức mã hóa giữa các ngân hàng liên kết và điều này cũng là một thử
thách không nhỏ.
Những gì đã học được:
 Kiến trúc ứng dụng TymeBank
 Kinh nghiệm phát triển ứng dụng iOS thực tế

 Mô hình MVVM-C trong phát triển ứng dụng
 Clean Architecture
 Branching Model
 Ứng dụng Reactive Programming với RxSwift
 Mocking API với Mockoon

15


TỔNG KẾT
Trong 3 tháng thực tập tại Tyme, em đã cơ hội được học tập và làm việc trong mảng phát
triển ứng dụng iOS. Đối với em đây là một trải nghiệm vơ cùng q giá bởi trước đó em chưa
từng có cơ hội được học tập ở mảng này trước kia. Khơng những thế mà em cịn có được cơ hội
để ứng dụng những gì mình học được vào trong một sản phẩm thực tế. Bên cạnh đó, em cịn được
học hỏi các kỹ năng mềm và có cơ hội tiếp xúc với các anh chị đi trước.
Em xin chân thành cảm ơn Tyme đã mang đến cho em một cơ hội tuyệt vời như thế và em
muốn nói rằng, em cảm thấy rất tự hào khi là một phần của Tyme trong 3 tháng vừa qua.

16



×