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 Phát triển ứng dụng di động với Flutter Công ty thực tập : Golden Owl Solutions Người phụ trách : Nguyễn Cô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
Phát triển ứng dụng di động với Flutter
Công ty thực tập : Golden Owl Solutions
Người phụ trách : Nguyễn Công Hoan
TP Hồ Chí Minh, tháng 12 năm 2023
Trang 3LỜI MỞ ĐẦU
Trong bối cảnh ngày nay, khi công nghệ ngày càng đóng vai trò quan trọng trong sự phát triển của xã hội và doanh nghiệp, việc áp dụng các công nghệ mới nhằm tối ưu hóa quy trình làm việc cũng như cung cấp trải nghiệm người dùng tốt nhất là không thể phủ nhận Trong khuôn khổ của chương trình thực tập doanh nghiệp, em đã có cơ hội trải nghiệm và đóng góp cho quá trình phát triển ứng dụng sử dụng framework Flutter
Trong môi trường ngày càng đòi hỏi sự linh hoạt và hiệu quả, việc áp dụng công nghệ mới để phát triển ứng dụng di động trở thành một thách thức đầy thú vị Framework Flutter, với ưu điểm độc đáo về tính đa nền tảng và khả năng tương thích cao, đã thu hút sự quan tâm của nhiều nhà phát triển Qua thời gian thực tập, em đã có cơ hội làm việc trực tiếp trên các dự án sử dụng Flutter, từ đó tích luỹ được nhiều kinh nghiệm quý báu và kiến thức sâu rộng về quá trình phát triển ứng dụng di động
Báo cáo này sẽ cung cấp một cái nhìn tổng quan về quá trình thực tập của em tại công ty Golden Owl, bao gồm mục tiêu và phạm vi của dự án, các công nghệ và công cụ được sử dụng, cũng như những thách thức và giải pháp mà em đã đối mặt Hy vọng rằng thông qua bản báo cáo này, em có thể chia sẻ những học thức quý báu và đóng góp một góc nhìn mới cho những ai quan tâm đến lĩnh vực phát triển ứng dụng di động và framework Flutter
Trang 4mẽ cho sự phát triển của em
Thứ hai, em muốn bày tỏ lòng biết ơn đến công ty Golden Owl Solutions.Việc thực tập tại công ty đã mang lại cho em một trải nghiệm thực tế và giúp em áp dụng những kiến thức đã học vào dự án thực tế Em đã được làm việc trong một môi trường năng động và sáng tạo, nơi em được khuyến khích để đóng góp ý kiến và học hỏi từ đồng nghiệp
Cuối cùng, em xin chân thành cảm ơn tất cả những người đã đồng hành và hỗ trợ em trong thời gian thực tập Đây không chỉ là một kỳ thực tập mà còn là một chặng đường học tập quan trọng, và em tự hào được làm một phần của Golden Owl Solutions
Lời cảm ơn này không đủ diễn đạt lòng biết ơn sâu sắc của em Hy vọng rằng sự hợp tác giữa chúng ta sẽ tiếp tục và mang lại những cơ hội mới trong tương lai
TP HCM, ngày 31 tháng 12 năm 2023
Trang 5NHẬN XÉT CỦA KHOA
Trang 6
MỤC LỤC
Chương 1: Giới thiệu công ty thực tập 8
1 Giới thiệu công ty Golden Owl Solutions 8
2 Môi trường làm việc 8
3 Sản phẩm của công ty 8
Chương 2: Nội dung thực tập 12
1 Tìm hiểu công ty và các kỹ năng cơ bản trong công ty 12
2 Nghiên cứu kỹ thuật 12
2.1 Công cụ sử dụng 12
2.2 Framework 13
2.3 Clean Architecture 13
2.4 CI/CD 15
3 Thực hiện dự án cá nhân 15
3.1 Công nghệ 15
3.2 Mô tả dự án 16
3.3 Kết quả 18
4 Tham gia dự án thực tế 19
4.1 Công nghệ 19
4.2 Mô tả dự án 20
4.3 Kết quả 22
Chương 3: Tổng kết 24
1 Điểm mạnh 24
2 Điểm yếu 24
3 Chuẩn đạt được 25
Trang 7TÀI LIỆU THAM KHẢO 26
Trang 8Chương 1: Giới thiệu công ty thực tập
1 Giới thiệu công ty Golden Owl Solutions
Công ty Golden Owl Solutions được thành lập vào năm 2015 và hoạt động trong lĩnh vực IT Outsource, chuyên phát triển website và ứng dụng di động với công nghệ mới nhất như Ruby on Rails, JavaScript, Laravel, Python, Golang, Flutter… cho các đối tác là khách hàng từ Singapore, Úc, Anh và các quốc gia nói tiếng Anh trên thế giới
Trải qua quá trình xây dựng và phát triển, Công ty Golden Owl Solutions không những
đã tạo dựng được vị thế vững chắc trên thị trường, giá trị kinh tế và niềm tin đối với khách hàng, mà còn tạo ra môi trường làm việc năng động và tiến bộ cho nhân viên Golden Owl Solutions
2 Môi trường làm việc
Môi trường làm việc ở Golden Owl Solutions năng động, sáng tạo, luôn hòa đồng vui
vẻ, mọi người đều rất sẵn lòng giúp đỡ nhau trong công việc và cuộc sống Ở đây luôn có tôn chỉ chia sẻ kiến thức, kinh nghiệm cho tất cả mọi người sẽ giúp gắn kết mọi người lại với nhau Mỗi tuần đều có các buổi seminar chia sẽ kiến thức từ các team khác nhau trong công ty
3 Sản phẩm của công ty
3.1 Pace
Trang 9Pace là một phương thức thanh toán trực tuyến được sử dụng trong ngành công nghiệp thương mại điện tử Đây là một tiện ích thanh toán cho các nền tảng thương mại điện tử phổ biến như WooCommerce và OpenCart Mô hình kinh doanh của họ có hai phần: một cổng thông tin thương nhân nơi quản trị viên có thể theo dõi các giao dịch của thương nhân
và một cổng thanh toán hoặc plugin cho các nền tảng thương mại điện tử Golden Owl đã
hỗ trợ họ trong việc phát triển và duy trì trang web của họ, cho phép người dùng quản lý tất cả các giao dịch thanh toán của họ và quản trị viên tăng cường tỷ lệ chuyển đổi và kích thước giỏ hàng cho doanh nghiệp của họ, sử dụng React Native, ReactJS và PHP Trong phiên bản 2.0, chúng tôi tiếp tục hợp tác với họ để chuyển đổi ứng dụng từ React Native sang Android và iOS Native
3.2 Mosendo
Trang 10Mosendo là ứng dụng di động ví tiền điện tử, nơi mọi người có thể dễ dàng và an toàn nạp/rút/gửi tiền giữa các tài khoản tiền điện tử của họ Khả năng truy cập vào tiền và tài sản mà không bị giới hạn, với các công cụ tài chính cá nhân phi tập trung Chúng tôi đã hỗ trợ xây dựng ứng dụng này, tuân thủ đầy đủ các yêu cầu cho một ví tiền điện tử an toàn khi vẫn còn nhiều trường hợp gian lận trong thị trường số
3.3 WeSolo - Travel App
Trang 11Cade và Tiana, hai người đi bộ độc lập gặp nhau tại Seoul, là nguồn cảm hứng cho WeSolo Họ tin rằng không có ứng dụng nào đáp ứng đủ tất cả các yêu cầu của họ như những người du lịch lâu dài, do đó WeSolo ra đời sau nhiều suy nghĩ Mục tiêu của họ là
hỗ trợ du khách kết nối với nhau, tạo ra những mối quan hệ bạn bè kéo dài suốt đời Quan trọng nhất, WeSolo khuyến khích du lịch an toàn và thú vị
4 Lịch làm việc khi thực tập tại công ty
Em tham gia làm việc tại công ty bắt đầu từ ngày 06/09/2023 tới 06/12/2023, các ngày làm việc trong tuần là từ thứ 2 đến thứ 6 Công việc hằng ngày bắt đầu từ lúc 09h00 đến 18h00 Thời gian nghỉ trưa từ 12h30 đến 13h30 Sau mỗi ngày làm việc em sẽ báo cáo tiến
độ công việc trong ngày, đặt câu hỏi và nhận chia sẻ, giải đáp từ anh hướng dẫn, đặt mục tiêu cho ngày làm việc tiếp theo Mỗi tuần sẽ họp tiến độ tuần 1 lần vào chiều thứ 4, mọi người sẽ cùng họp và bàn bạc về các vấn đề đã giải quyết, tồn đọng, bài học, giải pháp và mục tiêu cho tuần tiếp theo Mỗi tuần sẽ tổ chức Seminar cho cả team vào buổi họp để chia
sẻ kiến thức, kinh nghiệm và công nghệ mới cho cả team
Trang 12Chương 2: Nội dung thực tậ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 phòng nhân sự giới thiệu về công ty và các sản phẩm Outsource cũng như Product của công ty, quá trình thành lập và phát triể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 Được Mentor giới thiệu với các thành viên trong Team và quá trình thực tập tại công ty
Ngoài ra, em 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 Golden Owl và các sản phẩm, 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 và các phần mềm liên quan 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ông cụ sử dụng
Thời gian: 1 ngày
Nội dung: Giới thiệu về một số công cụ được sử dụng trong công ty Các công cụ bao gồm:
Trình gửi email (Gmail), hệ thống quản lý công việc, hệ thống chấm công, hệ thống liên lạc, hệ thống lưu trữ nội bộ, hệ thống báo cáo công việc hằng ngày, hệ thống làm việc từ xa:
- Gitlab, Github, Source Tree: là công cụ để quản lý source code
- Android Studio, VS Code, Xcode: là công cụ để phát triển ứng dụng
- Telegram, Slack: là công cụ quản lý tin nhắn giữa các cá nhân ,cũng như toàn thể công ty, các thành viên có thể gọi, nhắn tin, trao đổi và chia sẻ dữ liệu cho nhau
- Trello và Google Sheet: là công cụ để quản lý task và project, theo dõi các vấn đề
và tiến trình dự án
- Slack: là công cụ để báo cáo tiến độ hoàn thành task trong ngày
- Email: được cung cấp bởi google được sử dụng để thông báo các thay đổi chính sách, các sự kiện, dự án sắp tới của công ty đến toàn thể nhân viên
- Google meeting: phục vụ cho việc làm việc online và họp giữa các cơ sở trong công
ty
- Comana: Quản lý ngày nghỉ của nhận viên
Thực hiện: Thực hành sử dụng các phần mềm đã nêu trên
Trang 13Kết quả : Kết thúc thời gian tìm hiểu, em đã có hiểu biết sơ bộ cũng như cách thức sử dụng
các phần mềm và hệ thống được dùng trong nội bộ công ty Tạo điều kiện cho thực tập sinh
có thể giao tiếp hiệu quả hơn với người hướng dẫn
2.2 Framework
Thời gian: 1,5 tuần
Nội dung: Được giới thiệu về ngôn ngữ lập trình Dart và Flutter Framework, những kiến
thức quan trọng cho việc tối ưu hóa hiệu năng cho các ứng dụng di động
- Các cú pháp, câu lệnh cơ bản trong Dart
- Các quy ước, tiêu chuẩn và hướng dẫn phát triển ứng dụng Flutter
- Làm quen với lập trình Flutter
- Làm các bài tập lập trình đơn giản với ngôn ngữ Dart
- Xây dựng ứng dụng Flutter cơ bản (Flutter Gallery) và đưa lên cửa hàng CH Play
Thực hiện: Tham gia đầy đủ các buổi training và thực hành theo hướng dẫn của mentor Kết quả: Hiểu sâu hơn về ngôn ngữ Dart và Flutter Framework
2.3 Clean Architecture
Thời gian: 2 ngày
Nội dung: Các nguyên tắc để xây dựng 1 dự án Flutter áp dụng Clean Architecture Clean
Architecture là một kiến trúc ứng dụng rất nổi tiếng dựa trên nguyên lý loại bỏ sự lệ thuộc giữa các đối tượng cũng như các layer trong ứng dụng Với các dự án lớn, việc áp dụng sẽ giúp chia để trị task dễ dàng Maintain, mở rộng, unit test cũng sẽ dễ áp dụng theo
Trang 14Hình 1: Clean Architecture
Hình 2: Clean Architecture kết hợp BLoc
Trang 15Thực hiện: Tìm hiểu về Clean Architecture
Kết quả: Cơ bản nắm được và xây dựng code base dựa trên Clean Architecture trong Flutter
2.4 CI/CD
Thời gian: 2 ngày
Nội dung: Tìm hiểu về cú pháp, cách triển khai Fastlane và github action vào trong dự án
Flutter để tự động phát hành ứng dụng lên store khi có những cập nhật
Thực hiện: Tự tìm hiểu và thực hành đưa vào dự án
Kết quả: Áp dụng và hoàn thành dự án cá nhân trong quá trình training
3 Thực hiện dự án cá nhân
Sau gần 3 tuần được training và thực hành, em đã nắm được những kiến thức cơ bản về Dart, Flutter, Clean Architecture, CI/CD Sau đó em được tự chọn cho mình ý tưởng ứng dụng để thực hiện project cá nhân Và dự án cá nhân được phê duyệt đó là ứng dụng mang tên Jobspot Đây là ứng dụng đăng tuyển việc làm giúp kết nối các nhà tuyển dụng và ứng viên với nhau Ở đây họ có thể đăng tin tuyển dụng và tương tác ứng tuyển ngay trên nền tảng giúp tiết kiệm thời gian và chi phí
3.1 Công nghệ
Mobile: Flutter
- Flutter là một framework phát triển ứng dụng di động đa nền tảng của Google, sử dụng ngôn ngữ Dart Nổi bật với "hot reload" giúp phát triển nhanh chóng, Flutter tạo ra giao diện đẹp và trải nghiệm người dùng nhất quán trên cả iOS và Android Được ưa chuộng trong cộng đồng nhà phát triển, Flutter đang trở thành lựa chọn hàng đầu cho phát triển ứng dụng di động hiện đại
Back-end: Flask + Firebase
- Firebase là nền tảng của Google cung cấp các dịch vụ như cơ sở dữ liệu realtime, xác thực người dùng, lưu trữ tệp, và chức năng serverless Được ưa chuộng trong phát triển ứng dụng di động, Firebase giúp đơn giản hóa quá trình phát triển và quản
lý ứng dụng
- Flask là một framework web Python nhẹ, được sử dụng để xây dựng các ứng dụng web Được biết đến với cấu trúc đơn giản và linh hoạt, Flask cung cấp một môi trường phát triển thuận tiện cho việc xử lý yêu cầu HTTP, quản lý routing, và tạo
Trang 16giao diện người dùng thông qua các template Trong ứng dụng này chủ yếu để tích hợp API của Open AI phục vụ cho việc tóm tắt CV
3.2 Mô tả dự án
Mức độ hoàn thành
1
Thực hiện setup project (CI/CD, kết nối Firebase, …), triển khai giao diện và chức năng liên quan đến tài khoản người dùng như đăng ký, đăng nhập, quên mật khẩu, phân quyền người dùng, xác thực tài khoản,…
2
Triển khai các tính năng liên quan đến tuyển dụng như quản lý bài tuyển dụng, ứng tuyển công việc, bài test IQ, …
3
Triển khai các tính năng liên quan đến phần mạng xã hội trong ứng dụng như quản lý bài viết, quản lý tương tác, chia
sẻ sang các nền tảng khác, thông báo trong và ngoài ứng dụng, …
3.2.1 Tuần 1
Trong tuần đầu tiên trong quá trình triển khai dự án, em tập trung chủ yếu vào việc thiết lập dự án, triển khai liên tục (CI/CD), và kết nối với Firebase Ngoài ra, em cũng đã triển khai giao diện và các chức năng quan trọng liên quan đến quản lý tài khoản người dùng
- Đầu tiên, em đã thực hiện việc thiết lập dự án, bao gồm cấu hình môi trường phát triển, thiết lập kho lưu trữ dự án và các cấu hình khác
Trang 17- Tiếp theo, thực hiện việc kết nối dự án với Firebase, bao gồm cấu hình tài khoản và tích hợp Firebase SDK vào mã nguồn dự án
- Em cũng đã tích hợp quy trình liên tục và triển khai liên tục (CI/CD) bao gồm fastlane và github action để tự động hóa quá trình triển khai mã nguồn từ môi trường phát triển đến môi trường sản xuất
- Các bước kiểm thử tự động và báo cáo lỗi đã được tích hợp trong quy trình CI/CD
để đảm bảo chất lượng mã nguồn
- Em thực hiện việc triển khai giao diện người dùng, đảm bảo trải nghiệm người dùng mượt mà và thân thiện
- Các chức năng quan trọng liên quan đến tài khoản người dùng đã được triển khai, bao gồm:
• Đăng ký: Người dùng có thể tạo tài khoản mới với 2 vai trò là nhà ứng tuyển và ứng viên với thông tin cá nhân
• Đăng nhập: Quá trình đăng nhập được xử lý an toàn và hiệu quả
• Quên mật khẩu: Chức năng này cho phép người dùng đặt lại mật khẩu khi quên
• Phân quyền người dùng: Xác định quyền hạn và quyền truy cập của người dùng trong hệ thống
• Xác thực tài khoản: Quy trình xác thực bảo mật để đảm bảo tính toàn vẹn của tài khoản người dùng
3.2.2 Tuần 2
- Đầu tiên và là tính năng quan trọng nhất, triển khai chức năng quản lý bài tuyển dụng để giúp các doanh nghiệp quản lý thông tin tuyển dụng một cách thuận tiện và hiệu quả
- Giao diện quản lý bài tuyển dụng được tối ưu hóa để đơn giản hóa quá trình đăng thông tin và theo dõi trạng thái của các bài tuyển dụng
- Tích hợp tính năng ứng tuyển công việc, giúp ứng viên dễ dàng nộp đơn và tương tác với quá trình tuyển dụng
- Quy trình ứng tuyển được thiết kế để giúp người dùng trải nghiệm tốt nhất và cung cấp thông tin cần thiết cho nhà tuyển dụng
- Một tính năng quan trọng khác triển khai là bài test IQ, giúp đánh giá kỹ năng và khả năng của ứng viên
3.2.3 Tuần 3
Một trong những tính năng quan trọng trong tuần này là triển khai tính năng quản lý bài viết trong ứng dụng Điều này cho phép người dùng tạo, chỉnh sửa và xóa bài viết của mình một cách dễ dàng, tạo nên một không gian chia sẻ thông tin linh hoạt và thú vị