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 mobile với Flutter
Cơng ty thực tập:
Lecle Việt Nam
Người phụ trách:
Nguyễn Mạnh Hùng
Thực tập sinh:
Võ Đoàn Minh Hiếu
TP. Hồ Chí Minh, tháng 12 năm 2021
Chương 1: Giới thiệu công ty thực tập
Giới thiệu công ty Lecle
Sản phẩm công ty
5
5
5
Chương 2: Nội dung thực tập
1. Đào tạo hội nhập cho người mới của công ty
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
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
3. Thực hiện project:
6
6
7
7
7
7
Chương 3: Chi tiết về project
Giới thiệu về mobile
Một số giao diện của sản phẩm
Kế hoạch & kết quả
Kế hoạch
Thực hiện
Kết quả
9
9
10
12
12
12
12
Chương 4: Tổng kết
Kết quả đạt được:
Thuận lợi và khó khăn trong quá trình thực tập
13
13
13
2
LỜI MỞ ĐẦU
Thời đại công nghệ ngày càng phát triển, những thứ liên quan đến công nghệ
thông tin đang được để tâm hơn cả. Đặc biệt là mạng Internet và di động chính là
hai thứ được chú trọng phát triển. Những phần mềm trên điện thoại và web chính
là cơng cụ chính được phát triển trong mảng này. Một trong số những nền tảng
được dùng để phát triển phần mềm điện thoại chính là Flutter.
Flutter một bộ SDK đa nền tảng, các ứng dụng Flutter có thể hoạt động trên cả
iOS và Android. Nó như một thủ thuật khơn khéo để tương thích được với
framework UI trên cả hai hệ điều hành này. Các ứng dụng này không biên dịch
trực tiếp với các ứng dụng native của Android và iOS.
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 làm các ứng dụng di động trong một môi trường
chuyên nghiệp, em có dự định là sẽ thực tập trong hè. Vì vậy, em quyết định
chọn Cơng ty phát triển phần mềm Lecle một môi trường lý tưởng, hiện đại,
chuyên nghiệp - là nơi sẽ giúp em thực hiện được dự định này.
3
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty phát triển phần mềm Lecle đã 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,
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 ứng dụng di động. Chân thành cảm ơn các anh trong nhóm trainer
đã bỏ ra nhiều thời gian, cơng sức để hướng dẫn chúng em hồn thành đợt thực
tập này.
Đặc biệt cảm ơn anh Huỳnh Bảo Quốc và anh Lâm Xuân Triết đã training
Flutter, 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, đã chỉ dẫn chúng em về
cách làm báo cáo, lên kế hoạch, những kỹ năng không thể thiếu.
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.
Em xin chân thành cảm ơn !
4
Chương 1: Giới thiệu công ty thực tập
1. Giới thiệu công ty Lecle
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 toà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: Ideas turned into business
2. Sản phẩm 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
5
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 cho 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 tồ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?
○ Tìm hiểu Widget, State, Bloc trong Flutter là gì? Tìm hiểu về vịng đời
6
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 cá nhân về 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ế giao diện và ráp API
● Kết quả: Hoàn thành kiến thức cơ bản trong nghiệp vụ công ty
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ế.
Thời gian (Tuần)
Cơng việc
Người hướng dẫn
1
● Tìm hiểu về cơng ty, cách
● Nguyễn Mạnh Hùng
● Nguyễn Thảo Quỳnh
Uyên
tổ chức của công ty.
7
● Làm quen với các công cụ
làm việc trong công ty.
● Học cách trao đổi, làm việc
qua email.
1
● Tìm hiểu pattern nâng cao
như
bloc,
● Lâm Xuân Triết
dependency
injection
2
● Thiết kế các Widget, màn
hình chi tiết theo wireframe
khách hàng
● Huỳnh Bảo Quốc
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
● Huỳnh Bảo Quốc
● Lâm Xuân Triết
● Võ Duy Cận
hình
● Review logic, UI/UX màn
hình
1
● Release sản phẩm demo
● Nguyễn Xuân Trường
cho khách hàn
● Đưa sản phẩm lên các cửa
hàng như AppStore và
Playstore
8
Chương 3: Chi tiết về project
1. Giới thiệu về mobile
Ứng dụng mobile video editing, nhắm giúp người dễ dàng hơn trong việc
chỉnh video mà không cần quá nhiều kiến thức liên quan, đồng thời tạo ra
một môi trường chia sẻ video như TikTok. Đây là project của kỳ thực tập lần
này, project nhắm về việc dự án đã giải quyết vấn đề liên quan tới các nhu
cầu thực tế đồng thời củng cố kiến thức đã được training trong tháng vừa rồi,
cách xây dựng một mobile là như thế nào, kỹ thuật coding concept như thế
nào là đúng. Các kỹ thuật trong lập trình flutter. Mục đích chỉ nhắm tới cách
mà mình tạo dựng đồ án chứ khơng phải là nội dung của dự án.
9
2. Một số giao diện của sản phẩm
10
11
3. Kế hoạch & kết quả
3.1.Kế hoạch
-
Hoàn thiện tất cả màn hình
-
Kết nối với bên back-end thơng qua REST API
-
Giao responsive ở một vài trang quan trọng
3.2. Thực hiện
-
Nắm rõ kiến thức về Flutter
-
Hồn thiện tất cả màn hình của ứng dụng.
-
Sử dụng Bloc, Rxdart để quản lý state.
-
Thực hiện kết nối với backend thông qua việc get và put API
-
Hoàn thiện tất cả các chức năng ở những trang quan trọng.
-
Fix các bug nảy sinh trong quá trình phát triển.
-
Demo cho sếp định kỳ hàng tuần
3.3. Kết quả
-
Tất cả các chức năng và màn hình đã hồn thành theo yêu cầu
-
Củng cố kiến thức đã biết về flutter, học được cách sử dụng Rxdart,
pattern và ứng dụng nó qua q trình phát triển các tính năng.
-
Học cách giao tiếp với thành viên trong nhóm để làm rõ yêu cầu, lên kế
hoạch thực hiện các tính năng.
12
Chương 4: Tổng kết
1.
Kết quả đạt được:
● 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ụ.
● Kỹ năng
○ Nâng cao kỹ năng giao tiếp và trao đổi giữa các thành viên
○ Kỹ năng tổ chức mã nguồn có cấu trúc phục vụ các business logic.
○ 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 viết mã hỗ trợ cho các thành viên trong nhóm
○ Kỹ năng tìm và phát hiện lỗi.
○ Kỹ năng sử dụng các công cụ hỗ trợ lập trình.
● 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 q 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...
2.
Thuận lợi và khó khăn trong q trình thực tập
● Thuận lợi
○ Trong quá 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.
13
○ 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.
● 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.
14