Tải bản đầy đủ (.docx) (21 trang)

Báo cáo thực tập lập trình ứng dụng di động với flutter

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 (2.15 MB, 21 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
LẬP TRÌNH ỨNG DỤNG DI ĐỘNG VỚI FLUTTER

Công ty thực tập:

Vitalify Asia

Người phụ trách:

Nguyễn Thị Nhi (BPM)

Thực tập sinh: Nguyễn Dương Tùng

Thành phố Hồ Chí Minh, 08/08/2022


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

NỘI DUNG
LỜI CẢM ƠN........................................................................................................................................4
NHẬN XÉT CỦA KHOA.....................................................................................................................5
A.

CHƯƠNG 1: Giới thiệu công ty thực tập....................................................................................6

1.



Giới thiệu chung............................................................................................................................6

2.

Sản phẩm & dịch vụ của cơng ty..................................................................................................6

B.

CHƯƠNG 2: Nội dung thực tập...................................................................................................8

1.

Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty...............................................................8

2.

Nghiên cứu kỹ thuật......................................................................................................................8

3.

Tìm hiểu và tập huấn quy trình làm việc, kiến thức mới...........................................................9
3.1.

Các cơng cụ và quy trình làm việc...........................................................................................9

3.2.

Tìm hiểu về Framework Flutter..............................................................................................9


3.3.

Tìm hiểu về Firebase...............................................................................................................11

C.

CHƯƠNG 3: Thực hiện dự án....................................................................................................13

1.

Thực hiện dự án...........................................................................................................................13

2.

Lịch làm việc................................................................................................................................13

D.

CHƯƠNG 4: Chi tiết dự án........................................................................................................16

1.

Giới thiệu......................................................................................................................................16

2.

Thực hiện.....................................................................................................................................18

3.


Kế hoạch.......................................................................................................................................18
3.1.

Giai đoạn 1................................................................................................................................18

3.2.

Giai đoạn 2................................................................................................................................19

3.3.

Giai đoạn 3................................................................................................................................19

TỔNG KẾT.........................................................................................................................................20
DANH MỤC TÀI LIỆU THAM KHẢO............................................................................................21

2


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

LỜI MỞ ĐẦU
Việt Nam trong những năm qua phát triển mạnh mẽ về khoa học, kỹ thuật và đặt
biệt là công nghệ thơng tin, nhờ những chính sách cởi mở, thúc đẩy phát triển, số hố
hiện đại hố. Ví dụ điển hình và gần nhất chính là các ứng dụng kiểm soát và hỗ trợ
người dân chống dịch trong đại dịch Covid 19 đã góp phần khơng nhỏ vào thành cơng
đẩy lùi dịch bệnh.
Với xu thế phát triển các ứng dụng trên thiết bị di động, các chính sách thúc đẩy
phát triển ứng dụng công nghệ cao. Những công ty phát triển phần mềm với sứ mệnh

tạo ra các sản phẩm của trí tuệ Việt – “made in Vietnam” ngày càng được chú trọng và
tạo điều kiện phát triển và em cho rằng sẽ là xu thế trong tương lai. Vì lý do này, em
quyết định chọn lập trình ứng dụng di động làm định hướng học tập, phát triển sự
nghiệp sau này.
Sau khoảng thời gian học tập tại trường, mong muốn có thêm kinh nghiệm thực
tế, tham gia vào mơi trường phát triển phần mềm chuyên nghiệp, em quyết định chọn
Vitalify Asia – một cơng ty có nền tảng đa quốc gia, chuyên nghiệp và cởi mở để làm
nền tảng đầu tiên trong con đường sự nghiệp.
Trân trọng cảm ơn, và chúc sức khoẻ.

3


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn đến Công ty Vitalify Asia đã tạo điều kiện cho em
đảm nhận vai trò thực tập sinh tại team Flutter, học hỏi và phát triển kỹ năng thực tế.
Dù khoảng thời gian thực tập ngắn, nhưng nhờ sự hướng dẫn nhiệt tình của chị
Nguyễn Thị Nhi (BPM) và anh Huỳnh Văn Trận (Dev Lead Team), em đã có những
kiến thức quan trọng về quy trình làm việc thực tế, kiến thức chun mơn về lập trình
ứng dụng đa nền tảng với Flutter.
Đồng thời, trân trọng 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 hiện để em thực hiện bài báo cáo.
Nguyễn Dương Tùng – 20/08/2022

4



Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

NHẬN XÉT CỦA KHOA

.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
.......................................................................................................................................
5


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm


A. CHƯƠNG 1: Giới thiệu công ty thực tập
1.

Giới thiệu chung
 Tên công ty: Vitalify Á Châu (Vitalify Asia)
 Địa chỉ: 224A Điện Biên Phủ, Phường 6, Quận 3, Thành phố Hồ Chí Minh
 Trang web: a/
 Điện thoại: 028 3932 6293
Vitalyfy Asia được thành lập vào năm 2008, là một công ty outsourcing tập trung

vào mảng phát triển phần mềm trên ứng dụng di động với sứ mạng “đưa những giá trị
hạnh phúc thơng qua internet”.
Vitalify Asia có mục tiêu trở thành một cơng ty chun nghiệp có thể đảm nhận
các dự án mang tầm vóc quốc tế. Chính sách phát triển của cơng ty đó là: mỗi nhân sự
từ kỹ sư, quản lý,… có trách nhiệm mở rộng vai trị và phạm vi cơng việc, tinh thần
trách nhiệm của chính bản thân để mang lại giá trị cho người dùng với cấu trúc tổ chức
phân thành các nhóm nhỏ ưu tú.
Sau hơn 10 năm thành lập, Vitalify Asia bước vào một giai đoạn thử thách mới
nhằm nâng cao hơn nữa giá trị kỹ thuật của công ty tại Việt Nam. Mục tiêu tạo ra
những sản phẩm “made in Vietnam” tiêu chuẩn quốc tế.
2.

Sản phẩm & dịch vụ của công ty
Vitalify Asia nhận gia công phát triển web và ứng dụng di động cho phù hợp với

yêu cầu của tôt chức và doanh nghiệp. Đội nhóm của Vitalify Asia có tính chất đa quốc
gia, có thể hoạt động từ xa, Vitalify Asia cam kết mang đến những sản phẩm với giá trị
bền vững và nhanh chóng cho doanh nghiệp.
Vitalify Asia có kinh nghiệm phát triển các hệ thống, ứng dụng trên đa dạng các

lĩnh vực, với khả năng hoạt động real-time bao gồm nhiều gia đoạn phát triển khác
nhau từ lên kế hoạch, vận hành và phát triển, cập nhật về sau.
6


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

Các sản phẩm của Vitalify Asia có thể kể đến như sau:
NativeCamp
Nền tảng trực tuyến gia sư dạy tiếng anh chuyên sâu. Native Camp là một trong
những nền tảng trường học tiếng anh lớn nhất tại Nhật Bản. Native Camp giúp người
dùng học tập tiếng Anh với tất cả 4 kỹ năng: nghe, nói, đọc, viết ngồi ra cịn có các
chức năng đánh giá, kiểm tra khả năng tiếng Anh, học trực tiếp với giáo viên hoặc
thông qua các tài nguyên có sẵn.
Các sản phẩm ứng dụng game
Vitalify Asia phát triển nhiều tựa game giải trí trên thiết bị di động với lối chơi
đơn giản. Một số trong đó có sử dụng công nghệ AR tăng cường thực tế ảo như Face
Emotion – Xác định cảm xúc, Zombie Doors AR.

7


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

B. CHƯƠNG 2: Nội dung thực tập
Trong khoảng thời gian thực tập tại cơng ty, sinh viên có cơ hội học tập thêm
các kiến thức chuyên môn, tiếp xúc với các quy trình thực hiện dự án, giải quyết các
vấn đề phát sinh trong một dự án thực tế. Sinh viên được nâng cao kĩ năng phần tích

yêu cầu, đặt câu hỏi, tương tác trực tiếp với khách hàng và các thành viên trong đội
phát triển. Ngồi ra, sinh viên cịn có cơ hội phát triển các kỹ năng mềm như nghiên
cứu thơng tin, thuyết trình, giao tiếp.
1. Tìm hiểu cơng ty và các kỹ năng cơ bản trong công ty
Thời gian: 2 ngày
Nội dung: Giới thiệu về công ty, cơ cấu tổ chức của cơng ty, các chấm cơng, tính
lương, quyền lợi và văn hố làm việc của cơng ty.
Sinh viên được giới thiệu về cơ cấu tổ chức của cơng ty, cách phân đội nhóm, cách
thức tiếp nhận dự án của đội nhóm, cách tiếp nhận và giải quyết các task nhiệm vụ và
báo cáo hàng ngày.
Trong thời gian này, sinh viên được công ty đánh giá sơ lược về khả năng để
chuyển về các đội nhóm phù hợp với năng lực. Sinh viên được cấp quyền truy cập các
tài nguyên nội bộ, chỉ dẫn của công ty, email domain riêng để tương tác với hệ thống
của khách hàng.
Kết quả: Có hiểu biết về cơ cấu hoạt động của cơng ty, quy trình phát triển phần
mềm Scrum, cách tham gia các cuộc họp nội bộ và với khách hàng, cách tiếp nhận
nhiệm vụ và báo cáo hàng ngày.
2. Nghiên cứu kỹ thuật
Thời gian: 3 ngày
Nội dung: Trong thời gian chờ đợi được phân vào đội nhóm thực hiện dự án thực
tế cũng như chờ các tài khoản nội bộ được kích hoạt, sinh viên được giao tìm hiểu về

8


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

các cơ chế cơ bản của Flutter như state là gì? widget là gì? Phân biệt tính chất của
widget tree, render tree,… Tìm hiểu về thư viện MobX và kiến trúc BloC dùng để quản

lý state của một ứng dụng Flutter một cách đơn giản và tường minh.
Kết quả: Hiểu rõ hơn về Flutter, nắm bắt được các lý thuyết hoạt động của
Framework này. Hiểu biết về thư viện MobX và kiến trúc BloC về cách thức vận hành
cũng như xây dựng ứng dụng demo.
3. Tìm hiểu và tập huấn quy trình làm việc, kiến thức mới
3.1.

Các cơng cụ và quy trình làm việc
Thời gian: 4 ngày
Nội dung: Sau khi tiếp nhận các tài khoản nội bộ. Sinh viên được hướng dẫn

về DevOps, CI/CD, các nguyên tắc, quy ước trong mã nguồn và cách làm việc
với GitLab, quá trình review mà merge mã nguồn. Sinh viên được yêu cầu đọc
và review trước mã nguồn, tài liệu của dự án trước khi chính thức nhận nhiệm
vụ thao tác trực tiếp trên mã nguồn.
Thực hiện: Tham gia buổi hướng dẫn, đọc các tài liệu liên quan đến các
công cụ được sử dụng để phát triển dự án.
Kết quả: Hiểu được tổng quan về dự án, các tác nhân trong và ngồi có liên
quan, hiểu được mã nguồn và các quy ước chung khi thao tác trên dự án. Hiểu
biết về DevOps, CI/CD và cách thao tác với GitLab.
3.2.

Tìm hiểu về Framework Flutter
Thời gian: 2 ngày
Nội dung: Được giao nhiệm vụ tìm hiểu các lý thuyết hoạt động của Flutter,

cách thức vận hành của một ứng dụng Flutter. Các nội dung chính được tóm tắt
như sau:

9



Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

Widget: “Mọi thứ trong Flutter đều là Widget” – một câu nói nổi tiếng trong
tài liệu chính thức của Flutter, khi học trên trường, em cũng cho rằng như vậy,
tuy nhiên khi tìm hiểu sâu hơn thì Widget dường như là một bản thiết kế, Flutter
dựa vào bản thiết kế này để render ra các thành phần UI, các thành phần này
thực chất là Element và RenderObject.
Element: Là đại diện cho instance của một Widget tại một vị trí cụ thể trong
hệ thống cây, đây là thành phần UI thật để hiển thị trên màn hình.
RenderObject: Chịu trách nhiệm căn chỉnh kích thước, sắp xếp vị trí, canh
chỉnh, hồn thiện tơ màu cho Element.
Quan hệ giữa Element, Widget và State: Trong hàm runApp, ta truyền vào
một Widget Tree với MyApp là root Widget. Flutter sẽ đi từ rôt đến hết cây, mỗi
Widget trên cây sẽ gọi hàm createElement để tạo các Element và từ đó tạo nên
Element Tree. Stateful Widget sẽ tạo ra Stateful Element tham chiếu đến state cụ
thể và Stateless Widget sẽ tạo ra Stateless Element và chỉ tham chiếu đến

Widget.

10


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

Quan hệ giữa Widget, Element và RenderObject: mỗi RenderObjectElement
khi được gắn lên Element Tree sẽ nhờ widget mà nó đang nắm giữ gọi hàm

createRenderObject() để tạo ra object renderObject và nó sẽ nắm giữ tham chiếu
của renderObject. Từ renderObject sẽ nhờ các hàm paint, performLayout để tạo
nên giao diện hiển thị.
Quá trình rebuild: Mỗi lần Widget bị rebuild, Element sẽ so sánh Widget và
State xem có gì khác so với ban đầu không rồi đưa đến quyết định xây dựng lại.
Cơ chế Hot reload: Khi thực hiện bất kì thay đổi nào trong mã thì có thể thấy
chúng ngay lập tức mà không cần phải khởi động lại ứng dụng bằng cơ chế thay
đổi thêm bớt mã ngay trong run time giúp tiết kiệm thời gian.
Thực hiện: Đọc tài liệu, tham gia buổi hướng dẫn, chia sẽ kiến thức.
Kết quả: Có hiểu biết sâu hơn về cách thức vận hành của Framework
Flutter, các ưu điểm và hạn chế so với các Framework khác, khi nào và trong
tình huống nào thì nên dùng Framework này.
3.3.

Tìm hiểu về Firebase
Thời gian: 1 ngày
Nội dung: Tìm hiểu về các dịch vụ của Firebase mà dự án đang sử dụng

như: Authentication, Firebase Cloud Messaging. Nội dung chính được tóm tắt
như sau:
Phone authentication: Cho phép ứng dụng được đăng nhập sử dụng số điện
thoại để xác thực. Một SMS sẽ được gửi đến người dùng theo số điện thoại mà
người dùng cung cấp, chứa một mã số duy nhất. Khi mã số này được xác thực
bởi Firebase, người dùng chuyển thành trạng thái đã đăng nhập.
Firebase Cloud Messaging: Là một giải pháp đa nền tảng giúp dễ dàng gửi
các đoạn thơng báo nhanh chóng và tiết kiệm. Server sẽ nhận đoạn tin nhắn cần

11



Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

thông báo đến người sử dụng ứng dụng. Firebase sẽ chịu trách nhiệm gửi đến
các thiết bị có cài đặt ứng dụng thông qua một mã gọi là Token.

Thực hiện: Đọc tài liệu, tham gia buổi hướng dẫn, chia sẽ kiến thức.
Kết quả: Biết phương thức hoạt động của dịch vụ Authentication và
Firebase Cloud Messaging được cung cấp bởi Firebase.

12


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

C. CHƯƠNG 3: Thực hiện dự án
1. Thực hiện dự án
Trong khoảng thời gian 1 tháng được hướng dẫn và thực hiện công việc trực tiếp
trên dự án thực tế, sinh viên có những hiểu biết sâu sắc hơn về quy trình phát triển
phần mềm Scrum, các kiến thức kỹ thuật liên quan đến phát triển ứng dụng cross
platform. Cách tiếp nhận feedback nội bộ cũng như từ khách hàng để hoàn thiện sản
phẩm, đảm bảo chất lượng sản phẩm cao nhất.
2. Lịch làm việc
Tuần

Cơng việc

Người
Mức độ

hướng dẫn hồn thành

Nhận xét của
người hướng dẫn

Tìm hiểu về cơng ty, các tổ
chức sắp xếp đội nhóm của

1

cơng ty.
Làm quen với các cơng cụ
giao tiếp, hệ thống của cơng

Bùi Bình
Trung

100%

Hồn thành tốt

100%

Hồn thành tốt

ty.
Học cách tham gia các cuộc
họp, báo cáo hàng ngày.

Tìm hiểu về quy trình làm

việc Scrum, DevOps,
2

CI/CD.
Tìm hiểu cách nhận task và

Nguyễn
Thị Nhi

báo cáo, cách push code và
pull request trên GitLabs.

13


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

Tham gia họp Daily Scrum.
Tham gia họp lấy ý kiến và
yêu cầu khách hàng.
Nhận task phù hợp với khả
3

năng.
Tham gia các cuộc họp
review các chức năng đã

Nguyễn
Thị Nhi

100%

Hoàn thành tốt

100%

Hoàn thành tốt

100%

Hoàn thành tốt

Huỳnh
Văn Trận

làm và học hỏi kiến thức
mới.
Tham gia họp Daily Scrum.
Tham gia họp lấy ý kiến và
yêu cầu khách hàng.
Nhận task phù hợp với khả
4

năng.
Tham gia các cuộc họp
review các chức năng đã

Nguyễn
Thị Nhi
Huỳnh

Văn Trận

làm và học hỏi kiến thức
mới.
Tham gia họp Daily Scrum.
Tham gia họp lấy ý kiến và
yêu cầu khách hàng.
Nhận task phù hợp với khả
5

năng.
Tham gia các cuộc họp
review các chức năng đã

Nguyễn
Thị Nhi
Huỳnh
Văn Trận

làm và học hỏi kiến thức
mới.

14


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

Tham gia họp Daily Scrum.
Tham gia họp lấy ý kiến và

yêu cầu khách hàng.
Nhận task phù hợp với khả
6

năng.
Tham gia các cuộc họp
review các chức năng đã

Nguyễn
Thị Nhi
100%

Hoàn thành tốt

100%

Hoàn thành tốt

100%

Hoàn thành tốt

Huỳnh
Văn Trận

làm và học hỏi kiến thức
mới.
Tham gia họp Daily Scrum.
Tham gia họp lấy ý kiến và
yêu cầu khách hàng.

Nhận task phù hợp với khả
7

năng.
Tham gia các cuộc họp
review các chức năng đã

Nguyễn
Thị Nhi
Huỳnh
Văn Trận

làm và học hỏi kiến thức
mới.

Hoàn thành các tài liệu thực

8

tập.
Tham gia các cuộc họp

Nguyễn

review, đánh giá quá trình

Thị Nhi

thực tập và các chức năng đã
thực hiện.


15


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

D. CHƯƠNG 4: Chi tiết dự án
1. Giới thiệu
Tên Project: dgHome
Mô tả: Là phần mềm được phát triển bởi Vitalify Asia dành cho đối tác là
Mitsubishi và Vinhome. Ứng dụng giúp quảng bá sản phẩm là các căn hộ của Vinhome
bao gồm các hình ảnh, bài viết liên quan, xem 3D mơ phỏng căn hộ, chăm sóc khách
hàng, xem báo giá dự tính,…
Một số hình ảnh của phần mềm:

16


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

17


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

2. Thực hiện
Nhóm phát triển ứng dụng di động Flutter của Vitalify Asia

Thực tập sinh: Nguyễn Dương Tùng
Người hướng dẫn: Huỳnh Văn Trận
3. Kế hoạch
3.1.
-

Giai đoạn 1
Đọc, tìm hiểu các tài liệu khởi tạo của dự án
Đọc, tìm hiểu bản thiết kế UI/UX của ứng dụng
Đọc, tìm hiểu các framework, thư viện liên quan của dự án
18


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

3.2.
3.3.
-

Giai đoạn 2
Tham gia chính thức vào dự án với quy trình làm việc Scrum, tham gia họp
kế hoạch đầu tuần, daily scrum, họp cuối tuần đánh giá
Nhận các nhiệm vụ phù hợp với năng lực
Nhận đánh giá và hướng dẫn từ cấp trên trực tiếp
Sửa các lỗi phát sinh (nếu có) trong q trình release sản phẩm cho khách
hàng
Giai đoạn 3
Đánh giá kết quả thực tập
Hoàn thành tài liệu thực tập


19


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

TỔNG KẾT
Trong khoảng thời gian thực tập ngắn, em đã có thêm những kiến thức và kĩ
năng thực tế, có cơ hội áp dụng những gì đã học trên ghế nhà trường. Tuy cịn nhiều
thiếu sót và non nớt về kinh nghiệm, em cho rằng công việc thực tập đầu tiên này sẽ là
nền tảng, bệ phóng cho con đường sự nghiệp trong tương lai.
Một lần nữa, chân thành cảm ơn các anh chị tại công ty Vitalify Asia đã tận tình
hỗ trợ và giúp đỡ trong quá trình thực tập & các thầy cô khoa Công nghệ phần mềm đã
tạo điều kiện để em có thể hồn thành kì thực tập.

20


Báo cáo thực tập doanh nghiệp
Khoa Công nghệ phần mềm

DANH MỤC TÀI LIỆU THAM KHẢO
Flutter Document, truy cập 05/08/2022, từ />FlutterFire Overview, truy cập 06/08/2022, từ
/>NORDIC CODER, truy cập 03/08/2022, từ />Tìm hiểu sơ lược về Firebase, truy cập 05/08/2022, từ a/p/tim-hieu-soluoc-ve-firebase-Eb85oeOmZ2G

21




×