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 DI ĐỘNG VỚI
FLUTTER
Cơng ty thực tập
: Lecle Viet Nam
Người phụ trách
: Nguyễn Mạnh Hùng
Thực tập sinh
: Phạm Thăng Long
TP. Hồ Chí Minh, tháng 12 năm 2021
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
2
LỜI MỞ ĐẦU
Ngày nay, điện thoại di động thông minh là một trong những thiết bị không thể thiếu
trong cuộc sống thường ngày của chúng ta. Các thiết bị di động thơng minh có một sự
tăng trưởng và phát triển mạnh mẽ với sự ra đời liên tục của một loạt các máy tính bảng
hiện đại, điện thoại thơng minh có tính cạnh tranh cao, do đó thị trường xây dựng các
ứng dụng trên các thiết bị này trở nên vô cùng màu mỡ.
Tại Việt Nam, ngành công nghiệp phần mềm di dộng cũng đã và đang có tốc độ phát
triển nhanh chóng và lớn mạnh. Có thể thấy rằng, với sự tăng trưởng mạnh mẽ như vậy
thì ngàng phần mềm di động là ngành có tiềm năng trong tương lai.
Hiện nay, phần mềm di động thường chạy trên 2 nền tảng chính là Android và iOS. Vấn
đề đặt ra là làm sao để có thể từ một mã nguồn mà ứng dụng có thể chạy được trên cả 2
nền tảng này, và Flutter đã giải quyết được vấn đề này. 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ư muốn được tham gia phát triển
ứng dụng di động trong một môi trường chuyên nghiệp. Vì vậy, em quyết định chọn
Flutter – một môi trường mới, lý tưởng và hiện đại để em có thể thực hiện các ứng dụng
di động trong tương lai.
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
3
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty LECLE VIET NAM đã 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 cố vấn, nhóm
thực tập chúng em đã tiếp thu được những kiến thức quan trọng trong quá trình phát triển và
hiện thực một ứng dụng mobile. Chân thành cảm ơn các anh, chị trong nhóm cố vấn đã 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 anh Tạ Phi Phụng đã training Flutter cũng như hướng dẫn, 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 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.
Phạm Thăng Long
<TpHCM, ngày 22 tháng 12 năm 2021>
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
4
NHẬN XÉT CỦA KHOA
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
..........................................................................................................................................................
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
5
MỤC LỤC
Contents
Chương 1: Giới thiệu công ty thực tập ....................................................................................................... 6
1. Giới thiệu công ty LECLE VIET NAM: ......................................................................................... 6
2. Sản phẩm của công ty ...................................................................................................................... 7
Chương 2: Nội dung thực tập ..................................................................................................................... 8
1. Đào tạo hội nhập người mới của công ty ........................................................................................ 8
2. Nghiên cứu kỹ thuật ........................................................................................................................ 8
2.1.
Tìm hiểu và học tập về ngơn ngữ Dart, cơng nghệ Flutter ...................................................... 8
2.2. Nghiên cứu cách xây dựng mã nguồn và sử dụng các công cụ dựa trên logic nghiệp vụ của
công ty ................................................................................................................................................ 9
Chương 3: Chi tiết về project ................................................................................................................... 12
1. Giới thiệu ....................................................................................................................................... 12
2. Thực hiện ....................................................................................................................................... 12
3. Một số màn hình ............................................................................................................................ 13
Chương 4: Tổng kết.................................................................................................................................. 17
1. Kết quả đạt được: .......................................................................................................................... 17
1.1.
Kiến thức ................................................................................................................................ 17
1.2.
Kỹ năng .................................................................................................................................. 17
1.3.
Kinh nghiệm ........................................................................................................................... 17
2. Thuận lợi và khó khăn trong quá trình thực tập ............................................................................ 18
2.1.
Thuận lợi ................................................................................................................................ 18
2.2.
Khó khăn ................................................................................................................................ 18
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
6
Chương 1: Giới thiệu công ty thực tập
1. Giới thiệu công ty LECLE VIET NAM:
Công Ty Cổ Phần LECLE Viet Nam là một cơng ty phần mềm tồn cầu với các địa điểm
tại Hàn Quốc, Mỹ, Singapore và Việt Nam. Công ty cung cấp các giải pháp phù hợp nhất
với khách hàng trong một môi trường kết hợp các nền văn hóa và cơng nghệ đa dạng.
Trước khi về Việt Nam, Lecle đã triển khai 3 dịch vụ toàn cầu trong 3 năm. Tuy nhiên
các dịch vụ này đều thất bại vì đã cố gắng giải quyết tồn vẹn vấn đề với phúc lợi cho lập
trình viên.
Là một cơng ty phát triển phần mềm với mong muốn trở thành một cơng ty có thể biến ý
tưởng trở thành sản phẩm một cách nhanh và hiệu quả nhất với cách triển khai các kỹ
thuật tiên tiến nhất để tạo ra kiệt tác với mọi dự án.
Slogan của công ty: Ideas turned into business
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
7
2. Sản phẩm của công ty
Một số sản phẩm công cộng của cơng ty:
• 9cam - Ứng dụng để chụp hồn hảo từng pixel mà khơng cần lo lắng về filter, độ
phơi sáng, độ sáng, …
• Bombus - Một Website để thiết kế các nhân vật 2D, 3D, hình nền, hoạt ảnh và các
thiết kế đồ họa liên quan với VFX
• Crypto Badge - Một hệ thống chứng chỉ dựa trên blockchain để xác nhận chuyên
gia, thành tựu và các đóng góp.
• Bell Boy - Một ứng dụng khách sạn hiện đại hỗ trợ khách làm thủ tục đặt phòng
nhanh chóng và sử dụng dịch vụ phịng
• Meetera - Dùng cho bất kỳ ai muốn tổ chức hội thảo. Tìm kiếm và tham gia những
cuộc hội thảo nào đang có sẵn
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
8
Chương 2: Nội dung thực tập
Đợt thực tập với chủ đề “Lập trình mobile bằng flutter" nhằm mục đích giúp đào tạo sinh
viên tồn diện về lập trình mobile đa nền tả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 cộng đồng và tham gia các dự án thực tế của
công ty… Thông qua đợt thực tập này, các sinh viên thực tập được đảm bảo cả về kỹ
năng cứng lẫn mềm và làm quen được với các kiến thức mới cũng như những cách thức
làm việc và những khó khăn thử thách trong mơi trường làm việc cơng ty có quy mơ lớn.
1. Đào tạo hội nhập người mới của công ty
Thời gian: 1 ngày
Nội dung:
• Giới thiệu về cơng ty Lecle.
• Giới thiệu về Team mobile.
• Giới thiệu các anh hướng dẫn
• Sinh hoạt về quy chế, điều lệ, phúc lệ cơng ty.
Kết quả: Tìm hiểu rõ hơn về hệ thống vận hành của công ty Lecle. Tiếp thu và vận
dụng các quy chế điều lệ, cách đảm bảo an toàn thơng tin trong suốt q trình làm
việc.
2. Nghiên cứu kỹ thuật
2.1.
Tìm hiểu và học tập về ngơn ngữ Dart, cơng nghệ Flutter
Thời gian: 3 tháng
Nội dung:
• Làm quen các cú pháp của ngôn ngữ dart, biến và các câu lệnh if else, for,
while
• Tìm hiểu Flutter là gì? Tại sao phải sử dụng Flutter? Flutter hoạt động như
thế nào?
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
9
• Tìm hiểu Widget, State, Bloc trong Flutter là gì? Tìm hiểu về vịng đời của
một Widget.
•
Tìm hiểu cách sử dụng các widget cơ bản trong Flutter như button,
textfield, …
• Tìm hiểu về cách hoạt động của Navigation
Thực hiện: Làm 1 dự án nhỏ to-do list.
Kết quả: Hiểu biết rõ căn bản về Flutter cũng như cách phát triển một app
mobile trên Flutter
2.2.
Nghiên cứu cách xây dựng mã nguồn và sử dụng các công cụ dựa trên
logic nghiệp vụ của cơng ty
Thời gian: 1 tuần
Nội dung:
• Thiết kế giao diện ứng dụng dựa theo mẫu code của cơng ty
• Tìm hiểu cách sử dụng dependency injection và repository class
• Tìm hiểu cách sử dụng Postman, fetch API trong Flutter
Thực hiện: Thiết kế các module tái sử dụng cho các project sau
này của cơng ty
Kết quả: Hồn thành kiến thức cơ bản trong nghiệp vụ cơng ty
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
10
3. Thực hiện project
Sau những tháng nghiên cứu thực tập sinh sẽ dành 3 tháng để áp dụng những kiến thức đã
học để thực hiện một project được khách hàng giao cho công ty, cùng với sự giúp đỡ của
những anh hướng dẫn để nắm bắt được vòng đời phát triển một dự thực tế.
Lịch làm việc
Thời
gian
(Tuần)
1
Cơng việc
Người hướng
dẫn
Mức
độ
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ách Nguyễn Mạnh
tổ chức của công ty.
Hùng,
- Làm quen với các công cụ Nguyễn Thảo
làm việc trong công ty.
Quỳnh Uyên
- Học cách trao đổi, làm
việc qua erp, email, slack.
1
- Tìm hiểu pattern nâng cao Tạ Phi Phụng
như bloc, dependency
injection,
2
- Thiết kế các Widget, màn Tạ Phi Phụng,
hình chi tiết theo wireframe Nguyễn Phi
khách hàng
Ân
3
- Nâng cấp, màn hình chi
tiết theo designer
Nguyễn Thị
Nguyệt Như
4
- Tiến hành ráp API cho
màn hình
Tạ Phi Phụng,
Nguyễn Phi
Ân
- Review logic, UI/UX
màn hình
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
11
1
- Release sản phẩm demo
cho khách hàn
Tạ Phi Phụng
- Đưa sản phẩm lên các cửa
hàng như AppStore và
Playstore
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
12
Chương 3: Chi tiết về project
1. Giới thiệu
Project xây dựng một ứng dụng E-commerce cho người Hàn, vì là dự án thực tế
nên các thông tin về dự án sẽ bị hạn chế.
Mục tiêu của ứng dụng: Cung cấp một nền tảng cho phép thực hiện giao dịch giữa
người mua và người bán với các loại hàng hóa như quần áo, túi xách, …
2. Thực hiện
Các thành viên của team:
- Tạ Phi Phụng (Mobile Developer)
- Nguyễn Xuân Trường (Backend Developer)
- Phạm Thăng Long (Mobile Developer)
- Nguyễn Phi Ân (Mobile Developer)
- Vi Hữu Đức (Mobile Developer)
- Trần Anh Tú (Mobile Developer)
- Lê Nhị Khang (Mobile Developer)
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
13
3. Một số màn hình
Màn hình Like
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
14
Màn hình Store
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
15
Màn hình Post
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
16
Màn hình Purchased
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
17
Chương 4: Tổng kết
1. Kết quả đạt được:
1.1.
Kiến thức
• Sau quá trình làm cùng chung dự án cùng các cố vấn, kiến thức về lập trình
mobile (Flutter) được nâng cao.
• Nâng cao các kiến thức về mẫu thiết kế, tổ chức mã nguồn và logic các loại
nghiệp vụ.
1.2.
Kỹ năng
• Nâng cao kỹ năng giao tiếp giữa các thành viên, kỹ năng làm việc có kế hoạch.
• Kỹ năng tổ chức mã nguồn theo mẫu thiết kế, quy ước chuẩn.
• Kỹ năng viết mã lập trình rõ ràng, dễ hiểu và tái sử dụng.
• Kỹ năng tìm và phát hiện lỗi, đặt điểm dừng để sửa lỗi.
• Kỹ năng sử dụng các cơng cụ hỗ trợ lập trình.
1.3.
Kinh nghiệm
• Kinh nghiệm của bản thân sau khi thực tập được nâng cao với những kinh
nghiệm làm việc theo từng dự án sao cho tối ưu nhất khi bảo trì phần mềm,
kinh nghiệm liên quan đến phong cách lập trình dễ đọc dễ hiểu.
• Học tập được nhiều hơn về cách phân bổ thời gian sao cho khơng làm chậm
tiến trình của dự án.
• Với kinh nghiệm của các anh chị khi được làm việc chung đã truyền đạt kinh
nghiệm làm việc nhóm sao cho hiệu quả nhất tránh việc không mong muốn xảy
ra trong quá trình phát triển phần mềm. Khả năng giao tiếp với các thành viên
sao cho khách hàng dễ nắm bắt, dễ hiểu...
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long
18
2. Thuận lợi và khó khăn trong q trình thực tập
2.1.
Thuận lợi
• Trong q trình thực tập em nhận được sự giúp đỡ, chỉ dạy nhiệt tình của các anh
chị trong công ty cả về kiến thức chuyên môn lẫn phong cách làm việc.
• Trước khi vào làm việc chính thức em đã được tham gia khóa học về flutter do
Devera tổ chức và được công ty Lecle hỗ trợ và có các anh trực tiếp giảng dạy.
• Ngồi ra, được cơng ty hỗ trợ chi phí và trợ cấp, hỗ trợ các điều kiện tốt trong thời
điểm làm việc từ xa.
2.2.
Khó khăn
• Trong q trình thực tập vì cịn là người mới nên vẫn chưa nắm rõ về quy trình,
kiến thức cịn chứa nhiều nên việc lập trình cịn chưa tối ưu, cịn xảy ra nhiều lỗi.
• Vì thời gian thực tập có giới hạn vì vậy khơng thể tham gia hết dự án của công ty,
chưa thể nắm rõ hết tồn bộ quy trình của một dự án thực tế.
• Kỹ năng giao tiếp và diễn đạt cịn chưa tốt, khơng được tiếp xúc trực tiếp nên cịn
nhiều khó khăn trong việc học tập thêm các kiến thức từ các anh.
Lập trình ứng dụng di động bằng Flutter
Phạm Thăng Long