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

Báo Cáo Thực Tập Mobile Developer.pdf

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 (450.2 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

MOBILE DEVELOPER

Công ty thực tập

: Công ty TNHH Vitalify Asia

Người phụ trách

: Đinh Gia Kiệt

Thực tập sinh

: Đặng Duy Bằng

Mã số sinh viên

: 19521234

TP. Hồ Chí Minh, tháng 12 năm 2022
Đinh Gia Kiệt

Đặng Duy Bằng - 19521234


1
LỜI MỞ ĐẦU


Thời đại công nghệ và Internet bùng nổ đã giúp cho các thiết bị di động được
đà phát triển như “vũ bão”. Điều này đã tạo ra môi trường thuận lợi cho sự phát triển
rầm rộ của các ứng dụng trên di động. Những ứng dụng di động quen thuộc mà bạn
sử dụng hàng ngày như Facebook, Instagram, Grab,... được tạo ra bởi Mobile
Developer hay được hiểu đơn giản là một nhà phát triển ứng dụng di động.
Và cho đến ngày nay, cơng việc lập trình máy tính khơng cịn q xa lạ gì đối
với những ai đang theo đuổi và làm việc trong ngành IT. Tuy nhiên, cơng việc lập
trình cho điện thoại di động cũng đang từng bước phát triển với sự tiến bộ mạnh mẽ.
Sau bốn năm học tập trên trường, do mong muốn có thêm kinh nghiệm, cũng
như muốn được tham gia vào các dự án thực tế trong một môi trường chuyên nghiệp,
đem lại các những trãi nghiệm đầu tiên trên con đường chinh phục tương lai của em.
Em đã chọn công ty Vitalify Asia làm bước khởi đầu cho hành trình trở thành một
Mobile Developer.

Đinh Gia Kiệt

Đặng Duy Bằng - 19521234


2
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn đến công ty Vitalify Asia đã tạo cơ hội để em được
tham gia vào một môi trường làm việc quốc tế và chuyên nghiệp.
Trong một thời gian ngắn đồng hành cùng công ty và các anh chị trong team
trainer đã giúp em hiểu thêm về cơng việc trong lĩnh vực, tích luỹ được những kinh
nghiệm đầu tiên và áp dụng được những kiến thức đã học vào thực tiễn. Cảm ơn thời
gian quý báu của anh chị đã chia sẽ và training giúp em tìm ra hướng đi trên con
đường sự nghiệp của bản thân.
Lời tiếp theo em muốn gởi lời cảm ơn chân thành đến trường đại học Công nghệ
thông tin nói chung và khoa Cơng nghệ phần mềm nói riêng đã tạo cơ hội để tụi em

được học hỏi và trao dồi kĩ năng cần thiết cũng như kiến thức trước khi bước vào con
đường làm việc và đồng hành cùng em để hoàn thành một bản báo cáo thực tập hồn
chỉnh.

Đặng Duy Bằng - 19521234
Thành phố Hồ Chí Minh, ngày 26 tháng 12 năm 2022

Đinh Gia Kiệt

Đặng Duy Bằng - 19521234


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

................................................................................................................................................
................................................................................................................................................

Đinh Gia Kiệt

Đặng Duy Bằng - 19521234


4

MỤC LỤC
LỜI MỞ ĐẦU .....................................................................................................................1
LỜI CẢM ƠN .....................................................................................................................2
NHẬN XÉT CỦA KHOA ..................................................................................................3
MỤC LỤC...........................................................................................................................4
CHƯƠNG 1 GIỚI THIỆU CÔNG TY THỰC TẬP.......................................................6
1.1 - GIỚI THIỆU VỀ CÔNG TY TNHH VITALIFY ASIA ..........................................................6
1.2 - MƠI TRƯỜNG, VĂN HỐ CON NGƯỜI VÀ KINH NGHIỆM LÀM VIỆC ................................6
1.3 - GIỚI THIỆU VỀ CÁC DỰ ÁN CỦA CƠNG TY .....................................................................6
1.4 - QUY TRÌNH LÀM VIỆC CỦA CÔNG TY ............................................................................7
1.5 - SƠ ĐỒ THỰC HIỆN VÀ PHÁT TRIỂN DỰ ÁN .....................................................................8
CHƯƠNG 2 NỘI DUNG THỰC TẬP .............................................................................9
2.1 - TÌM HIỂU VỀ CÁC VỊ TRÍ, VAI TRỊ VÀ CÁC KỸ NĂNG CƠ BẢN TRONG CÔNG TY ............9
2.2 - TÌM HIỂU NGHIÊN CỨU CƠNG NGHỆ VÀ CẤU TRÚC DỰ ÁN ............................................9
2.3 - THAM GIA DỰ ÁN ........................................................................................................10
2.4 - QUÁ TRÌNH THỰC TẬP VÀ THỰC HIỆN CƠNG VIỆC.......................................................10
CHƯƠNG 3 TỔNG KẾT ................................................................................................15

Đinh Gia Kiệt


Đặng Duy Bằng - 19521234


5
DANH MỤC TỪ VIẾT TẮT
BPM

Bridge Project Manager

Dev

Developer

Dev Leader

Developer Leader

PM

Project Manager

IDE

Integrated Development Environment

PR

Pull Request

Đinh Gia Kiệt


Đặng Duy Bằng - 19521234


6
Chương 1

Giới thiệu công ty thực tập

1.1 Giới thiệu về Công ty TNHH Vitalify Asia

Vitalify Asia là công ty phát triển offshore của Nhật Bản được thành lập vào
năm 2008, phát triển ứng dụng, phần mềm có trụ sở chính ở Tokyo. Vitalify Asia có
thể mạnh về phát triển các dịch vụ hướng về người dùng hoặc phát triển cho các thiết
bị thông minh. Với 90% khách hàng là công ty Nhật Bản, các thành viên của Vitalify
ln có cơ hội tham gia vào các dịch vụ CNTT mới nhất tại Nhật Bản. Hiện diện tại
Việt Nam, với những nỗ lực khơng ngừng, Vitalify góp phần nâng cao năng lực nhân
sự IT tại đây.
Là thành viên chính thức trực thuộc bộ phận IT của Hiệp hội doanh nghiệp Nhật
Bản tại Hồ Chí Minh, Vitalify đem đến cho khách hàng những dịch vụ cơng nghệ
thơng tin như:





Lập trình Website
Thương mại điện tử
Ứng dụng phần mềm
Ứng dụng di động


1.2 Môi trường, văn hoá con người và kinh nghiệm làm việc
Với đội ngũ kỹ sư có gần 100 người, Vitalify Asia tạo ra môi trường làm việc
quốc tế và thân thiện với các chuyên gia Nhật Bản gần gũi, hoà đồng cùng các đồng
nghiệp chân thành cởi mở luôn mang lại cảm giác tự tin thúc đẩy tinh thần làm việc,
tạo điều kiện sáng tạo và phát huy năng lực bản thân.
Về kinh nghiệm làm việc, cơng ty đã có:









9 năm kinh nghiệm trong lĩnh vực điện thoại thông minh tại Việt Nam.
Văn phịng của cơng ty ở France Villa.
Có hơn 100 kỹ sư Việt Nam.
5 nhân viên người Nhật tại thành phố Hồ Chí Minh.
30 nhân viên Nhật Bản tại Tokyo, Nhật Bản.
17 nhân viên người Việt Nam tại Tokyo, Nhật Bản.
Đã phát triển hơn 200 ứng dụng giải trí / dịch vụ cho Nhật Bản.
Công ty Vitalify Aisia nhắm đến thị trường giải trí Việt Nam từ năm 2016.

1.3 Giới thiệu về các dự án của công ty
− Outsource trên nhiều ngơn ngữ lập trình và framework (Nodejs, Javasript, Php,
Ruby, Java, Python, Swift, Kotlin , Flutter, React-Native, ReactJS, VueJS,…).
− Phát triển Game bằng Unity.
− Phát triển sản phẩm liên quan đến AI.


Đinh Gia Kiệt

Đặng Duy Bằng - 19521234


7
1.4 Quy trình làm việc của cơng ty
Rules

Note

Sprint length

1 đến 2 tuần phụ thuộc vào từng dự án

Sprint start time

Thứ hai

Daily report send time

Báo cáo tiến độ làm việc với BPM vào thời
điểm cuối của mỗi ngày làm việc đó
Thời gian linh hoạt sau khi hoàn thành giai

Sprint retrospective
đoạn
Internal weekly meeting


1.
2.
3.
4.

Code review
Sprint review
Sprint retrospective
Estimate schedule for next sprint

1.5 Quy trình nhận task và thực hiện của developer và BPM
− BPM sẽ tạo ticket cho Dev với trạng thái ban đầu là “Open”
− Dev nhận ticket, điền thời gian ước tính cần thiết để hoàn thành và chuyển task
từ “Open” sang “In Progress” để bắt đầu công việc
− Sau khi thực hiện hiện xong, Dev sẽ tạo PR (nếu có) và viết mô tả đẩy đủ bao
gồm (vấn đề, nguyên nhân, giải pháp) sau đó sẽ chuyển ticket về trạng thái
“Wait for review” cho Dev Leader.
− Dev sẽ assign các thành viên trong team Dev còn lại vào review ticket
− Sau khi Dev Leader đã review xong sẽ chuyển trạng thái ticket về “In Testing”
cho BPM để kiểm tra và test.
− Nếu khơng cịn vấn đề gì nữa, BPM sẽ chuyển ticket về trạng thái “Resolved”,
sau đó “Closed” ticket.

Đinh Gia Kiệt

Đặng Duy Bằng - 19521234


8


1.6 Sơ đồ thực hiện và phát triển dự án

Đinh Gia Kiệt

Đặng Duy Bằng - 19521234


9
Chương 2

Nội dung thực tập

2.1 Tìm hiểu về các vị trí, vai trị và các kỹ năng cơ bản trong công ty
− PM (Project Manager): Project Manager hay được gọi tắt là PM, là người
được công ty chỉ định và giao nhiệm vụ quản lý các dự án, chịu trách nhiệm
lên kế hoạch, triển khai cho dự án đó hồn thành các mục tiêu ban đầu. Sau đó
uỷ quyền cho một team dưới sẽ quản lý quy trình làm việc của BPM.
− BPM (Bridge Project Manager): Là người thay mặt PM quản lý quy trình
làm việc của một team dev, là người trực tiếp trao đổi với khách hàng để hiểu
rõ về dự án, nắm bắt thông tin và yêu cầu của dự án, sau đó làm tài liệu đặc tả
chi tiết và tổ chức họp phân chia công việc cho các thành viên trong team dev
− Dev Leader (Developer Leader): Là người chịu trách nhiệm quản lý source
code mà merge code sau khi các thành viên trong team dev hồn thành cơng
việc, ngồi ra sẽ cùng các thành viên cịn lại review để mỗi người đều có thể
nắm rõ được cấu trúc của source code trong dự án.
− Dev (Developer): một team dev sẽ có từ 2 từ 5 thành viên sẽ dựa trên tài liệu
đặc tả được tạo và thực hiện các nhiệm vụ do BPM giao phó.
2.2 Tìm hiểu nghiên cứu cơng nghệ và cấu trúc dự án
2.2.1 Atomic Design
Atomic Design là Một phương pháp thiết kế giao diện mà Designer sẽ ưu

tiên thực hiện thiết kế các thành phần riêng lẻ và kết hợp chúng lại với nhau,
thay vì thiết kế cả trang.
Trong Atomic Design: giao diện được chia thành 5 phần:






Atoms
Molecules
Organisms
Templates
Pages

2.2.2 TypeScript
TypeScript là một dự án mã nguồn mở được phát triển bởi Microsoft, được
xem là phiên bản nâng cao của JavaScript. Vì nó được bổ sung tùy chọn kiểu
tĩnh và các lớp hướng đối tượng, nó bao hàm cả ECMAScript 2015 (ES6).
TypeScript thừa hưởng cú pháp của JavaScript, vì vậy các lập trình viên có
thể tiếp cận dễ dàng khi đã có các kiến thức cơ bản về JavaScript.
Ưu điểm:







Là mã nguồn mở,

Dễ dàng phát triển dự án lớn,
Hỗ trợ các tính năng mới nhất của Javascript,
Hỗ trợ OOP mạnh,
Cách tổ chức code dễ dàng,
Nhiều framework lựa chọn

Nhược điểm:
Đinh Gia Kiệt

Đặng Duy Bằng - 19521234


10
− Mã cồng kềnh,
− Thêm bước bổ sung, biên dịch,
− Có thêm các cú pháp riêng
2.2.3 React Native
React Native được phát triển bởi Facebook với mục đính ban đầu là áp
dụng vào mạng xã hội lớn nhất hành tinh: Facebook. Do đặc tính cơng nghệ của
mạng xã hội, Facebook cần phải tạo ra nền tảng phát triển ứng dụng di động đa
nền tảng có hiệu năng khơng thua kém so với ứng dụng được phát triển độc lập
cho từng nền tảng. React Native hiện tại chỉ hỗ trợ phát triển ứng dụng di động
hệ điều hành Android và iOS, ít hơn so với Ionic (Android, iOS, Windows
Phone).
React Native tạo ra ứng dụng native chứ không phải hybrid app như
ionic,... Với 100% Native UI, React Native tạo nên sự “mượt mà” trong việc
render UI và xóa nhịa khoảng cách về hiệu năng giữa ứng dụng đa nền tảng so
với ứng dụng độc lập nền tảng.
2.3 Tham gia dự án
Tháng đầu tiên sẽ được training về các quy tình làm việc của công ty, giới thiệu

các team các dự án, và rule làm việc tại cơng ty, ngồi ra sẽ traning về các công nghệ
mà dự án đang thực hiện để nắm rõ tổng quan dự án, tham gia đọc và tìm hiểu cấu
trúc soure code để làm quen với quy trình và cách thức tổ chức công việc.
Từ tháng thứ hai trở đi, bắt đầu nhận các task liên quan đến dự án thực tế, tham
gia họp tvà thảo luận với team để cùng nhau đưa ra giải pháp phù hợp và phia chia
công việc phù hợp với năng lực. Chi tiết quá trình thực hiện sẽ được nêu rõ ở phần
sau.
2.4 Q trình thực tập và thực hiện cơng việc
Giai đoạn 1 (07/20222 -> 08/2022): Tham gia dự án đầu tiên, tìm hiểu cơng
nghệ, học hỏi quy trình và cách làm việc của cơng ty.
-

Ngơn ngữ lập trình: Typescript, Javascript
IDE: Visual code
Framework: React Native
Date

Description

Problem

25/07/2022 (Mon)

Get to know the members
Clone source code run emulator.

Buld failed on
emulator

Run on devices

[USER DETAIL] [CONTACT]
Build draft UI

Clone project error

26/07/2022 (Tue)

None

27/07/2022 (Wed)

Start first task: [USER DETAIL]
[CONTACT] Build
draft UI 2 Table
Learn about source code , structure

Đinh Gia Kiệt

Đặng Duy Bằng - 19521234


11
app
Learn atomic design, Mobx, ...
Query from
database

28/07/2022 (Thu)

Completed build UI user contact

table
New task: load data to table user
contact
Logic and re build UI User Info
Detail Contact

29/07/2022 (Fri)

Adjust UI User Contact Screen
Load data from local data to User
contact table: doing

Code unclear,
lengthy
None

1/08/2022 (Mon)

Load data into table user and family
contact
Adjust UI user contact screen
Buid top info UI in user contact
screen

None

2/08/2022 (Tue)

Continue Load data header info user
contact

Handle optimal code: Pending
Load data header info user contact:
Done

None

Handle optimal code: Done
3/08/2022 (Wed)

Update UI
fix logic code
change to text from /atom
fix conflict
None

4/08/2022 (Thu)

Fix yesterday's conflict
test sreen on android and ios
fix layout and error userPhoto
fix phone call on ios
completed User Detail Contact
Screen

None

5/08/2022 (Fri)

Create AddUnScheduleScreen
Select User Screen

Handle navigate to
AddScheduleVPScreen
Fix conflict

None

8/08/2022 (Mon)

Read test case
Test on real device (android)
Record video
Find bug and list on exel rely on

Đinh Gia Kiệt

Đặng Duy Bằng - 19521234


12
Test case (Check in, Check out,
leave note, signature)
None

9/08/2022 (Tue)

Improve UI User Contact Detail
Test on android device
Test rely test case Elapsed record
report and note


None

10/08/2022 (Wed)

Fix UI (handle invalid data)
Re logic handle data
UserFamilyContact
Fix render data if previous data is
empty
Test double elapsed record

11/08/2022 (Thu)

Fix bug screen User contact
Test

None

12/08/2022 (Fri)

Test Register Order
Test Vital

None

15/08/2022 (Mon)

Improve footer UI
Change animation for popup
smoothy


Smoothy Model
animation

16/08/2022 (Tue)

Adjust loading LoginScreen
and handle lag on android
Synchronize animation popups and
modals

Interact slowly
when
press button
None

17/08/2022 (Wed)

Handle loading show staffmodel in
loginscreenbyusernamescreen
Create common modal component
Build and test on android device
Fix conflict

18/08/2022 (Thu)

Handle navigate to user contact
from ShiftInfo (65%)
Fix padding UserListScreen and
VPSelectUserScreen


Disappear when
load data after
new query
None

19/08/2022 (Fri)

Handle navigato user contact fro
shiftInfo: Done
Fix color and pading UI
Fix conflict Modal coponent

22/08/2022 (Mon)

Estimate phase 2

None

23/08/2022 (Tue)

Adjust persistentScrollbar visible in
table

ShowlLoading
when no data

Đinh Gia Kiệt

Đặng Duy Bằng - 19521234



13
Change color for background
userInfo
Fix layout UI familyTable
Fix conflict
Fix animationIn for loading screen
24/08/2022 (Wed)

Improve scrollbar
Fix loading userContact

None

Giai đoạn 2 (08/20222 -> 09/2022): Học công nghệ mới, ngôn ngữ mới, đánh
giá khả năng học hỏi, tốc độ tiếp thu kiến thức.
-

Ngôn ngữ lập trình: Objective-C
IDE: Xcode
Date

25/08/2022 – 02/09/2022

Description
Implementing Views









05/09/2022 – 16/09/2022

Implementing Controllers










19/09/2022 – 23/09/2022

Displaying Alerts with UIAlertView
Creating and Using Switches with UISwitch
Customizing the UISwitch
Picking Values with the UIPickerView
Picking the Date and Time with UIDatePicker
Implementing Range Pickers with UISlider
Customizing the UISlider

Grouping Compact Options with
UISegmentedControl

Presenting and Managing Views with
UIViewController
Presenting Sharing Options with
UIActivityViewController
Presenting Custom Sharing Options with
UIActivityViewController
Implementing Navigation with
UINavigationController
Manipulating a Navigation Controller’s Array
of View Controllers
Displaying an Image on a Navigation Bar
Adding Buttons to Navigation Bars Using
UIBarButtonItem
Presenting Multiple View Controllers with
UITabBarController

Creating Dynamic and Interactive User Interfaces
− Adding Gravity to Your UI Components

Đinh Gia Kiệt

Đặng Duy Bằng - 19521234


14
− Detecting and Reacting to Collisions Between
UI Components
− Animating Your UI Components with a Push
− Attaching Multiple Dynamic Items to Each
Other

− Adding a Dynamic Snap Effect to Your UI
Components
− Assigning Characteristics to Your Dynamic
Effects
Giai đoạn 3 (09/20222 -> 10/2022): Chuyển qua dự án tiếp theo để hỗ trợ
mọi người phát triển, maintain ứng dụng di động, tiếp tục thực hiện các tasks được
giao theo yêu cầu của dự án.

Đinh Gia Kiệt

Đặng Duy Bằng - 19521234


15
Chương 3

Tổng kết

Như vậy, đã kết thúc 3 tháng thực tập tại công ty, lời đầu tiên em xin chân thành
gửi lời cảm ơn đến trường đại học Công nghệ thơng tin đã tạo cơ hội để tụi em có
được những cơ hội để tiếp cận với thế giới bên ngoài, được tham gia vào dự án thực
tế, biết được năng lực và đam mê của bản thân đã giúp em có thêm những kinh nghiệm
đầu tiên trong hành trình sự nghiệp của mình.
Ngồi ra, em cũng muốn dành lời cảm ơn công ty Vitalify Asia đã tạo điều kiện
cho em cũng như các bạn cùng trang lứa có một môi trường thực tập thật tốt, cảm ơn
sự giúp đỡ của anh chị trong team trainer đã dành thời gian quý báu của mình để nâng
đỡ các đàn em, giúp em hiểu được quy trình làm việc, cách làm việc cá nhân cũng
như làm việc nhóm sao cho hiệu quả.

Đinh Gia Kiệt


Đặng Duy Bằng - 19521234



×