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
Cơng ty thực tập
: Tập đồn cơng nghê Unicloud
Người phụ trách
: Đặng Quang Trung
Thực tập sinh
: Cao Nguyễn Minh Quân
TP. Hồ Chí Minh, tháng 12 năm 2022
LỜI MỞ ĐẦU
Ngày nay, ngành công nghiệp phát triển ứng dụng di động là một bộ phận không thể
thiếu của ngành công nghiệp phần mềm. Với tốc độ phát triển vô cùng mạnh mẽ, ngành di động
đã và đang là nhân tố kích thích sự phát triển của cơng nghệ thông tin thế giới, cả về phần cứng
và phần mềm.
Cùng với xu thế phát triển của thế giới, Việt Nam cũng không phải ngoại lệ. Ngành công
nghiệp di động ở 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ề phát triển phần mềm trên thế giới.
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 ứng dụng di động trong một mơi trường chun nghiệp, em có dự định
là sẽ thực tập trong học kì này. Vì vậy, em quyết định chọn Unicloud - một tập đồn cơng nghệ
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.
2
LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Tập đoàn Cơng nghệ Unicloud đã 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 chị trong nhóm trainer đã 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 Đặng Quang Trung, trưởng nhóm Front-end, đã 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ảm ơn Trần Nhật Tân, trưởng nhóm dự án, hỗ trợ chúng em rất nhiều về
các kiến thức liên quan tới lập trình di động đặc biệt là 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.
Cao Nguyễn Minh Quân
TpHCM, 18/12/2022
3
NHẬN XÉT CỦA KHOA
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
.........................................................................................................................................................
4
Mục lục
Chương 1: Giới thiêu công ty thực tập........................................................................................................6
1.
Giới thiệu công ty Unicloud.............................................................................................................6
2.
Sản phẩm của công ty......................................................................................................................6
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
2.1.
Các công cụ làm việc................................................................................................................8
2.2.
Tìm hiểu ngơn ngữ Dart và Git.................................................................................................9
2.3.
Tìm hiểu về Framework Flutter................................................................................................9
2.4.
Thực hiện project....................................................................................................................10
2.5.
Lịch làm việc..........................................................................................................................10
Chương 3: Chi tiết về project....................................................................................................................13
1.
Giới thiệu dự án.............................................................................................................................13
2.
Thực hiện.......................................................................................................................................13
3.
Kế hoạch........................................................................................................................................13
3.1.
Giai đoạn 1..............................................................................................................................13
3.2.
Giai đoạn 2..............................................................................................................................13
Tài liệu tham khảo.....................................................................................................................................14
Tổng kết....................................................................................................................................................15
5
Chương 1: Giới thiêu công ty thực tập
1. Giới thiệu công ty Unicloud
Unicloud Group Tiền thân là Công ty CP Đầu tư Thương mại Sunshine Tech thuộc Tập đoàn
Sunshine (Sunshine Group) được thành lập ngày 12/06/2016, Công ty CP Tập đồn Cơng nghệ
Unicloud hiện có hơn 300 thành viên tại trụ sở Hà Nội và chi nhánh TP HCM, cùng 2 công ty
con là Unicloud Investment và Nanochip.
Unicloud Group nghiên cứu, phát triển, và cung cấp các sản phẩm, giải pháp công nghệ quan
trọng cho hầu hết các lĩnh vực “xương sống” của nền kinh tế. Nhằm mục tiêu tăng cường năng
lực và thúc đẩy sự phát triển của các ngành nghề, nâng cao chất lượng cuộc sống.
Unicloud có sứ mệnh là tiên phong trong chuyển đổi số của Việt Nam và thế giới, giúp nâng
tầm giá trị chất xám của người Việt phục vụ cho cộng đồng văn minh giúp nâng cao chất lượng
sống không chỉ của người Việt mà trên tồn thế giới.
2. Sản phẩm của cơng ty
SMART TELLER MACHINE - Giải Pháp Về Phần Cứng Giao Dịch 24/7
Thay thế giao dịch viên thực hiện các giao dịch ngân hàng truyền thống, giải phóng thao tác
nhân viên và cho phép giao dịch viên tập trung vào tư vấn, bán hàng các sản phẩm cao cấp. Tùy
chọn cấu hình thay đổi theo nhiệm vụ triển khai và theo yêu cầu triển khai thực tế.
GIẢI PHÁP PHẦN MỀM NGÂN HÀNG SỐ
6
Gói giải pháp giao dịch ngân hàng trực tuyến, tận dụng sức mạnh của thiết bị di động và các
giải pháp tiên tiến của các nhà sản xuất lớn. Hỗ trợ API và Microservice, cho phép tổ chức tài
chính triển khai sản phẩm mới linh hoạt, nhanh chóng đến tay người dùng, đồng thời tuân thủ
tuyệt đối quy định của Ngân hàng Nhà nước Việt Nam.
UNI SERVICES - Dịch Vụ Bảo Trì Máy ATM/STM
Đội ngũ chuyên gia của Unicloud được trang bị đầy đủ kiến thức để đánh giá, phân tích, hiểu
rõ và chẩn đốn các sự cố về vận hành máy về phần cứng cũng như phần mềm liên quan tới các
máy ATM/STM nhằm đưa ra các giải pháp thích hợp, nhanh chóng cho nhiều loại máy khác
nhau tới từ các thương hiệu khác nhau như GRG, Cashway, NCR…
7
Chương 2: Nội dung thực tập
Đợt thực tập vừa qua, em ứng tuyển vào cơng ty với vị trí là Thực tập sinh Mobile
(Flutter). Trong khoảng thời gian đó, em đã được trải nghiệm tham gia vào một dự án thực tế về
‘E-KYC DEMO’, được tiếp xúc với môi trường làm việc năng động sáng tạo. Đồng thời được
tiếp xúc với quy trình phát triển dự án cũng như bảo trì và phát triển dự án trong cơng ty.
1. Tìm hiểu công ty và các kỹ năng cơ bản trong công ty
Nội dung : Giới thiệu về công ty, cách tổ chức của công ty
Được tham quan công ty và được giới thiệu về các bộ phận trong công ty cũng
như các thơng tin liên quan tới q trình hình thành và định hướng phát triển 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 tuân thủ, sử dụng Email và Skype để giao tiếp.
Kết quả : Hiểu thêm về công ty Unicloud, q 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.
Các công cụ làm việc
Nội dung : Tìm hiểu về các cơng cụ sẽ được sử dụng trong q trình làm việc.
-
JIRA: là cơng cụ được sử dụng để phân chia công việc và quản lý tiến độ làm việc
trong dự án.
-
Gitlab: là phần mềm dùng để quản lý mã nguồn được các công ty tổ chức ưa
chuộng.
-
Android Studio: là IDE phổ biến cho các lập trình viên Mobile cũng như Flutter
-
Figma: là cơng cụ thiết kế UX/UI
-
Swagger/HTTPie: là công cụ xây dựng OpenAPI giúp thiết kế, xây dựng tài liệu,
và sử dụng RestAPI
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
8
Kết quả : Đã tìm hiểu về các cơng cụ ở trên
2.2.
Tìm hiểu ngơn ngữ Dart và Git
Nội dung : Được tìm hiểu về ngơn ngữ Dart, những kiến thức quan trọng cho việc tối
ưu trên Android. Đồng thời được tìm hiểu về Git cũng như Gitlab.
Thực hiện :
-
Tự tìm hiểu về Dart và Git.
-
Tham gia bài Quiz nhỏ giữa các thành viên trong team
Kết quả :
-
Nâng cao kỹ năng lập trình với ngơn ngữ Dart.
-
Hiểu được quy tắc lập trình trong cơng ty.
-
Ngồi ra cịn được biết thêm một số quy tắc trong việc viết code sao cho đúng
chuẩn, dễ đọc, dễ hiểu.
2.3.
Tìm hiểu về Framework Flutter
Nội dung: Tìm hiểu về các hoạt động của Flutter cũng như cách thức ứng dụng bằng
Flutter hoạt động.
Thực hiện :
-
Đọc tài liệu, tìm hiểu và làm demo về Flutter Bloc Clean Architechture.
Kết quả :
-
Hiểu được các vận hành của Flutter cũng như cách xây dựng một ứng dụng Flutter
cũng như cấu trúc thư mục trên Flutter.
2.4.
Thực hiện project
Sau khi ôn lại kiến thức đã học cũng như tìm hiểu các cơng cụ hỗ trợ cho công việc và
bắt tay vào dự án demo e-KYC bằng Flutter (Mobile và Web). Dự án bao gồm định danh
9
căn cước công dân, định danh hộ chiếu, xác thực khuôn mặt, so sánh trùng khớp khuôn
mặt. Dự án này em chia thành 2 giai đoạn do có những vấn đề đặc biệt:
-
Giai đoạn 1: Xây dựng demo E-KYC trên bản Mobile và Web, có 2 người tham
gia (2 thực tập sinh)
-
Giai đoạn 2: Bảo trì và thay đổi hướng phát triển dự án do những vấn đề phát sinh
ở giai đoạn 1, có 3 người tham gia (2 thực tập sinh và 1 người hướng dẫn)
2.5.
Lịch làm việc
Tuần
Cơng việc
Tìm hiểu về Flutter, Git,
1
đặc
biệt
là
package
Camera của Flutter
Người hướng dẫn
Anh Đặng Quang
Trung
Mức
độ
hoàn
thành
Nhận xét của người
hướng dẫn
100%
Hoàn thành tốt
100%
Hoàn thành tốt
100%
Hoàn thành tốt
100%
Hoàn thành tốt
Giai đoạn 1:
Từ tuần 2
– tuần 8
Phân tích dự án, xây
dựng những chức năng
cơ bản để có bản demo
Anh Đặng Quang
Trung
trên Mobile và Web
Giai đoạn 2:
Từ tuần 8 Bảo trì và sửa đổi những
– tuần 11
vấn đề phát sinh trong
giai đoạn 1
12
Anh Đặng Quang
Trung, Anh Trần
Nhật Tân
Demo sản phẩm version
Anh Đặng Quang
hiện tại và chuẩn bị cho
Trung, Anh Trần
version tiếp theo
Nhật Tân
10
Chương 3: Chi tiết về project
1. Giới thiệu dự án
Tên dự án: EKYC Demo
Giới thiệu: EKYC Demo là một ứng dụng nhằm mục đích demo các chức năng cơ bản
liên quan tới EKYC bao gồm định danh các loại thẻ bao gồm căn cước công dân, hộ
chiếu và xác thực khuôn mặt bao gồm xác thực khuôn mặt thông qua cử chị cả khuôn
mặt và xác thực khuôn mặt thông qua cử chỉ mũi, xác thực khuôn mặt thông qua hình
ảnh và so sánh trùng khớp hai khn mặt.
2. Thực hiện
-
Thực tập sinh: Cao Nguyễn Minh Quân
-
Thực tập sinh: Nguyễn Doãn Thịnh
-
Trưởng dự án: Đặng Quang Trung
-
Người hướng dẫn: Trần Nhật Tân
3. Cơng việc đã làm
Làm việc theo nhóm cùng với các thành viên trong team
Xây dựng ứng dụng , xây dựng các chức năng trong hệ thống bao gồm
11
1. OCR (Optical Character Recognition)
-
OCR là quá trình nhận diện các ký tự trên giấy tờ, chức năng chính OCR là nhận
diện các loại giấy tờ như Chứng minh nhân dân/ Căn cước công dân, Hộ Chiếu
2. Passive Liveness
-
Passive Liveness là q trình xác thực nhận diện khn mặt mà khơng cần hành
động của con người, có thể nhận diện được các ảnh có khn mặt, hoặc khn
mặt bị mờ.
3. Face Matching
-
Face Matching là q trình so sánh khn mặt thơng qua hình ảnh, mặt thật nhằm
xác định khn mặt có giống nhau khơng
4. Profile Liveness
-
Profile Liveness là q trình nhận diện khuôn mặt qua cử chỉ của mũi.
Các package chính đã nghiên cứu và sử dụng: Package Camera, Package Image Picker, Package
Google ML Kit Face Detection (Dễ sử dụng, do Google phát triển và có tài liệu nhiều, nhược
điểm là chỉnh có bản Mobile Only), Package FaceAPI (package này là packgage của NPM viết
bằng JS – lấy ý tưởng từ TensorFlow Detect Face).
Đã làm: Đã nâng cao được hiệu suất của ứng dụng bằng một số phương pháp, thay đổi được
cách quản lý State của ứng dụng từ Provider sang Bloc cũng như thiết kế hệ thống theo Clean
Architecture để dễ bảo trì và phát triển.
12
Tổng kết
Như vậy, chỉ trong vịng ba tháng, nhóm đã hoàn thành một phần mềm chạy
được trên cả Web và di động. Phần mềm đã đáp ứng được những yêu cầu cơ bản của
khách hàng và cũng đã được tối ưu hóa để có thể sẵn sàng đưa lên cửa hàng và bản Web
cũng dần hoàn thiện được những lỗi để tối ưu tốt hơn. Phần mềm cũng đã được chuẩn bị
cho các phiên bản tốt hơn cho các lần tiếp theo.
Chân thành cảm ơn sự giúp đỡ của các anh chị trong nhóm Front-end, sự chỉ bảo
của anh Trần Nhật Tân và anh Đăng Quang Trung. 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à q trình hồn thiện báo cáo này.
13
Tài liệu tham khảo
Về Flutter
/>
Về Camera
/>
Về Image Picker
/>
Về Google Machine Learning Kit (nhận diện khuôn mặt) phiên bản Mobile
/>
Về Face Detection (nhận diện khuôn mặt) phiên bản Web
/>
14