1. Trang chủ
  2. » Tất cả

Tìm Hiểu Phát Triển Ứng Dụng Di Động Android.pdf

14 13 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Tìm Hiểu Phát Triển Ứng Dụng Di Động Android
Tác giả Hồ Hữu Thịnh
Trường học Đại Học Quốc Gia Thành Phố Hồ Chí Minh
Chuyên ngành Khoa Công Nghệ Phần Mềm
Thể loại Thực Tập Tốt Nghiệp
Năm xuất bản 2022
Thành phố TP.Hồ Chí Minh
Định dạng
Số trang 14
Dung lượng 387,7 KB

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

Nội dung

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM THỰC TẬP TỐT NGHIỆP Đề tài Tìm hiểu phát triển ứng dụng di động Android Công ty thực tập Công ty Trách nhiệm[.]

Trang 1

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

KHOA CÔNG NGHỆ PHẦN MỀM

THỰC TẬP TỐT NGHIỆP

Đề tài: Tìm hiểu phát triển ứng dụng di động Android

Công ty thực tập: Công ty Trách nhiệm hữu hạn Kỹ thuật số TYME

Lớp: SE501.N11.PMCL Sinh viên thực hiện: Hồ Hữu Thịnh – 19522275

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

Trang 2

NHẬN XÉT CỦA KHOA

Trang 3

LỜI MỞ ĐẦU

Ngày nay, ngành lập trình ứng dụng là một bộ phận không thể thiếu của ngành công nghiệp phần mềm Với tốc độ phát triển của các kỹ thuật công nghệ, 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

Lập trình viên ứng dụng di động được sinh ra là do nhu cầu sử dụng thiết bị điện thoại của mọi người ngày càng tăng Và họ sẽ là nguồn nhân lực quan trọng cho việc phát triển của ngành lập trình ứng dụng di động sau này Việt Nam cũng không phải là ngoại 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 của mình như: Tiki,

Shopee, Gojek, Vì lý do này, em quyết định chọn lập trình di động làm định hướng cho việc học tập và phát triển ngành nghề tương lai của mình

Trong quá trình học tập tại trường, em cũng có định hướng sẽ trở thành một lập trình viên ứng dụng di động, em đã đăng ký học các môn như nhập môn lập trình di động, lập trình ứng dụng di động, ngôn ngữ lập trình java, phát triển ứng dụng di động trên thiết bị di động…

Tuy nhiên học tập ở trường chưa bao giờ là đủ và em muốn có thêm nhiều kinh nghiệm thực tế, cũng như muốn được trải nghiệm những dự án thực tế tại một môi trường chuyên nghiệp, với những mong muốn đó, em quyết định đăng ký môn thực tập doanh nghiệp và em may mắn đậu vào TYME - một công ty có môi trường làm việc hiện đại, chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này

Trang 4

LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn CÔNG TY TRÁCH NHIỆM HỮU HẠN KỸ THUẬT SỐ TYME đã 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 anh mentor và các anh chị trainer, 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 Chân thành cảm ơn các anh chị trong nhóm trainer đã dành 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 Ngô Đình Duy Quang - mentor đã đồng hành cùng em trong thời gian vừa qua, hướng dẫn, giúp đỡ cho em tận tình những lúc khó khăn trong công việc cũng như việc làm quen với môi trường mới; cảm ơn các anh chị trong team HR đã traning tụi em về TYME và phong cách làm việc ở đây Cảm ơn các anh trainer: anh Trí, anh Hiếu, anh Long, anh Đạt, anh Sơn, chị Hưng đã có những buổi training bổ sung kiến thức cho tụi em Cuối cùng, em cảm ơn hai team Titan và Kirin giúp đỡ em trong 3 tháng vừa qua

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

Hồ Hữu Thịnh

TP HCM, tháng 12 năm 2022

Trang 5

MỤC LỤC

I CHƯƠNG I: GIỚI THIỆU CÔNG TY 6

1 Giới thiệu công ty TNHH Kỹ thuật số Tyme 6

2 Sản phẩm của công ty 6

II Nội dung thực tập 7

1 Tìm hiểu công ty và môi trường làm việc 7

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

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

2.2 Học tập các kiến thức phục vụ cho công việc trở thành một lập trình viên Android 8

2.3 Thực hiện dự án thực tế 10

III Chi tiết về dự án “Send money with QR code” 11

1 Giới thiệu tính năng send money 11

1 Vấn đề đặt ra 11

2 Cách thức hiện thực hoá 11

3 Quy trình thực hiện 12

Trang 6

I GIỚI THIỆU CÔNG TY

1 Giới thiệu công ty TNHH Kỹ thuật số Tyme

Tyme Group là một trong những tập đoàn chuyên đi xây dựng ngân hàng kỹ thuật số công nghệ cao chủ yếu nhắm đến các các thị trường mới nổi có tốc độ phát triển nhanh Có trụ sở chính tại Singapore với Trung tâm Phát triển Sản phẩm & Công nghệ tại Việt Nam, Tyme 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à chưa có điều kiện được tiếp cận với ngân hàng

Tyme sở hữu nền tảng công nghệ và tài sản trí tuệ trên toàn cầu, đồng thời hợp tác với các đối tác ngân hàng và fintech trong nước để ra mắt các ngân hàng kỹ thuật số mới

Được thành lập vào năm 2016, Tyme Việt Nam là Trung tâm Phát triển Công nghệ & Sản phẩm của TymeGroup, với sứ mệnh toàn cầu là trở thành những người xây dựng ngân hàng nối tiếp, định hình 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 Group hiện cung cấp dịch vụ ngân hàng tại các quốc gia:

- Nam Phi (TymeBank): có trụ sở tại Nam Phi, hiện là một trong những ngân hàng kỹ thuật

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

- Philippines (GoTyme): có trụ sở tại Philippines, là liên doanh giữa Tập đoàn Gokongwei

và Tập đoàn Tyme, ra mắt vào giữa năm 2022

Trang 7

II 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 trên thiết bị di động, đồ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 chuyên nghiệp

1 Tìm hiểu công ty và môi trường làm việc

Thời gian: 2 ngày

Nội dung: Tìm hiểu về công ty, cách tổ chức phòng ban trong 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, giá trị cốt lõi, 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, phong cách làm việc chuyên nghiệp

Kết quả: Hiểu thêm về công ty Tyme, 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 Nghiên cứu kỹ thuật

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

Thời gian: 3 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

Khoảng thời gian này, mentor sẽ hướng dẫn các thực tập sinh h tìm hiểu về các công cụ sẽ giúp ích cho trong công việc sau này Một số phần mềm trong số đó như:

- Bitbucket: Đây là công cụ quản lý source code được sử dụng khá phổ biến trong môi trường doanh nghiệp Điểm mạnh của nó so với những công cụ quản lý source code khác

có lẽ nằm ở tính bảo mật và khả năng tương thích với các sản phẩm trong hệ sinh thái Atlassian

- Fork: Công cụ git GUI giúp trực quan hoá các thao tác với git

- Jira: công cụ theo dõi và quản lý lỗi, vấn đề và dự án để làm quy trình phát triển trở nên

dễ dàng hơn

- Confluence: không gian làm việc nhóm, nơi kết hợp giữa kiến thức và sự cộng tác nhóm Các Pages cung cấp cho nhóm của bạn một nơi để tạo, nắm bắt và cộng tác trong bất kỳ

dự án hoặc ý tưởng nào Các Spaces giúp cấu trúc, tổ chức và chia sẻ công việc, vì vậy mọi thành viên trong nhóm đều có khả năng hiểu biết về quy định và tiếp cận thông tin một cách thuận lợi và nhanh chóng nhất

- Android studio: IDE hỗ trợ phát triển các ứng dụng trong hệ sinh thái Android

- Mockoon: Công cụ hỗ trợ tạo mock api, giả lập response từ server trả về

Kết quả: Làm quen với các công cụ làm việc nêu trên

Trang 8

2.2.Học tập các kiến thức phục vụ cho công việc trở thành một lập trình viên Android

Thời gian: 3 tuần

Nội dung: Ngôn ngữ lập trình Kotlin, hệ điều hành Android, architecture pattern…

Android

Là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng Android được phát triển bởi Android Inc với sự hỗ trợ tài chính từ Google và sau này được chính Google mua lại vào năm 2005

Ngôn ngữ lập trình Kotlin

Là một ngôn ngữ lập trình đa nền tảng, kiểu tĩnh, có mục đích chung với suy luận loại Kotlin được thiết kế để tương tác với Java và phiên bản JVM của thư viện tiêu chuẩn của Kotlin phụ thuộc vào thư viện lớp Java Ưu điểm lớn nhất của Kotlin có lẽ là coroutines, tính năng này hỗ trợ lập trình không đồng bộ, làm cho các tác vụ phổ biến như lệnh gọi mạng và cập nhật cơ sở dữ liệu trở nên đơn giản và hiệu quả

Architecture pattern and Clean architecture

Tìm hiểu về các mẫu kiến trúc để xây dựng một dự án Android: MVP, MVVM, MVI

MVP (Model-View-Presenter) là lâu đời nhất, nó được sinh ra vì cần phải giải quyết vấn đề khớp nối chặt chẽ với kiến trúc MVC Trong cấu trúc MVP, presenter thao túng model và cập nhật ở view View và Presenter tách biệt với nhau hoàn toàn và giao tiếp với nhau qua thông qua

interface

MVVM (Model-View-ViewModel) là mô hình mới hơn mô hình MVP, Trong kiến trúc này, vai trò của quan điểm và mô hình giống như trong MVP Trách nhiệm duy nhất của View là tương tác với các yếu tố UI và trách nhiệm duy nhất của Model là là nhà cung cấp dữ liệu Thành phần mới ở đây là ViewModel Đây là một thành phần cũng xử lý cả logic và sử dụng mô hình để truy xuất dữ liệu nhưng không giống như Presenter, nó có thể tồn tại khi có những thay đổi và không

bị ảnh hưởng với vòng đời của View

MVI (Model-View-Intent) là là một trong những mô hình mới nhất dành cho Android Người dùng thực hiện một hành động sẽ là Intent → Intent là trạng thái là đầu vào cho model → Model lưu trữ trạng thái và gửi trạng thái được yêu cầu đến View → View Tải trạng thái từ Model → Hiển thị cho người dùng

Clean architecture trong Android gồm có 3 thành phần chính:

Trang 9

Clean architecture in android

- Presentation Layer: Layer quyết định sẽ hiển thị gì và nhận input gì từ giao diện người dùng Tầng này sẽ thường sẽ được implement bởi các kiến trúc như MVP, MVVM, MVC, MVI, …

- Domain layer: là lớp chứa tất cả model và toàn bộ bussiness logic của ứng dụng, có thể coi đây là nơi chứa các policy còn các layer khác là nơi chứa các cơ chế Domain layer nằm trong cùng do đó sẽ không biết bất kỳ layer nào khác bên ngoài Đây là module cấp cao, không phụ thuộc vào bất kỳ implementation của module cấp thấp nào mà chỉ phụ thuộc thông qua abstraction Mỗi usecase đảm nhiệm một nhiệm vụ duy nhất (Single responsibility principle)

- Data layer là lớp này cung cấp cách thức để truy cập các nguồn dữ liệu trong room

database hoặc internet Các triển khai này sử dụng Repository pattern

Thực hiện: Đọc tài liệu hướng dẫn và xem cách triển khai trực tiếp bên trong source code của

công ty

Kết quả: Hiểu được cách áp dụng các kiến trúc phù hợp khi xây dựng một ứng dựng Android

đồng thời nâng cao kỹ năng lập trình với ngôn ngữ Kotlin

Trang 10

2.3.Thực hiện dự án thực tế

Sau hơn 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ề Kotlin và Android Trong tháng thứ hai, trainer đã hướng dẫn thực tập sinh áp dụng những kiến thức đã học để thực hiện một project trên Android

Chi tiết về dự án và cách thực hiện sẽ được nói cụ thể ở chương III

Trang 11

III Chi tiết về dự án “Send money with QR code”

1 Giới thiệu tính năng send money

Tính năng Send money cho phép người dùng trong hệ thống ngân hàng TymeBank gửi tiền cho người dùng khác thông qua số điện thoại (trong trường hợp người gửi tiền không biết số tài khoản người nhận hoặc người nhận không có số tài khoản)

- Nếu số điện thoại là số điện thoại của người dùng TymeBank, tiền sẽ được chuyển trực tiếp vào tài khoản

- Nếu số điện thoại là số điện thoại không phải là người dùng TymeBank, tiền sẽ được gửi dưới dạng voucher, người dùng sẽ cầm mã này đến đại lý PicknPay để quy đổi thành tiền mặt và phải trả một khoản phí

Quy trình hoạt động của send money

1 Vấn đề đặt ra

Với quy trình kể trên ta có thể dễ dàng nhận thấy người dùng sẽ cần thực hiện kha khá các thao tác mới có thể chuyển tiền đến cho người nhận chưa kể trong quá trình thao tác, nếu không may nhập sai số điện thoại thì sẽ rất phiền dẫn đến trải nghiệm không tốt cho người dùng

Giải pháp ta có thể cân nhắc đến chính là thực hiện chuyển tiền thông qua mã QR, khi đó quy trình sẽ diễn ra như thế này nếu so với quy trình cũ

Quy trình send money với QR code khi so sánh với quy trình truyền thống

2 Cách thức hiện thực hoá

Chia nhóm cùng một thực tập sinh khác cùng thực hiện với sự hỗ trợ từ các anh chị mentor và trainor

Trang 12

3 Quy trình thực hiện

- Tìm hiểu business logic của tính năng send money

- Thiết kế UI cho tính năng

- Thực hiện viết code cho tính năng và xử lý các logic liên quan

- Hoàn thành và tiến hành update code lên Bitbucket

- Pair review với các anh chị trainor, mentor

Trang 13

TÀI LIỆU THAM KHẢO

[1] [Online] Available: Tyme Vietnam - Tyme Vietnam

[2] [Online] Available: Collaboration software for software, IT and business teams

(atlassian.com)

[3] [Online] Available: Android Mobile App Developer Tools – Android Developers

[4] [Online] Available: Stack Overflow - Where Developers Learn, Share, & Build Careers

[5] [Online] Available: Medium – Where good ideas find you

[6] [Online] Available: Clean Coder Blog

Trang 14

TỔNG KẾT

Như vậy, chỉ trong vòng một tháng ngắn ngủi, thực tập sinh đã kịp hoàn thành tính năng Send mone via QR code Sau khi trình bày với các anh trong công ty, ý tưởng được đánh giá cao và sẽ được đưa đến người dùng trong thời gian sớm nhất

Chân thành cảm ơn sự giúp đỡ của anh mentor, các anh chị nhóm trainer và sự hỗ trợ của feature team Cảm ơn thầy cô đã giúp em hoàn thành bài báo cáo này

Ngày đăng: 01/02/2023, 21:19

TỪ KHÓA LIÊN QUAN

w