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 DRIVING APP BẰNG FLUTTER Công ty thực tập Công ty CP Tin Học Smartway Người phụ trách Nguyễn Đình Thi Thự[.]
Trang 1KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO THỰC TẬP
LẬP TRÌNH ỨNG DỤNG DRIVING APP
BẰNG FLUTTER
Công ty thực tập: Công ty CP Tin Học Smartway Người phụ trách: Nguyễn Đình Thi
Thực tập sinh : Nguyễn Trần Hoàng Hiếu
TP Hồ Chí Minh, tháng 12 năm 2022
Trang 2LỜI MỞ ĐẦU
Hiện nay Công nghệ thông tin vô cùng phát triển thì mọi người đều sử dụng máy vi tính hoặc điện thoại di động để làm việc và giải trí Do đó việc xây dựng các ứng dụng cho điện thoại di động đang là một ngành công nghiệp mới đầy tiềm năng và hứa hẹn nhiều sự phát triển vượt bậc của ngành khoa học kỹ thuật
Phần mềm, ứng dụng cho điện thoại di động hiện nay rất đa dạng và phong phú trên các
hệ điều hành di động Các hệ điều hành J2ME, Android, IOS, Hybrid, Web bases Mobile
Application đã rất phát triển trên thị trường truyền thông di động Trong vài năm trở lại đây, hệ điều hành Adroid ra đời với sự kế thừa những ưu việt của các hệ điều hành ra đời trước và sự kết hợp của nhiều công nghệ tiên tiến nhất hiện nay Adroid đã nhanh chóng là đối thủ cạnh tranh mạnh mẽ với các hệ điều hành trước đó và đang là hệ điều hành di động của tương lai và được nhiều người ưa chuộng nhất
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 việc tại môi trường chuyên nghiệp, em đã dự định là thực tập trong
hè Và rồi em chọn Công ty Cổ phần SmartWay, một công ty với môi trường chuyên nghiệp, sáng tạo, sẽ giúp em tiến xa hơn trong lĩnh vực lập trình mobile
Trang 3LỜI CẢM ƠN
Trân trọng gửi lời cảm ơn Công ty Cổ phần Tin học SmartWay đã 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 anh nhóm trainer, thực tập sinh chúng em đã tiếp thu được những kiến thức quan trọng để có thể làm được một app Mobile bằng flutter Chân thành cảm ơn các anh chị trong nhóm đã 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 Nguyễn Đình Thi, đã training Fluter, Firebase, kỹ năng git và 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 chị Nguyễn Xuân Mai, đã tận tình giúp đỡ em làm
quen với môi trường làm việc, hỗ trợ chúng em rất nhiều về các vấn đề của công ty; cảm ơn chú
Phạm Thái, đã chỉ dẫn chúng con về cách hướng đi phát triển app, 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
Nguyễn Trần Hoàng Hiếu
Trang 4NHẬN XÉT CỦA KHOA
………
………
………
………
………
………
………
………
………
………
………
………
………
MỤC LỤC
Trang 5Chương 1: Giới thiêu công ty thực tập 5
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 6
Trang 6Chương 1: Giới thiêu công ty thực tập
1 Giới thiệu công ty Cổ phần Tin học SmartWay
SmartWay được thành lập vào năm 2020, với mong muốn mang đến các giải pháp tối ưu nhất cho các Doanh nghiệp trong nhiều lĩnh vực như: cung cấp dịch vụ Logistics, sản xuất, phân phối và vận chuyển hàng hoá Công ty CP Tin Học Smartway (Smartway Informatics JSC) kết hợp với Công ty Công Nghệ Smartway Germany để cho ra đời các sản phẩm công nghệ hiện đại và tối ưu nhất cho Doanh Nghiệp Việt Nam, giải quyết các vấn đề nan giải còn tồn đọng trong lĩnh vực tiềm năng Logistics
Mục tiêu:
- Cung cấp các giải pháp hiện đại và tối ưu trong lĩnh vực “Logistics”
- Lập ra các thuật toán tối ưu để hệ thống có thể tự động lập ra lộ trình vận chuyển tối ưu nhất giảm chi phí và thời gian trong quá trình vận chuyển
- Giúp doanh nghiệp thay đổi ngành công nghiệp truyền thống thủ công sang
áp dụng công nghệ hiện đại, số hoá hệ thống và tự động hóa toàn quy trình
2 Sản phẩm của công ty
- Hệ thống web Sàn xe: https://sanxe24.com/
- Ứng dụng app android: Sanxe24
Trang 7Chươ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 sinh viên thực tập được đào tạo toàn diện về lập trình Mobile trên Android bằng 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 app mobile
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
Ngoà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 SmartWay, 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 Các công cụ làm việc
Thời gian : 1 ngày
Nội dung : Tìm hiểu về các công cụ sẽ được sử dụng trong quá trình làm việc.
Trong thời gian này, mentor đã hướng dẫn thực tập sinh tìm hiểu về các công cụ
sẽ giúp ích cho trong công việc sau này Một số phần mềm trong số đó như Github
-sử dụng trong quản lý code
Thực hiện : Thực hành sử dụng các phần mềm đã nêu trên.
Kết quả : Lập trình sử dụng các công cụ miễn phí, giúp dễ dàng kết hợp các công cụ
với nhau, so với việc dùng các IDE
2.2 Tìm hiểu framework Flutter/Dart
Thời gian : 6 ngày (1 tuần)
Nội dung : Được training về các kỹ thuật Flutter/Dart, những kiến thức quan trọng
cho việc tối ưu app trên Android
Trang 8- Flutter:
Flutter là mobile UI framework của Google để tạo ra các giao diện chất lượng cao trên iOS và Android trong khoảng thời gian ngắn Flutter hoạt động với những code sẵn có được sử dụng bởi các lập trình viên, các tổ chức
Flutter hoàn toàn miễn phí và cũng là mã nguồn mở
- 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
- State:
Một trong những nội dung cơ bản mà thực tập phải học khi muốn làm một app mobile
State là một số dữ liệu hoặc thông tin được ứng dụng của bạn sử dụng Nó có thể kích hoạt quá trình rebuild giao diện người dùng hoặc các phần nhất định của giao diện người dùng dựa trên dữ liệu đã thay đổi
- Bloc :
Bloc rất quan trọng trong việc quản lý state của app Mobile
Thực hiện :
- Tham gia đầy đủ các buổi training của công ty
- Làm các bài thực hành, kiểm tra về kiến thức đã học
Kết quả :
- Nâng cao kỹ năng lập trình bằng flutter
- Có được những kiến thức quan trọng cho việc lập trình mobile sau này
- Ngoà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
Trang 92.3 Lập trình app Driving bằng Flutter
Nội dung : Các kỹ thuật tạo ra một ứng dụng cơ bản, sử dụng Flutter trong Android.
- Định hướng app:
App Driving là một app chuyên về cung cấp dịch vụ kết nối hành khách và tài xế Cung cấp thêm cho khách hàng một phương tiện đặt xe thông minh, hiệu quả và
dễ sử dụng (ngoài các phương tiện đặt xe taxi truyền thống (đặt xe qua tổng đài bằng smartphone, điện thoại di động thông thường, điện thoại bàn, đón xe dọc đường, đón xe tại các điểm tiếp thị )
Thực hiện :
- Tham gia đầy đủ các buổi training
Kết quả:
- Định hướng hướng phát triển một app Mobile
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, Dart, Android 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 app mobile
Chi tiết đồ án sẽ được nói ở phần sau
4 Lịch làm việc
Mức độ hoàn thành
Nhận xét của người hướng dẫn
1
- Tìm hiểu về công
ty, cách 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 email
Chị Thảo
framework Flutter/Dart
Anh Nguyễn Đình Thi
Trang 10- Thực hành
- Làm bài test
3
Giai đoạn Alpha:
- Lên kế hoạch
- Xem bản thiết kế, xác định thành phần cần thiết của project
- Bắt đầu xây dựng giao diện, chức năng cơ bản cần có
Anh Nguyễn Đình Thi
7
Giai đoạn Beta:
- Chỉnh sửa UI flow cho mượt hơn
Anh Nguyễn Đình Thi
8
Giai đoạn Beta và giai đoạn kết thúc, báo cáo :
- Fix bug
- Báo cáo cuối đợt thực tập
Anh Nguyễn Đình Thi
Trang 11Chương 3: Chi tiết về project
1 Giới thiệu về ứng dụng Driving
App lấy ý tưởng từ các app tìm tài xế lái xe, hành khách tìm chọn vị trí đưa rước và đặt chuyến đi cho tài xế đưa đón
2 Thực hiện
- Nguyễn Trần Hoàng Hiếu - thực tập sinh
- Nguyễn Đình Thi - người hướng dẫn
Trang 123 Kế hoạch
Giai đoạn Alpha:
- Hoàn thành thiết kế
- Tạo môi trường API bằng Firebase
- Hoàn thành các chức năng chính:Login/Sign up, Trang chủ Google Map, Tính toán chuyến đi, Lịch sử chuyến đi, Info người đăng nhập
- Liên tục update quá trình làm
Kết quả :
- Hầu hết các tính năng trên đã được thực hiện
Giai đoạn Beta:
- Chỉnh sửa UI
- Fix một số bug phát sinh
- Ghi chú những nhắc nhở chú ý của các anh chị về app
Kết quả : Đã hoàn thành
Trang 13TÀI LIỆU THAM KHẢO
For Flutter & Animation,Package
Tutorials | Flutter
Dart packages (pub.dev)
(51) Flutter - YouTube
For Firebase
Firebase Document
Trang 14TỔNG KẾT
Như vậy, chỉ trong vòng một tháng ngắn ngủi, em cùng các thành viên trong công ty đã hoàn thành được bản đầu của app Driving, mặc dù vẫn còn chưa thực hiện thêm được một số tính năng mới hay giao diện còn đôi chỗ chưa hợp lý App sẽ được publish lên Chplay sau khi được cải thiện chỉn chu và đầy đủ cho người dùng
Chân thành cảm ơn sự giúp đỡ của các anh chị thuộc công ty SmartWay đã tạo điều kiện cho em được thực tập và học hỏi, cùng làm việc và trao đổi, thư giãn cùng mọi người Cảm ơn anh Nguyễn Đình Thi đã giúp em hoàn thiện bản báo cáo này