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 HYBRID APP SỬ DỤNG
FLUTTER
Cơng ty thực tập
: Công ty TNHH Giải pháp Wata
Người phụ trách
: Ngơ Vũ Quyền
Thực tập sinh
: Nguyễn Quốc Trung
TP. Hồ Chí Minh, tháng 12 năm 2021
LỜI MỞ ĐẦU
Ngày nay, lượng người dùng các thiết bị di động ngày càng lớn. Theo báo cáo của
GSMA (Hiệp hội di động toàn cầu), khoảng 5 tỷ người (2/3 dân số thế giới) đang sử dụng
Smartphone. Trong đó, Trung Quốc đứng đầu thế giới (với 851 triệu người dùng).
Với các doanh nghiệp, đây là một thị trường rất lớn để bán hàng. Kinh doanh trên App
Mobile đang là xu hướng ở nhiều quốc gia. Mạng 5G sớm đưa vào hoạt động trong thời gian tới
sẽ càng thúc đẩy mạnh mẽ các nền tảng trên Smartphone phát triển. Đặc biệt là hoạt động ở
mảng thương mại điện tử.
Trung Quốc đang là quốc gia đi nhanh nhất trong việc khai thác thị trường thương mại
trên nền tảng Smartphone. Họ đã cho ra mắt nhiều ứng dụng hỗ trợ bán hàng trực tuyến như:
Livestream, thương mại điện tử, quảng cáo trực tuyến,… Ở những vùng q xa xơi của Trung
Quốc, nhìn cảnh quan cứ tưởng đây là một nơi yên bình thiếu vắng cơng nghệ. Nhưng đó chỉ là
vẻ bề ngồi, mọi người dân ở đây, kể cả người lớn tuổi đều đang theo học lớp học sử dụng
Smartphone để bán hàng nơng sản của mình.
Việt Nam có khoảng 43,7 triệu người sử dụng Smartphone (chiếm tỉ lệ 44,9%), đứng thứ
15 tại châu Á. Việt Nam đã bắt đầu khai thác thị trường ứng dụng trên mobile giàu tiềm năng
này. Bằng chứng cho luận điểm này là chúng ta đẩy nhanh tốc độ để đưa mạng 5G vào hoạt
động và nhiều ứng dụng di động khác. Thương mại điện tử đã không cịn chỉ là sân chơi của
những doanh nghiệp nước ngồi. Đặc biệt là sự vươn lên rất nhanh của Tiki. Công nghệ chatbot
đã trở thành ứng dụng được các doanh nghiệp Việt áp dụng để tương tác với khách hàng 24/24
phổ biến. Ví điện tử được áp dụng rộng rãi, giúp khách hàng thành toán dễ dàng và tiện lợi hơn
(như: Momo, Zalo pay, VTC pay,…) Áp dụng công nghệ AI để tự động hóa trong dây chuyền
sản xuất và tương tác với khách hàng (như: Vingroup, FPT,…). Và nhiều ứng dụng di động
khác đã đang và sẽ được khai thác: blockchain, điện tốn đám mây, on-demand App,…
Ngồi các Native App được viết cho mỗi nền tảng hệ điều hành thì trong những năm gần
đây Hybrid App nổi lên với những tính năng ưu việt như là một tương lai mới cho ngành lập
trình ứng dụng di động, đại diện lớn nhất là React Native và Flutter. Flutter tuy ra đời sau nhưng
lại mang những đặc điểm về hiệu suất và chất lượng sản phẩm tốt hơn hẳn React Native. Minh
chứng là càng ngày càng có nhiều doanh nghiệp tuyển dụng các vị trí nhân sự liên quan đến
Flutter. Đây là một dấu hiệu đáng mừng.
Trải qua thời gian học tập tại trường, để có thêm kinh nghiệm thực tế, cũng như muốn
được tham gia làm việc trong một môi trường chuyên nghiệp. Vì vậy, em quyết định chọn Wata
Solutions - một môi trường lý tưởng, hiện đại - là nơi sẽ giúp em thực hiện được dự định này.
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty TNHH Giải pháp Wata đã 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 nhóm trainer, em đã
tiếp thu được những kiến thức quan trọng để có thể làm được sản phẩm. Chân thành cảm ơn các
anh chị trong nhóm trainer đã bỏ ra nhiều thời gian,cơng sức để hướng dẫn em hồn thành đợt
thực tập này.
Đặc biệt cảm ơn anh Đỗ Vương Tiến, đã 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;, anh Ngô Vũ
Quyền, đã training cho em những kiến thức quan trọng về Flutter để có thể làm ra một sản phẩm
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 Quốc Trung
TPHCM, ngày 23 tháng 12 năm 2021
NHẬN XÉT CỦA KHOA
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
............................................................................................................................................................
MỤC LỤC
MỤC LỤC............................................................................................................................. 1
Chương 1: Giới thiệu công ty thực tập.............................................................................2
1. Giới thiệu về công ty Wata Solutions......................................................2
2. Sản phẩm của cơng ty.............................................................................. 2
Chương 2: Nội dung thực tập............................................................................................3
1. Tìm hiểu công ty và các kỹ năng cơ bản trong công ty.....................................3
2. Nghiên cứu kỹ thuật........................................................................................... 3
3. Thực hiện project................................................................................................5
4. Lịch làm việc...................................................................................................... 5
Chương 3: Chi tiết về mini project................................................................................... 6
1. Giới thiệu về mini project............................................................................................ 6
2. Thực hiện......................................................................................................................7
3. Kế hoạch.......................................................................................................................7
TÀI LIỆU THAM KHẢO.................................................................................................. 8
TỔNG KẾT.......................................................................................................................... 9
1
Chương 1: Giới thiêu công ty thực tập
2
1. Giới thiệu công ty TNHH Giải pháp Wata
Wata Solutions được thành lập năm 2015, là công ty hàng đầu về phát triển phần
mềm. Sau sáu năm thành lập, đến nay Wata Solutions đã khẳng định được vị thế là
một trong những công ty dẫn đầu trong lĩnh vực này.
Wata Solutions có văn phịng đặt tại tồ nhà Hải Âu, 39B Trường Sơn, Phường 2,
Tân Bình, Thành phố Hồ Chí Minh, gia cơng sản phẩm cho nhiều quốc gia.
2. Sản phẩm của công ty
Wata Solutions hoạt động trong lĩnh vực phát triển phần mềm như Website , Mobile
Application, UX/UI Design, Software Testing. Trải qua nhiều năm thành lập, Wata
Solutions đã tạo ra những sản phẩm có chất lượng tốt, được khách hàng đánh giá cao,
Chương 2: Nội dung thực tập
3
Đợt thực tập với chủ đề “Hybrid App sử dụng Flutter” 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 Flutter, đồ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 game 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
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 .
Ngồ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 Wata Solutions, 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.
2.2.
Các kiến thức cơ bản và kiến thức cần có về quy trình phát triển phần mềm Scrum
Thời gian : 2 tuần
Nội dung : Tìm hiểu về các kiến thức cơ bản sẽ được sử dụng trong quá trình làm việc
và kiến thức về quy trình phát triển phần mềm Scrum.
Trong thời gian này, mentor đã hướng dẫn thực tập sinh tìm hiểu về các kiến thức
sẽ giúp ích cho trong công việc sau này. Một số kiến thức trong đó như chức năng
nhiệm vụ của từng thành viên trong một đội nhóm, quy trình phát triển phần mềm
Scrum,…
Thực hiện : Tìm hiểu và viết báo cáo.
Kết quả : Hiểu và nắm được các kiến thức đã tìm hiểu và được hướng dẫn.
Các công cụ cần thiết
Thời gian : 1 tuần
Nội dung :
Được training về các công cụ cần thiết để áp dụng vào các công việc sau này. Một
số công cụ như Github - Công cụ quản lý code , JIRA - Công cụ quản lý dự án,..
Thực hiện :
- Thực hành trên các công cụ đã được training.
4
Kết quả :
- Sử dụng tốt các công cụ đã được training.
2.3. Tìm hiểu về Dart và Flutter
Nội dung: Các kiến thức cơ bản về Dart và Flutter để tạo ra một ứng dụng đơn giản.
- Kiến thức cơ bản về Dart.
- Lập trình hướng đối tượng
Các kiến thức cơ bản về lập trình hướng đối tượng như khái niêm, các đặc
tính như tính kế thừa, tính đóng gói, tính ảo hóa, tính đa hình.
- Lập trình bất đồng bộ:
Lập trình bất đồng bộ là mơt phần rất quan trọng trong lập trình Dart, vì
cần phải sử dụng nó để cho phép chương trình thực hiện cơng việc trong khi chờ
việc khác hoàn thành, tránh gây ra lỗi phát sinh trong quá trình sử dụng.
- Quản lý bộ nhớ
Thực tập sinh sẽ được hướng dẫn về cách cấp phát, quản lý bộ nhớ sao cho
tối ưu, tránh rò rỉ bộ nhớ, một trong những phần rất quan trọng trong lập trình ứng
dụng trên điện thoại, vì bộ nhớ trên điện thoại khơng thể lớn như trên máy tính
được.
- Kiến thức cơ bản về Flutter:
Thực tập sinh được training và tìm hiểu các kiến thức cơ bản về Flutter như :
- Stateless Widget và Stateful Widget
- Một số các package cơ bản
- State Management
- Lập trình bất đồng bộ trong Flutter
- HTTP request
Thực hiện :
-
Tham gia đầy đủ các buổi trainning.
Làm các bài tập thực hành, …
Tìm kiếm tài liệu trên mạng để tìm hiểu thêm.
Kết quả :
-
Hiểu được những khái niệm cơ bản trong lập trình Dart và Flutter.
Có thể áp dụng được vào các dự án thực tế.
5
3. Thực hiện project
Sau một 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ề Flutter. Trong tháng thứ hai, trainer đã hướng dẫn thực tập sinh áp dụng những
kiến thức đã học để thực hiện một Mini Project bằng Flutter.
Chi tiết đồ án sẽ được nói ở phần sau.
4. Lịch làm việc
Tuần
Cơng việc
Người hướng dẫn
Mức độ hồn thành
- Tìm hiểu về cơng ty, Anh Đỗ Vương Tiến
100 %
cách tổ chức của
công ty.
- Tìm hiểu kiến thức
1-2
cơ bản và kiến thức
cần có về quy trình
phát triển phần mềm
Scrum
- Tìm hiểu về các Anh Ngơ Vũ Quyền
100 %
3
cơng cụ cần thiết
- Tìm hiểu về Dart
Anh Ngơ Vũ Quyền
100 %
4-5
- Tìm hiểu về Flutter
6-7
8
Hiện thực Mini Project:
- Thiết kế UI
- Lập trình
- Viết Unit test
Anh Ngô Vũ Quyền
100 %
-
Anh Ngô Vũ Quyền
100 %
Viết báo cáo
Chương 3: Chi tiết về mini project
6
1. Giới thiệu về mini project
Ứng dụng Meeting Tracker ra đời để giúp người dùng theo dõi , đánh dấu, chỉnh sửa
được các công việc trong ngày và xem lại được các công việc đã diễn ra vào những
ngày trước đó
1.1.
1.2.
Một số tính năng của sản phẩm
- Thêm công việc vào ngày hiện tại
Người dùng có thể thêm cơng việc với nội dung của cơng việc đó
- Cập nhật trạng thái của cơng việc trong ngày
Người dùng có thể Cập nhật trạng thái hoặc Huỷ bỏ công việc đã đánh dấu
- Theo dõi công việc theo ngày
Người dùng có thể theo dõi các cơng việc của từng ngày dưới dạng lịch.
Một số hình ảnh của sản phẩm
Màn hình thêm cơng việc
7
Màn hình danh sách cơng việc trong ngày
Màn hình danh sách công việc theo lịch
2. Thực hiện
- Nguyễn Quốc Trung
Và sự giúp đỡ tận tình của team interns Wata Solutions.
3. Kế hoạch
Thực hiện:
- Thiết kế giao diện.
- Lập trình các chức năng bằng Visual Studio.
- Tìm hiểu về Rest API, HTTP request và Kết nối tới back-end sử dụng NodeJS
đã được thực hiện bởi team interns Wata Solutions trước đó.
- Viết Unit Test và tiến hành kiểm thử.
Kết quả : - Thiết kế và hoàn thiện được sản phẩm với các tính năng đã yêu cầu
TÀI LIỆU THAM KHẢO
a/p/gioi-thieu-ve-flutter-bWrZnNxrZxw
a/p/tim-hieu-ve-native-app-va-hybrid-app-3P0lPnPmKox
/> />a/p/tao-http-request-trong-flutter-07LKXmJeZV4
8
TỔNG KẾT
9
Như vậy, chỉ trong vòng một vài tuần ngắn ngủi, em đã kịp hoàn thành phát triển một
ứng dụng nhỏ bằng Flutter . Ứng dụng đã đã có khá đầy đủ các tính năng đã đề ra ban đầu. Do
thời gian có hạn nên tính năng ứng dụng cịn đơn giản, hình ảnh chưa được đẹp như mong đợi.
Tuy nhiên ứng dụng có thể sẽ được phát triển nhiều tính năng hơn.
Chân thành cảm ơn sự giúp đỡ của các bạn và anh chị nhóm interns Wata Solutions đã
giúp đỡ em để có thể hồn thành ứng dụng này. Cảm ơn anh Ngơ Vũ Quyền đã giúp em hồn
thành bài báo cáo này.