TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TINKHOA 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
Trang 1TRƯỜ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
Trang 2LỜ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
Trang 3LỜ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>
Trang 4NHẬN XÉT CỦA KHOA
Trang 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
Trang 6Chươ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 toà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 của công ty: Ideas turned into business
Trang 72 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 hoà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
Trang 8Chươ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 toà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 quá 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?
Trang 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
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ả: Hoàn thành kiến thức cơ bản trong nghiệp vụ công ty
Trang 103 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)
Công việc Người hướng
dẫn
Mức
độ hoàn thành
Nhận xét của người hướng dẫn
tổ chức của công ty
- 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 erp, email, slack
Nguyễn Mạnh Hùng,
Nguyễn Thảo Quỳnh Uyên
như bloc, dependency injection,
Tạ Phi Phụng
hình chi tiết theo wireframe khách hàng
Tạ Phi Phụng, Nguyễn Phi
Ân
tiết theo designer
Nguyễn Thị Nguyệt Như
màn hình
- Review logic, UI/UX màn hình
Tạ Phi Phụng, Nguyễn Phi
Ân
Trang 111 - Release sản phẩm demo
cho khách hàn
- Đưa sản phẩm lên các cửa hàng như AppStore và Playstore
Tạ Phi Phụng
Trang 12Chươ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)
Trang 133 Một số màn hình
Màn hình Like
Trang 14Màn hình Store
Trang 15Màn hình Post
Trang 16Màn hình Purchased
Trang 17Chươ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
Trang 182 Thuận lợi và khó khăn trong quá trình thực tập
2.1 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
• Ngoà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 quá 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 toà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