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

Báo Cáo Thực Tập Lập Trình Flutter Trên Thiết Bị Di Động.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 (356.08 KB, 15 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 FLUTTER TRÊN THIẾT BỊ
DI ĐỘNG

Cơng ty thực tập

: Công ty TNHH Hopee

Người phụ trách

: Phạm Thị Hoài Chi

Thực tập sinh

: Nguyễn Võ Đức Thắng

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


LỜI MỞ ĐẦU
Ngày nay, tỉ lệ dùng internet lên tới 70% dân số, tức khoảng 68 triệu người (thống kê bởi
VNetwork). Song hành với nó là sự phát triển của ngành cơng nghệ thơng tin nói chung và sự
vươn lên mạnh mẽ của các ứng dụng trên điện thoại di động nói riêng.
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải là ngoại lệ. Ngành công
nghiệp mobile non trẻ của Việt Nam đã và đang phát triển mạnh mẽ, để hịa nhập với những cơng
ty hàng đầu về công nghệ trên thế giới. Bên cạnh những công ty trẻ tuổi trong nước, những công
ty lớn trên thế giới cũng gia nhập vào thị trường Việt Nam, góp phần rất lớn vào sự phát triển


tích cực của công nghệ mobile của Việt Nam.
Các ứng dụng trên mobile được sử dụng và biết đến rộng rãi trong cộng đồng, cũng như khả
năng truy cập bằng nhiều thiết bị và nền tảng như IOs và Android. Vì vậy em quyết định chọn
lập trình Flutter trên thiết bị di động làm định hướng cho việc thực tập của mình.
Sau ba năm học tập trên trường, do mong muốn có thêm kinh nghiệm thực tế, cũng như tham gia
vào môi trường làm việc chuyên nghiệp, em có dự định thực tập trong kỳ một năm bốn. Vì vậy,
em quyết định chọn công ty TNHH Hopee - một môi trường lý tưởng, hiện đại, chuyên nghiệp
để thực hiện dự định này.


LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty TNHH Hopee đã 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ị, nhóm thực tập
chúng em đã tiếp thu được những kiến thức quan trọng để có thể làm được một website hoàn
chỉnh. Chân thành cảm ơn các anh/chị đã bỏ ra nhiều thời gian, công sức để hướng dẫn chúng em
hoàn thành đợt thực tập này.
Đặc biệt cảm ơn chị Phạm Thị Hoài Chi đã hướng dẫn và giúp đỡ cho chúng em tận tình cả
những khó khăn trong cơng việc, đến những khó khăn trong việc làm quen với môi trường mới.
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 Võ Đức Thắng
Tp.HCM, ngày 27 tháng 12 năm 2022


NHẬN XÉT CỦA KHOA


MỤC LỤC


Chương 1. GIỚI THIỆU CÔNG TY THỰC TẬP

1

1. Giới thiệu về công ty Singalarity

1

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

1

Chương 2. NỘI DUNG THỰC TẬP

2

1. Tìm hiểu văn hóa và nghiên cứu kỹ thuật

2

1.1. Văn hóa

2

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

2

1.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.3.1. Các công cụ và quy trình làm việc

3

1.3.2. Tìm hiểu các ngơn ngữ và framework (Dart - Flutter)

3

Chương 3. THỰC HIỆN DỰ ÁN

5

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

5

2. Lịch làm việc

5

Chương 4. CHI TIẾT VỀ DỰ ÁN

8

1. Giới thiệu về website

8


2. Thực hiện

8

3. Kế hoạch

8

3.1. Giai đoạn 1

8

3.2. Giai đoạn 2

8

3.3. Giai đoạn 3

9


Chương 1: GIỚI THIỆU CÔNG TY THỰC TẬP

1.

Giới thiệu về công ty Singalarity
Hopee là một công ty tư vấn và kỹ thuật CNTT cung cấp các giải pháp phần mềm đầu
cuối cho các doanh nghiệp, nhà cung cấp phần mềm độc lập, cơ quan kỹ thuật số và công
ty khởi nghiệp.

Với tầm nhìn là trở thành một trong những nhà cung cấp dịch vụ và giải pháp CNTT
hàng đầu tại Việt Nam và Châu Á.

2.

Sản phẩm và dịch vụ của công ty
● Web & App Development: Tất cả các loại phần mềm dựa trên web và ứng dụng dành
cho thiết bị di động cho tất cả các nền tảng, thiết bị và đối tượng.
● E-commerce Development: Các giải pháp thương mại điện tử cho các mơ hình kinh
doanh đa dạng hoạt động trơn tru trên tất cả các nền tảng.
● AI & Blockchain Development: Nhiều loại giải pháp AI và phát triển Chuỗi khối đáp
ứng nhu cầu kinh doanh đa dạng.
● IT Consulting: Chinh phục những thách thức kinh doanh phức tạp với chuyên môn về
phát triển giải pháp trong các ngành.

1


Chương 2: NỘI DUNG THỰC TẬP
Đợt thực tập ở công ty Hopee nhằm mục đích giúp sinh viên thực tập được đào tạo tồn diện về
quy trình phát triển một ứng dụng mobile và việc tích hợp back-end vào ứng dụng. Đồng thời rèn
luyện những kỹ năng mềm như làm việc nhóm, kỹ năng giao tiếp, lên kế hoạch, kiểm sốt thời
gian. 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ôi trường
chun nghiệp.
1.
1.1.

Tìm hiểu văn hóa và nghiên cứu kỹ thuật
Văn hóa
● Thời gian: 2 ngày.

● Nội dung: Giới thiệu về cơng ty, văn hóa làm việc và cài đặt và hướng dẫn sử dụng các
ứng dụng phục vụ cho công việc
○ Sinh viên được giới thiệu về cơ cấu tổ chức của công ty, các khẩu ngữ, nguyên tắc
cốt lõi trong công việc.
○ Đọc, hiểu, tự tin áp dụng các khẩu ngữ vào quá trình thực tập cũng như cuộc
sống.
● Kết quả: Nắm được văn hóa làm việc của cơng ty và các ứng dụng phụ trợ cho việc thực
tập..

1.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ề 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ề Clean Architecture và GetX 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ề Clean Architecture và GetX về cách thức vận hành cũng như xây dựng
ứng dụng demo.


1.3.
1.3.1.

Tìm hiểu và tập huấn quy trình làm việc, kiến thức mới
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.

1.3.2.

Tìm hiểu các ngơn ngữ và framework (Dart - Flutter)
● Thời gian: 3 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:
○ 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ừ root đế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.


3


○ Quan hệ giữa Widget, Element và Render Object: mỗi Render Object Element
khi được gắn lên Element Tree sẽ nhờ widget mà nó đang nắm giữ gọi hàm create
Render Object() để tạo ra object render Object và nó sẽ nắm giữ tham chiếu của
renderObject. Từ render Object 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.


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,
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

1

Cơng việc

- Tìm hiểu về văn hóa làm việc
tại cơng ty cơng ty.

Người
hướng dẫn

Mức độ
hồn thành

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

Phạm Vũ

100%

Hồn thành
tốt

Phạm Vũ


100%

Hồn thành
tốt

Hồng Văn
Lâm

100%

Hồn thành
tốt

Hồng Văn
Lâm

100%

Hồn thành
tốt

- Nghiên cứu các cơng nghệ sử
dụng cho công việc.

2

- Cài đặt các ứng dụng phục vụ
cho cơng ty.
- Tìm hiểu cách thức và ngun
tắc sử dụng Git, CI/CD.


3

- Tìm hiểu cách nhận task và
báo cáo, cách push code và pull
request trên GitLab.
- Tìm hiểu về ngôn ngữ Dart,
framework Flutter, Clean
Architecture, GetX State
management.

4

- Tham gia thực hiện dự án thực
tế.
- Tham gia các cuộc họp với

5


khách hàng.
- Nhận các tasks phù hợp với
năng lực bản thân
- Sửa đổi code theo yêu cầu
code review.

4

- Tham gia thực hiện dự án thực
tế.


Hoàng Văn
Lâm

100%

Hoàn thành
tốt

Hoàng Văn
Lâm

100%

Hoàn thành
tốt

Hoàng Văn
Lâm

100%

Hoàn thành
tốt

- Tham gia các cuộc họp với
khách hàng.
- Nhận các tasks phù hợp với
năng lực bản thân
- Sửa đổi code theo yêu cầu

code review.

5

- Tham gia thực hiện dự án thực
tế.
- Tham gia các cuộc họp với
khách hàng.
- Nhận các tasks phù hợp với
năng lực bản thân
- Sửa đổi code theo yêu cầu
code review.

6

- Tham gia thực hiện dự án thực
tế.
- Tham gia các cuộc họp với
khách hàng.
- Nhận các tasks phù hợp với
năng lực bản thân


- Sửa đổi code theo yêu cầu
code review.

7

- Tham gia thực hiện dự án thực
tế.


Hoàng Văn
Lâm

100%

Hoàn thành
tốt

Hoàng Văn
Lâm

100%

Hoàn thành
tốt

- Tham gia các cuộc họp với
khách hàng.
- Nhận các tasks phù hợp với
năng lực bản thân
- Sửa đổi code theo yêu cầu
code review.

8

- Tham gia thực hiện dự án thực
tế.
- Tham gia các cuộc họp với
khách hàng.

- Nhận các tasks phù hợp với
năng lực bản thân
- Sửa đổi code theo yêu cầu
code review.

7


Chương 4: CHI TIẾT VỀ DỰ ÁN
1.

Giới thiệu về dự án
Tên dự án: ADO
Giới thiệu: là phần mềm được phát triển cho một đối tác ở Nhật Bản, cung cấp dịch vụ
khám chữa bệnh từ các phịng khám có các bác sĩ với hơn 20 năm kinh nghiệm về lĩnh
vực của họ cho các bệnh nhân ở Việt Nam, Trung Quốc cũng như Nhật Bản có nhu cầu
tiếp nhận nền y khoa tiên tiến nhưng khơng có điều kiện hoặc thời gian sang Nhật Bản.

2.

Thực hiện
● Nhóm phát triển ứng dụng di động Flutter của Hopee.
● Thực tập sinh: Nguyễn Võ Đức Thắng.
● Người hướng dẫn: Hoàng Văn Lâm.

3.
3.1.

Kế hoạch
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

3.2.

Giai đoạn 2
● Tham gia chính thức vào dự án với quy trình làm việc, tham gia họp kế hoạch với khách
hàng.
● 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 demo sản phẩm cho khách hàng.


3.3.

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

9


TỔNG KẾT
Như vậy, trong 2 tháng thực tập tại công ty TNHH Hopee, em đã lần đầu tiên được tham
gia vào phát triển một dự án thực tế, hiểu được các quy trình làm việc trong công ty. Bên
cạnh đó, em cũng đã tiếp thu được rất nhiều kiến thức bổ ích và trau dồi thêm cho mình
nhiều kỹ năng cần có để hỗ trợ cho công việc của mình sau này.
Em xin chân thành gửi lời cảm ơn đến chị Phạm Thị Hoài Chi, anh Hoàng Văn Lâm và
tất cả các anh chị trong nhóm phát triển dự án đã giúp đỡ và hỗ trợ em rất nhiều và nhiệt

tình trong suốt thời gian em thực tập và làm việc tại Hopee.
Một lần nữa, em xin trân trọng cảm ơn Công ty TNHH Hopee đã cho em cơ hội và tạo
điều kiện rất tốt để cho em được làm việc và phát triển tại công ty. Cảm ơn các quý thầy
cô của trường Đại học Công nghệ thông tin, đặc biệt là các thầy cô trong khoa Công nghệ
phần mềm đã hỗ trợ em trong quá trình tìm việc, thực tập và quá trình hoàn thiện báo cáo
này.



×