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Ê T[.]
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 có bước tiến nhanh chóng với ứng dụng thực tiễn sống Chính nhờ vào phát triển mà dẫn tới thiết bị số máy tính, điện thoại thơng minh trở nên vơ phổ biến Vì mà nhu cầu phát triển ứng dụng điện thoại thơng minh ngày gia tăng khiến trở thành mảng thiếu tranh tồn cảnh ngành cơng nghiệp phần mềm Đối với em, điện thoại di động trở thành người bạn đồng hành thiếu sống đại ngày Tuy điện thoại mang kích thước nhỏ gọn lại mang vơ vàn chức hữu ích Có thể nói rằng, điện thoại di động thay phần thiết bị khác đồng hồ, máy ảnh, máy tính cầm tay,… Bản thân em tiếp xúc trễ với điện thoại di động đa lại làm em hứng thú với việc lập trình ứng dụng di động, đặc biệt tự tay tạo ứng dụng để phục vụ cho thân người khác Sự phát triển ngành cơng nghiệp phần mềm nói chung 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 lĩnh vực đời sống Ngành kinh tế đại tài – ngân hàng khơng nằm ngồi xu Các ứng dụng cơng nghệ thơng tin góp phần hỗ trợ cho vận hành dịch vụ tài – ngân hàng Từ đó, cơng ty cơng nghệ tài ngân hàng số liên tiếp đời với phương thức kinh doanh hoàn toàn Tyme Bank số Sau ba năm học tập trường, em cảm thấy đến lúc bắt đầu chặng đường để học hỏi thêm kinh nghiệm thực tế phát triển thân Ngay lúc đó, em tìm thấy Tyme – môi trường chuyên nghiệp, lý tưởng để giúp em thực điều đó, đồng thời hội để em thể thân mình, mở đầu cho nghiệp sau em 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ó hội thực tập phát triển công ty Trong suốt trình thực tập em học hỏi nhiều điều, từ kiến thức chuyên môn kỹ mềm cần thiết 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 anh Đạt Huỳnh, người bên cạnh hướng dẫn, giúp đỡ cho em lời khuyên trình thực tập Tyme Bên cạnh em muốn gửi lời cảm ơn đến thành viên Bamboo team, anh/chị giúp đỡ em nhiều từ ngày đầu em đến công ty Và không kể đến hỗ trợ từ phận nhân phận IT Tyme, em xin cảm ơn nhiều hỗ trợ tận tình mà người dành cho em dành cho bạn thực tập sinh khác Tyme Ngồi thì, em xin đặc biệt cảm ơn 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 để tạo buổi training vơ hữu ích Cuối cùng, em xin cảm ơn thầy cô trường Đại học Công nghệ Thông tin thầy cô khoa Công nghệ Phần mềm tận tâm giảng dạy em suốt năm đại học để em tự tin vững bước đường nghiệp Em xin cảm ơn thầy hỗ trợ tạo điều kiện cho em thực báo cáo 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 NHẬN XÉT CỦA KHOA MỤC LỤC CHƯƠNG GIỚI THIỆU CÔNG TY THỰC TẬP Giới thiệu Tyme Sản phẩm công ty CHƯƠNG NỘI DUNG THỰC TẬP Giai đoạn 1: Tìm hiểu, khám phá Giai đoạn 2: Quan sát 10 Giai đoạn 3: Thực hành 10 Giai đoạn 4: Ship IT 11 CHƯƠNG CHI TIẾT VỀ PROJECT 12 Send money with QR Code (iOS) 12 TỔNG KẾT 16 CHƯƠNG GIỚI THIỆU CÔNG TY THỰC TẬP Giới thiệu Tyme Tyme Group tập đoàn ngân hàng kỹ thuật số phát triển nhanh giới, xây dựng ngân hàng “high-tech” “high-touch” thị trường phát triển Có trụ sở Singapore với Trung tâm Phát triển Sản phẩm & Công nghệ Việt Nam, Tyme Group thiết kế, xây dựng thương mại hóa ngân hàng kỹ thuật số cho thị trường nổi, với chuyên môn đặc biệt việc phục vụ nhóm dân cư chưa phục vụ đầy đủ tiếp cận với ngân hàng Tyme Group sở hữu tảng công nghệ tài sản trí tuệ tồn cầu, đồng thời hợp tác với ngân hàng nước đối tác lĩnh vực Fintech mắt ngân hàng kỹ thuật số Về phía Tyme Vietnam, Trung tâm Công nghệ (Technology Hub) Tyme Group thành lập vào năm 2016 Tyme Vietnam tập hợp người làm kĩ thuật sản phẩm có chung sứ mệnh tồn cầu trở thành serial bank builders, định hướng tương lai ngân hàng thông qua công nghệ Sản phẩm công ty Tyme xây dựng cung cấp dịch vụ ngân hàng hai quốc gia Nam Phi Philippines TymeBank: có trụ sở Nam Phi, ngân hàng số phát triển nhanh giới với triệu khách hàng kể từ mắt vào tháng năm 2019 GoTyme: có trụ sở Philippines, cơng ty liên doanh Gokongwei Group Tyme Group CHƯƠNG NỘI DUNG THỰC TẬP Chương trình thực tập năm 2022 Tyme bao gồm nhiều mảng khác nhau, mảng Mobile (di động), Python (Data, DevOps), Java API (Backend) Quality Assurance Cơng ty tổ chức chương trình thực tập nhằm muốn tạo nơi để bạn sinh viên có hội học tập, phát triển trải nghiệm tốt đẹp làm việc môi trường làm việc chuyên nghiệp Xuyên suốt trình tham gia vào đợt thực tập này, em khơng có hội tiếp xúc với kiến thức chun mơn mà cịn phát triển kỹ mềm khác nhằm tạo cho thân bước đà để tiếp tục nghiệp thân sau Nhìn chung trình thực tập bao gồm giai đoạn (trong vòng tháng), mảng Mobile mà em chọn có thêm mảng Android iOS Khi tham gia chương trình thực tập Tyme, em có hội để tiếp xúc với iOS Development, định hướng mà em có hứng thú từ lâu nội dung mà em thực tập Tyme tháng vừa qua Giai đoạn 1: Tìm hiểu, khám phá Thời gian: tuần – Nội dung: Tham gia buổi sharing chung giới thiệu cơng ty, q trình phát triển, quy tắc, quy định bảo mật, an toàn thơng tin, văn hóa, kiện, cách làm việc, v.v Tham gia phiên học (online & offline sessions): o Engineering Culture: Những hành vi, thái độ kỹ sư giá trị cốt lõi công ty o Professionalism in Working: Tác phong chuyên nghiệp làm việc cơng ty, văn hóa ứng xử cho chuẩn mực o Git: Cơ hệ thống quản lý phiên phân tán cách sử dụng o Branching Model: Mơ hình phân nhánh, hiểu quy tắc quản lý source code người làm việc hiệu source code dễ dàng tránh vấn đề merge code o Cyber Security: Khóa học bảo mật an ninh mạng, nguy dẫn đến bị hack cách phòng tránh (bởi banking domain nhạy cảm) o KnowBe4 Security Training: Những vấn đề bảo mật 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ô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 Git o Hibob: Nền tảng quản lý nhân o Slack: Cơng cụ giao tiếp Tyme o Outlook: Nền tảng Email Tyme o Xcode: IDE phát triển ứng dụng tảng iOS Tìm hiểu tài liệu, nghiên cứu, thực hành tham gia buổi training chun mơn theo lộ trình trainer mentor mảng xây dựng: o iOS Development: Phát triển ứng dụng điện thoại tảng iOS sử dụng ngôn ngữ Swift UIKit Framework, đồng thời kết hợp với Reactive Programming thông qua RxSwift Swift Foundation: Cơ ngôn ngữ Swift UIKit: UI Framework để phát triển iOS Reactive Programming với RxSwift: Ý tưởng làm cho ứng dụng phản ứng với thay đổi liệu mà không cần phải trực tiếp gọi đến Networking + Alamofire: Tổng quan kết nối mạng phát triển iOS thư viện Alamofire Multi-threading: Xử lý đa luồng iOS Local Storage: Xử lý lưu trữ liệu cục Unit Testing: Cách thực unit test 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 áp dụng để giảm bớt phụ thuộc thành phần cấu trúc ứng dụng o Clean Architecture: Clean Architecture khái niệm định nghĩa đề xuất Robert C.Martin (hay gọi Uncle Bob) với mục tiêu thức đẩy việc triển khai hệ thống gắn kết, độc lập với công nghệ ưu tiên khả tái sử dụng lại code o TymeBank iOS Application Architecture: Kiến trúc ứng dụng tảng iOS TymeBank với áp dụng MVVM-C Clean Architecture o Automation Test: Kiểm thử tự động với Pikachu Framework, Appium Kết quả: Hiểu rõ công ty sản phẩm công ty Hiểu cách đảm bảo an toàn, bảo mật thông tin làm việc công ty Hiểu văn hóa quy trình làm việc công ty Ứng dụng công cụ làm việc hiệu Nắm rõ nội dung lập trình iOS ứng dụng để xây dựng tính Hiểu cấu trúc ứng dụng TymeBank, từ tiến tới phát triển tính Hiểu rõ tầm quan trọng Clean Architecture cách ứng dụng để phát triển phần mềm Hiểu Automation Test, biết cách sử dụng Pikachu Framework Appium để chạy Automation Test Đồng thời, thực việc viết testcase cho tính với Pikachu Framework Giai đoạn 2: Quan sát Thời gian: tuần – Nội dung: Tham gia quan sát tìm hiểu cách làm việc, quy trình văn hóa team o Agile Scrum o Các kiện: Daily Standups Refinement Sprint Planning Internal Review Sprint Review Sprint Retro o Quy trình làm việc team community cho tech stack Tyme o Quy trình Release Tyme Tìm hiểu domain mà team chịu trách nhiệm o DebiCheck – Transaction & Saving Kết quả: Nắm rõ nội dung liên quan đến quy trình làm việc, phải có kiện Hiểu rõ quy trình làm việc văn hóa team Hiểu công việc mà thành viên team thực Có thể tham gia đóng góp vào kiện team cơng ty Nắm rõ quy trình để release phiên cho ứng dụng Giai đoạn 3: Thực hành Thời gian: tuần – 12 Nội dung: Tham gia vào quy trình team bắt đầu thực công việc 10 Ứng dụng tìm hiểu, nghiên cứu để thực sản phẩm thật công ty Thực ý 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ó kinh nghiệm thực tế quy trình làm việc team Có kinh nghiệm thực tế việc thực tính sản phẩm thật công ty Giai đoạn 4: Ship IT Thời gian: tuần 13 Nội dung: Thuyết trình học Tyme đề xuất ý tưởng, giải pháp để cải thiện Tyme, quy trình, cách làm việc, sản phẩm,… o Send Money with QR Code Performance Review với mentor Kết quả: Biết ưu điểm nhược điểm thân từ Performance Review để từ cải thiện phát triển thân 11 CHƯƠNG CHI TIẾT VỀ PROJECT Ngồi mở tài khoản giao dịch thơng qua kiosk, TymeBank cung cấp tảng giao dịch khác thiết bị điện thoại di động bao gồm Android iOS Các ứng dụng tải sử dụng miễn phí Send money with QR Code (iOS) Một tính thiết yếu ứng dụng di động TymeBank Send Money, hay cịn gọi Gửi Tiền Tính cho phép người dùng TymeBank gửi tiền đến số điện thoại vùng Nam Phi (cả số điện thoại chưa có tài khoản ngân hàng) Ở tính này, theo cách thơng thường có ứng dụng, người dùng phải thực bước sau để thực 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 trường hợp thuận lợi, trường hợp người dùng nhập sai số điện thoại người dùng phải quay trở lại bắt đầu luồng gửi tiền lại từ đầu điều bất tiện Ngồi ra, trường hợp người dùng muốn gửi nhận tiền từ nhiều người việc thực thủ công bước nhiều thời gian Điều dẫn đến ý tưởng để cải thiện 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 thực thao tác nhanh Mã QR tạo tự động dựa thông tin người dùng người dùng chỉnh sửa số tiền nhận mơ tả cho giao dịch Sau người dùng gửi mã QR cho người khác, người quét mã QR để gửi số tiền 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 mô tả giao dịch o Gợi ý mô tả giao dịch o Lưu chia sẻ mã QR Quét mã QR: o Quét mã QR với số tiền mô tả chưa xác định o Quét mã QR với số tiền mô tả 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 phương thức khác mã QR nhanh Những người dùng cần làm mở ứng dụng quét mã, sau xác nhận giao dịch Khi thực so sánh luồng gửi tiền theo cách thông thường dùng mã QR thời gian hồn thành có cách biệt rõ ràng Một ứng dụng khác điều có cho phép nhà bán lẻ tạo mã QR biên lai khách hàng, để in đặt cửa hàng, đưa vào hóa đơn cung cấp duới dạng tốn trực tuyến Khách hàng qt sau xác nhận giao dịch 13 Giao dịch với mã QR làm giảm khả xảy lỗi, chẳng hạn nhập sai số điện thoại gửi nhầm người nhận Điều tất nhiên thuận tiện cho người dùng 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ó 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 thực tập sinh Mobile mảng iOS Tyme với em) Những việc làm: Tự động tạo mã QR dựa thơng tin người dùng Tính gửi tiền mã QR với số tiền mơ tả giao dịch chưa xác định Tính gửi tiền mã QR với số tiền mơ tả giao dịch xác định Tính bật/tắt đèn flash Tính gửi tiền với mã QR lấy từ thư viện ảnh Tính chỉnh sửa số tiền mô tả giao dịch cho mã QR Tính gợi ý mơ tả giao dịch phần chỉnh sửa số tiền mô tả giao dịch Tính lưu mã QR dạng hình ảnh Tính chia sẻ mã QR Tính hướng dẫn sử dụng Đồng hóa liệu QR tảng Android iOS Hướng phát triển: Hiện tính quét mã QR hỗ trợ với camera đính sẵn ứng dụng, nên cải thiện cho tính quét mã QR với camera thiết bị di động Tuy nhiên, điều đồng nghĩa với việc phải đối mặt với nhiều thử thách bảo mật Một cải thiện mã hóa liệu sử dụng để tạo mã QR Điều tăng tính bảo mật nữa, nhiên ta phải đảm bảo đồng 14 phương thức mã hóa ngân hàng liên kết điều thử thách khơng nhỏ Những 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 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 tháng thực tập Tyme, em hội học tập làm việc mảng phát triển ứng dụng iOS Đối với em trải nghiệm vô quý giá trước em chưa có hội học tập mảng trước Khơng mà em cịn có hội để ứng dụng học vào sản phẩm thực tế Bên cạnh đó, em cịn học hỏi kỹ mềm có hội tiếp xúc với anh chị trước Em xin chân thành cảm ơn Tyme mang đến cho em hội tuyệt vời em muốn nói rằng, em cảm thấy tự hào phần Tyme tháng vừa qua 16 ... thoại di động đa lại làm em hứng thú với việc lập trình ứng dụng di động, đặc biệt tự tay tạo ứng dụng để phục vụ cho thân người khác Sự phát triển ngành cơng nghiệp phần mềm nói chung lập trình ứng. .. Testing: Cách thực unit test 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 áp dụng để giảm bớt phụ thuộc thành phần cấu trúc ứng dụng o Clean... 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 phát triển ứng dụng Clean Architecture Branching Model Ứng dụng Reactive Programming với RxSwift