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

BÁO CÁO THỰC TẬP LẬP TRÌNH ỨNG DỤNG ANDROID

21 6 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

Tiêu đề Báo Cáo Thực Tập Lập Trình Ứng Dụng Android
Tác giả Nguyễn Hữu An Nhiên
Người hướng dẫn Văn Hoàng Phương
Trường học Trường Đại học Công nghệ Thông Tin - Khoa Công Nghệ Phần Mềm
Chuyên ngành Công nghệ Phần Mềm
Thể loại Báo cáo thực tập
Năm xuất bản 2022
Thành phố Hồ Chí Minh
Định dạng
Số trang 21
Dung lượng 618,01 KB

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

Nội dung

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ư: Zalo, Grab, SEA,… Từ lâu, trong quá trình học tập tại trường, em đã định hư

Trang 1

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 LẬP TRÌNH ỨNG DỤNG ANDROID

Công ty thực tập: Công ty cổ phần VNG Người phụ trách: Văn Hoàng Phương Thực tập sinh : Nguyễn Hữu An Nhiên

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

Trang 2

LỜ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ư: Zalo, Grab, SEA,…

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 cộng với những nỗ lực, em đã trúng tuyển vào Công ty

Cổ phần VNG

Trang 3

LỜI CẢM ƠN

Trân trọng gửi lời cảm ơn Công ty Cổ phần VNG đã 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 các anh chị đi trước, em

đã tiếp thu được những kiến thức quan trọng để có thể làm được một ứng dụng Android 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 Văn Hoàng Phương, đã training Android, 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 anh Nguyễn Hoài Chung đã training chi tiết về các vấn đề kĩ thuật, review code trong quá trình thực tập; Cảm ơn tất cả các anh chị trong Zalo Group nói chung và team Android Zing MP3 nói riêng đã nhiệt tình giúp đỡ em trong thời gian 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

<Nguyễn Hữu An Nhiên>

<TPHCM, tháng 6, 2022>

Trang 4

NHẬN XÉT CỦA KHOA

Trang 5

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 VNG

Công ty cổ phần VNG được thành lập vào ngày 9 tháng 9 năm 2004 với tên gọi VinaGame – đổi tên thành VNG vào năm 2008 – là một công ty cung cấp các dịch vụ Internet, xuất bản phần mềm, quảng cáo thương mại và kinh doanh trò chơi điện tử Công ty có trụ sở chính tại VNG Campus (KCX Tân Thuận) Z06 Đường số 13 - Phường Tân Thuận Đông - Quận 7 TP.HCM

Công ty Cổ phần VNG (VNG) vừa lần thứ ba liên tiếp được HR Asia Awards vinh danh “Nơi làm việc tốt nhất châu Á” nhờ những nỗ lực “Phát triển con người” không ngừng nghỉ trong suốt 17 năm qua

Sản phẩm nổi bật của công ty: PUBG Mobile, Tốc Chiến, Zalo, Zing MP3,…

2 Sản phẩm nổi bật của công ty

Zalo:

Ngày 8/08/2012, VNG giới thiệu sản phẩm Zalo-ứng dụng nhắn tin và gọi điện miễn phí hoạt động trên nền tảng di động Zalo được cung cấp cho iOS, Android, Windows Phone, và Nokia Java Phần mềm hỗ trợ sóng 2G, 2.5G, 3G, 4G và wifi

Năm 2021, Zalo trở thành ứng dụng nhắn tin được yêu thích nhất tại Việt Nam

PUBG Mobile:

Trang 6

PlayerUnknown's Battlegrounds Mobile (viết tắt: PUBGM) là tựa game bắn súng sinh tồn do PUBG Corporation phát triển và phát hành đầu tiên tại thị trường quốc

tế Tuy nhiên, vào tháng 3 năm 2018, PUBG mới được Tencent Games và PUBG Corp hợp tác để cho ra mắt phiên bản di động PUBG Mobile PUBG Mobile đã chính thức có mặt tại Việt Nam vào ngày 26 tháng 11 năm 2018 do VNG GAMES hợp tác cùng Tencent Games và PUBG Corp phát hành đầu tiên trên hệ điều hành iOS và tiếp đến

là hệ điều hành Android vào ngày 27

Zing MP3:

Ra đời vào tháng 8 năm 2007, Zing MP3 là công cụ nghe và tìm kiếm nhạc trực tuyến Sản phẩm này có các ứng dụng trên iOS, Android và Windows Phone Tháng 12/2012, Zing MP3 ký hợp đồng bản quyền với Universal Music Group, cho phép người dùng Việt Nam có thể nghe và download các bản nhạc của Universal Music (có thu phí)

Đầu năm 2013, Zing MP3 ký kết thỏa thuận kinh doanh kho nhạc hơn 40.000 bài của Hiệp hội Công nghiệp ghi âm Việt Nam (RIAV) và 35.000 tác phẩm âm nhạc của Trung tâm Bảo vệ quyền tác giả âm nhạc Việt Nam

Tháng 6/2013, Zing Mp3 ký kết thỏa thuận bản quyền âm nhạc với Sony Music Group và Youtube

Hàng năm Zing Mp3 tổ chức giải thưởng âm nhạc Zing Music Awards, lần đầu tiên vào năm 2010

Theo thống kê, hiện tại ZingMP3 đang đứng top1 tại cả 2 bảng xếp hạng của AppStore và PlayStore ở hạng mục Music

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

Đợt thực tập với chủ đề “Lập trình ứng dụng Android” 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 Android, đồ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

Trang 7

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 VNG, 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 : 2 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

Tìm hiểu về các côn cụ sẽ được sử dụng trong quá trình làm việc tại VNG như:

- Zalo for work để liên lạc giữa các thành viên

- Microsoft Outlook để liên lạc qua mail

- Git để quản lý mã nguồn

- Android Studio

Thực hiện : Thực hành sử dụng các phần mềm đã nêu 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

2.2 Tìm hiểu ngôn ngữ Java và Kotlin

Thời gian : 5 ngày (1 tuần)

Nội dung : Được giới thiệu về ngôn ngữ lập trình Java và Kotlin, những kiến thức quan

trọng cho việc tối ưu trên Android

- Các cú pháp, câu lệnh cơ bản của Java

- So sánh Java và Kotlin

- Làm quen với lập trình Android

- Xây dựng ứng dụng Android cơ bản

Thực hiện :

- Tham gia đầy đủ các buổi training của công ty

- Làm các bài thực hành, kiểm tra về kiến thức đã học

Kết quả :

Trang 8

- Nâng cao kỹ năng lập trình Android

- Có được những kiến thức quan trọng cho việc lập trình mobile sau này

2.3 Tìm hiểu về thư viện ExoPlayer

Thời gian : 1 tháng

Nội dung: Các kiến thức cơ bản về ExoPlayer

- ExoPlayer là một thư viện open-source được phát triển bởi Google nhằm xử lý video và audio trên Android Hỗ trợ Dynamic Adaptive Streaming thông qua giao thức HTTP (DASH) và SmoothStreaming, điều mà MediaPlayer không thể làm được

- Ngoài ra ExoPlayer còn cung cấp khả năng tùy chỉnh và mở rộng cao ExoPlayer được thiết kế đặc biệt, cho phép nhiều thành phần được thay thế và tuỳ chỉnh khi

thực thi

Thực hiện :

- Tham gia research về mã nguồn của thư viện ExoPlayer

- Vẽ UML về cơ chế của ExoPlayer và tạo các ứng dụng demo sử dụng ExoPlayer

- Nghiên cứu về cơ chế buffer, render, caching,…

- So sánh 2 phiên bản 2.9.6 và 2.16.1

Kết quả :

- Cơ bản nắm được cách hoạt của thư viện ExoPlayer

- Có thể viết được ứng dụng phát nhạc/video sử dụng ExoPlayer có hỗ trợ cơ chế cache, pre-cache, preloading…

2.4 Clean Architecture

Thời gian : 1 tuần

Nội dung : Tìm hiểu về kiến trúc Clean Architecture

- Định nghĩa về Clean Architecture: Clean Architecture được xây dựng dựa trên tư tưởng "độc lập" kết hợp với các nguyên lý thiết kế hướng đối tượng(đại diện tiêu biểu là Dependency Inversion) Độc lập ở đây nghĩa là việc project không bị phụ thuộc vào framework và các công cụ sử dụng trong quá trình kiểm thử

Trang 9

- Kiến trúc của Clean Architecture chia thành 4 layer với một quy tắc phụ thuộc Các layer bên trong không nên biết bất kỳ điều gì về các layer bên ngoài Điều này có nghĩa là nó có quan hệ phụ thuộc nên "hướng" vào bên trong

Thực hiện :

- Tham gia đầy đủ các buổi training

- Tạo ra những ứng dụng cơ bản, có áp dụng kiến trúc Clean Architecture và mô hình MVP

Kết quả: Cơ bản nắm được kiến thức về Clean Architecture, mô hình MVP trong lập

trình Android

2.5 Dependency Injection & thư viện Dagger 2

Thời gian : 1 tuần

Nội dung : Tìm hiểu khái niệm Dependency Injection và thư viện Dagger 2

- Khái niệm Dependency Injection: Dependency Injection được xây dựng dựa trên khái niệm Inversion of Control Nghĩa là các phụ thuộc của 1 class chỉ nên được cung cấp từ bên ngoài Dependency injection là một kĩ thuật trong đó một object (hoặc một static method) cung cấp các dependencies của một object khác Một dependency là một object mà có thể sử dụng trong ứng dụng

- Thư viện Dagger 2: Dagger 2 là một dependency injection framework thuộc dạng compile-time và fully static Tách biệt khởi tạo/sử dụng, dễ dàng test hơn (unit test

Trang 10

và function), khả năng mở rộng tốt hơn - đây chỉ là một vài lợi ích từ việc sử dụng depedency injection framework như Dagger 2

Thực hiện :

- Tham gia đầy đủ các buổi training

- Tạo ra ứng dụng demo cơ bản, có áp dụng Dependency Injection và thư viện Dagger

2

Kết quả: Cơ bản nắm được kiến thức về Dependency Injection, Dagger và một số thư

viện liên quan như Hilt, Koin,…

2.6 Tìm hiểu về xử lý bất đồng bộ và RxJava

Thời gian : 2 tuần

Nội dung : Tìm hiểu về lập trình bất đồng bộ, đa luồng, thư viện RxJava

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, các operator của RxJava Có thể sử áp

dụng để xử lý bất đồng bộ

2.7 Tìm hiểu về các công cụ phổ biến trong việc lập trình Android

Thời gian : 2 tuần

Nội dung : Tìm hiểu về Retrofit, Volley, Glide, Picasso

- Khái niệm Glide: Glide là một thư viện open source hỗ trợ load ảnh trên Android

Dùng Glide sẽ đơn giản hóa các công việc cần làm khi sử dụng một bức ảnh trong Android đi rất nhiều Chúng ta không cần quan tâm đến việc decoding, memory and disk caching mà thay vào đó chỉ cần sử dụng interface rất đơn giản từ Glide

- Khái niệm Picasso: Picaso là một thư viện tải và xử lý hình ảnh cho Android Nó

được tạo ra và duy trì bởi Square, và cung cấp việc tải và xử lý hình ảnh Nó đơn giản hoá quá trình hiển thị hình ảnh từ một nguồn bên ngoài Trong nhiều trường hợp, chỉ một ít code là đủ để cài đặt thư việc đơn giản này

Trang 11

- Khái niệm Retrofit: Retrofit là một công nghệ được phát triển bởi Square, được xây

dựng dựa trên rất nhiều công nghệ mạnh mẽ cho phép giải quyết tốt các yêu cầu từ phía client và server một cách nhanh và hiệu quả nhất

- Khái niệm Volley: Volley library Android là thư viện networking cho các dự án

Android Volley được dùng để quản lý các network request, giúp cho developer đơn giản hóa việc thực hiện kết nối và xử lý kết quả trả về từ server

Kết quả: Nắm được cơ bản về cách sử dụng các công cụ này hiệu quả

3 Thực hiện project

Sau hai 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ề lập trình ứng dụng Android Sau đó sinh viên bắt đầu thực hiện kết hợp các kiến thức đã học vào việc lập trình một ứng dụng hoàn chỉnh

4 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

- Học cách trao đổi, làm việc qua email

- Anh Văn Hoàng Phương

- Anh Nguyễn Hoài Chung

- Team HR

2

- Tìm hiểu và nghiên cứu về thư viện ExoPlayer

- Anh Văn Hoàng Phương

- Anh Nguyễn Hoài Chung

3

- Tìm hiểu về Clean Architecture

- Anh Văn Hoàng Phương

- Anh Nguyễn Hoài Chung

4

- Tìm hiểu về Dependency

Injection

- Anh Văn Hoàng Phương

- Anh Nguyễn Hoài Chung

Trang 12

- Tìm hiểu về thư viện Dagger 2

5

- Tìm hiểu về Reactive

6

- Tìm hiểu về các công cụ trong lập trình Android

- Anh Văn Hoàng Phương

- Anh Nguyễn Hoài Chung

Chương 3: Chi tiết về project

1 Giới thiệu về ứng dụng

Ứng dụng Muzik là một mini music player project bao gồm các tính năng chính: Stream nhạc từ server, phát nhạc từ thiết bị người dùng, stream video

Ngôn ngữ lập trình: Java

Các thư viện liên quan: ExoPlayer, RxJava3, Retrofit, Glide, Dagger 2, Palette,…

Các design pattern đã áp dụng: Synchronized Singleton, Façade, Observer

1.1 Tính năng streaming nhạc

Mô tả: Muzik hỗ trợ người dùng có thể stream nhạc trực tuyến từ các nguồn khác

nhau Sau khi người dùng chọn bài hát bất kỳ trên màn hình chính thì sẽ khởi động giao diện của trình phát nhạc Ngoài bài hát người dùng vừa chọn thì player cũng

sẽ có lưu lại playlist người dùng vừa chọn và auto-resume khi đã phát xong nhạc Đồng thời, sau khi phát nhạc thì cũng sẽ khởi tạo 1 background thread để thực hiện

cơ chế preload Tức là các bài hát tiếp theo sẽ được lưu trước vào bộ nhớ cache, điều này sẽ giảm thời gian chờ đợi trong lúc chuyển bài đồng thời nếu trong lúc phát nhạc mà người dùng bị mất kết nối mạng thì bài hát cũng đã được nạp sẵn, vẫn có thể tiếp tục phát nhạc mà không ảnh hưởng trải nghiệm người dùng Các bài hát đã phát đều sẽ được lưu vào bộ nhớ cache, nếu lần sau người dùng nghe lại bài hát đó sẽ sử dụng data từ bộ nhớ cache thay vì phải lấy nhạc từ phía server về

Trang 13

Giao diện màn hình chính

Màn hình Music Player

Trang 14

Màu nền của Player thay đổi theo từng bài hát

1.2 Tính năng play video

Mô tả: Tính năng phát video cho phép người dùng phát các video từ server Giao

diện của màn hình video player được thiết kế theo giao diện của các nền tảng video dọc phổ biến như Tiktok, Facebook Reels,… Tương tự nhạc, các video cũng sẽ hỗ trợ việc cache, pre-load video nhằm mang đến trải nghiệm tốt nhất cho người dùng Để tối ưu hoá hiệu năng và hỗ trợ trên các thiết bị cấu hình thấp, thay vì mỗi video sẽ phải tạo mới 1 video player Ứng dụng đã tính toán để sử

Trang 15

dụng lại các đối tượng video player này nhằm tiết kiệm tài nguyên hệ thống

Màn hình Video Player

1.3 Tính năng phát nhạc từ thiết bị:

Muzik cho phép người dùng có thể scan và tìm kiếm tất cả bài hát có trên thiết bị Điều này giúp cho người dùng có thể tải và phát nhạc mà không yêu cầu kết nối mạng

Ngày đăng: 17/08/2022, 20:59

TỪ KHÓA LIÊN QUAN

w