1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo thực tập tìm hiểu về clean architecture trong flutter

29 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 29
Dung lượng 599,37 KB

Nội dung

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 TÌM HIỂU VỀ CLEAN ARCHITECTURE TRONG FLUTTER Công ty thực tập: Lecle Vietnam Người phụ trách: Nguyễn Mạnh Hùng Thực tập sinh: Bùi Khắc Lam TP Hồ Chí Minh, tháng 06 năm 2022 LỜI MỞ ĐẦU Ở thời điểm tại, với tốc độ phát triển chóng mặt khoa học cơng nghệ đại ta thấy mức độ phổ biến, cung tiện dụng điện thoại thông minh điều phủ nhận với hàng tỉ người dùng toàn giới Và qua thấy ngành cơng nghiệp ứng dụng dành cho thiết bị di động ngày việc thiếu với 1.6 triệu ứng dụng App Store 3.5 triệu ứng dụng Google Play Store (số liệu quý 3/2022 theo Finbold thống kê) hai ông lớn Apple Google tăng lên nhanh nhiều tương lai Và với tốc độ phát triển nhanh chóng cơng nghệ đại ngày ứng dụng ngày trau chuốt ngày đẹp để đáp ứng nhu cầu người dùng Tuy nhiên với thời điểm trước để phát triển ứng dụng cho hai tảng lớn ta phải phát triển với hai module riêng biệt cho tảng, gây nên việc tốn nhiều chi phí để phát triển bảo trì Và nhận điều khái niệm lập trình đa tảng đời với khả phát triển ứng dụng cho nhiều tảng khác với source nguồn Có nhiều frameworks đa tảng khác như: Ionic, Xamarin, React Native, Adobe Phonegap gần Flutter ơng lớn Google Mặc dù framework mẻ nhiên với hỗ trợ phát triển từ Google không phủ nhận phát triển nhanh chóng framework Trên giới có nhiều lập trình viên theo framework với xu hội nhập lập trình viên Việt Nam ngoại lệ, góp phần tất yếu cho việc hội nhập với công nghệ xu giới cho ứng dụng Việt Nam Các ứng dụng sinh để phục vụ cho nhu cầu tất yếu sử dụng điện thoại thông minh không phân biệt lứa tuổi, sử dụng điện thoại thơng minh với tảng mà họ thích Android hay iOS với ứng dụng phát triển phù hợp với lứa tuổi nhu cầu họ, ứng dụng phát triển cách nhanh chóng với source code vô tiện lợi Và nhận thấy tiềm ngành công nghiệp ứng dụng di động mạnh việc phát triển ứng dụng đa tảng, đặc biệt mạnh framework đa tảng Flutter em định lựa chọn Flutter để làm định hướng cho đường phát triển ứng dụng di động Sau năm học tập trường, em có mong muốn trải nghiệm cơng việc thực tế, trau dồi nhiều kinh nghiệm có ích cho thân, tham gia phát triển ứng dụng môi trường chuyên nghiệp, em thực dự định thực tập học kì Và công ty em chọn Lecle Vietnam Mặc dù cơng ty cịn nhiên công ty Hàn Quốc với môi trường trẻ trung, động chuyên nghiệp, giúp em thực dự định LỜI CẢM ƠN Lời đầu tiên, em muốn gửi lời cảm ơn chân thành đến công ty Lecle Vietnam cho em có hội thực tập trải nghiệm thực tế công ty Qua tháng thực tập cơng ty với hướng dẫn nhiệt tình anh chị mentor trainer, sinh viên thực tập chúng em tiếp thu kiến thức quan trọng cần thiết cho trình phát triển ứng dụng di động kiến thức tảng để làm việc công ty định hướng cho thân cách chuyên nghiệp Em biết ơn em muốn gửi lời cảm ơn sâu sắc đến anh chị dành thời gian, cơng sức để hướng dẫn, dạy giúp em hồn thành q trình thực tập theo dự định Em xin gửi lời cảm ơn đặc biệt đến anh Tạ Phi Phụng, người training Flutter cho em hướng dẫn, giúp đỡ khó khăn cơng việc vượt qua khó khăn việc làm quen với mơi trường làm việc quy trình làm việc công ty Anh người hướng dẫn cho em tư làm việc định hình quy trình làm việc thực dự án để em làm việc thuận lợi tránh sai sót hơn; cảm ơn anh Huỳnh Bảo Quốc người training cho em kiến thức cần thiết mà em cần có cho cơng việc việc làm việc với backend Restful API, Firebase, sử dụng dịch vụ; cảm ơn anh Nguyễn Phi Ân người hướng dẫn cách lập trình giao diện với Flutter sử dụng package để dự án tốt hơn, sửa lỗi sai lập trình giao diện xử lý logic Flutter để giúp em cải thiện lỗi sai thường mắc phải để em rút kinh nghiệm lập trình giao diện Flutter tốt hơn; em gửi lời cảm ơn đến anh Lâm Xuân Triết người chia sẻ giúp em củng cố lại kiến thức cần thiết để giúp em áp dụng dự án; cảm ơn anh Vi Hữu Đức hướng dẫn cho em hiểu git cách quản lý source code; em xin cảm ơn anh chị thuộc team design, backend QA/QC hướng dẫn hỗ trợ em hoàn thành tốt dự án giao; cuối em xin gửi lời cảm ơn đến anh Nguyễn Mạnh Hùng Project Manager mobile team người cho em thêm kiến thức cần thiết mà em cần để giúp em bước đường định hướng trở thành Project Manager anh tương lai Và với đóng góp dẫn anh chị em hồn thành sản phẩm tham gia vào phát triển module thời gian thực tập Em xin gửi lời cảm ơn chân thành đến thầy cô khoa Cơng nghệ phần mềm nhiệt tình tạo điều kiện hỗ trợ em thực báo cáo Lê Hoàng Phúc TP.HCM, 20/12/2022 NHẬN XÉT CỦA KHOA MỤC LỤC LỜI MỞ ĐẦU LỜI CẢM ƠN NHẬN XÉT CỦA KHOA MỤC LỤC Chương 1: Giới thiêu công ty thực tập .8 Giới thiệu công ty Lecle Vietnam .8 Sản phẩm công ty Chương 2: Nội dung thực tập 10 Tìm hiểu cơng ty kỹ công ty 10 Nghiên cứu kỹ thuật 11 2.1 Các công cụ làm việc 11 2.2 Tìm hiểu ngơn ngữ Dart .11 2.3 Tìm hiểu kiến trúc tổ chức project Flutter 13 2.4 Tìm hiểu Firebase package Flutter .14 2.5 Lập trình ứng dụng với Flutter cho tảng di động Android iOS 16 Thực project 18 Lịch làm việc 18 Chương 3: Chi tiết dự án .23 Giới thiệu ứng dụng 23 Thực 23 Một số hình ảnh ứng dụng 24 Kế hoạch 24 Kết 24 Chương 4: Tổng kết trình thực tập .25 Kết đạt .25 Những khó khăn gặp phải q trình thực tập 25 Kinh nghiệm có sau q trình thực tập .25 TÀI LIỆU THAM KHẢO 27 TỔNG KẾT 28 Chương 1: Giới thiêu công ty thực tập Giới thiệu công ty Lecle Vietnam Công ty Lecle thành lập năm 2014 với trụ sở Hàn Quốc, sau mở rộng văn phòng sang thị trường Singapore Mỹ, sau năm 2017 cơng ty định thành lập văn phịng Việt Nam Cơng ty có chun môn lĩnh vực Web, Blockchain, trước native app (Android, iOS) sau chuyển hướng sang Flutter Sau năm thành lập công ty xây dựng chỗ đứng vững thị trường Hàn Quốc, Mỹ, Singapore Việt Nam với lĩnh vực Blockchain với khách hàng Mỹ Singapore, khách hàng Hàn Quốc Việt Nam với lĩnh vực Web Mobile Với văn phòng đặt quốc gia thị trường lớn hàng đầu Mỹ, Hàn Quốc, Singapore Việt Nam, công ty gia công cung cấp phần mềm cho lĩnh vực Web, Block Chain, Mobile cho quốc gia với 200 nhân viên làm việc văn phịng cơng ty Sản phẩm công ty Công ty Lecle cung cấp ứng dụng Web Mobile cho khách hàng Hàn Quốc Việt Nam, ngồi cơng ty cịn có dự án mảng Blockchain cho khách hàng Mỹ Singapore với nhiều khách hàng thân quen hợp tác lâu dài với công ty Công ty tiên phong việc chuyển đổi cập nhật công nghệ cho Blockchain có Flutter cho ứng dụng di động Nhờ hợp tác với khách hàng lâu năm với đội ngũ nhân lực tốt, cơng ty có số sản phẩm hệ thống server riêng công ty để tạo gitlab riêng công ty để quản lý source code, ngồi server cịn sử dụng cho dự án khách hàng họ có nhu cầu Ngồi cơng ty gia cơng sản phẩm cho số khách hàng lớn KPlaza, Unity, Thực hiện: - Tham gia đầy đủ buổi training công ty - Thực hành, hỏi đáp trainer để làm rõ kiến thức training - Tìm hiểu thêm kiến thức mạng để củng cố bổ sung kiến thức cần thiết Kết quả: - Nâng cao khả tổ chức project - Bổ sung kiến thức quan trọng design pattern - Biết quy tắc viết code cho dễ đọc, dễ hiểu dễ quản lý khơng cho developer mà cịn người developer khác gia nhập vào dự án sau 2.4 Tìm hiểu Firebase package Flutter Thời gian: ngày Nội dung: - Thực tập sinh trainer Flutter team hướng dẫn tìm hiểu cách sử dụng Firebase console sử dụng dịch vụ nó, đồng thời tìm hiểu đăng ký ứng dụng lên Firebase, tìm hiểu nơi để nghiên cứu tìm package cần thiết cho dự án - Sử dụng Firebase Console: Trainer hướng dẫn cho thực tập sinh tìm hiểu Firebase hệ quản trị cho phần backend cung cấp Google sử dùng dự án công ty nhiều công ty khác giới Qua thực tập sinh biết cách đăng ký tài khoản, tạo cho project quản lý chúng tích hợp cách dịch vụ Firebase cung cấp cho dự án Đồng thời thực tập sinh gợi ý nơi tìm tài liệu Medium hay document Firebase để qua chủ động tìm tài liệu cần thiết trình thực dự án - Sử dụng package cho dự án: Các package Flutter cung cấp trang pub.dev, trang web mà developer Flutter ghé thăm thường xun để tìm cho package đóng góp từ Flutter team Google cộng đồng developer tồn giới Qua giúp thực tập sinh biết nơi cách tìm thư viện hỗ trợ cho tính mà Flutter chưa cung cấp Và thực tập sinh 14 tìm hiểu thêm thao tác để thêm package quản lý package dự án việc quản lý version, override version, chọn version phù hợp update version cho package Thực hiện: - Tham gia đầy đủ buổi training công ty - Làm thực hành kiểm tra kiến thức học tiến hành tạo dự án đăng ký thử ứng dụng, thêm cho project số dịch Firebase thường dùng Firebase Cloud Messaging, Social Login thông qua hướng dẫn từ package từ pub.dev - Ngoài thực tập sinh cần tìm hiểu thêm kiến thức mạng để nắm đầy đủ bổ sung thêm kiến thức chưa hiểu Kết quả: - Biết cách làm việc với Firebase liên kết với dịch vụ Firebase vào dự án thông qua package Flutter cung cấp thông qua pub.dev - Biết cách sử dụng quản lý package project 2.5 Lập trình ứng dụng với Flutter cho tảng di động Android iOS Thời gian: ngày Nội dung: - Tìm hiểu cách Flutter xây dựng ứng dụng cho tảng Android iOS cách Flutter tối ưu code cho tảng chế hoạt động Flutter tảng - Định nghĩa Flutter: Flutter công cụ Google lập trình giao diện Google dựa ngơn ngữ lập trình Dart để xây dựng ứng dụng với giao diện đẹp, ứng dụng biên dịch thành code native tảng thiết bị mobile, web, desktop embedded với source code vớ hiệu “Build once, deploy everywhere” (Nguồn: flutter.dev) - Định nghĩa Android: Android tập hợp phần mềm (software stack) dành cho thiết bị di động, bao gồm hệ điều hành, phần mềm trung gian (middleware)và ứng dụng chủ chốt (key applications) Google Inc mua lại phát triển ban đầu phần mềm từ Android Inc., năm 2005 Android hệ điều hành di động dựa phiên sửa đổi nhân Linux phần mềm mã nguồn mở khác, thiết kế chủ yếu cho thiết bị di động hình cảm ứng 15 điện thoại thơng minh máy tính bảng Android phát triển nhóm nhà phát triển gọi Open Handset Alliance Google tài trợ mặt thương mại (Nguồn: Wikipedia) - Định nghĩa iOS: iOS (trước iPhone OS) hệ điều hành thiết bị di động Apple Đây hệ điều hành chạy sản phẩm iPhone, iPad, iPod Touch hệ điều hành phổ biến thứ toàn cầu, sau Android Google Ban đầu hệ điều hành phát triển để chạy iPhone (gọi iPhone OS), sau mở rộng để chạy thiết bị khác Apple iPod Touch (tháng năm 2007) máy tính bảng iPad (tháng năm 2010) (Nguồn: Wikipedia) - Tạo ứng dụng Flutter: thực tập sinh trainer nhắc lại cách tạo ứng dụng Flutter bản, cách sử dụng công cụ biên dịch, chạy ứng dụng Flutter máy ảo Android, iOS thiết bị thực tế hai tảng Android iOS việc debug build ứng dụng thông qua Wifi - Tối ưu code tảng Android iOS: Flutter cung cấp UI theo dạng Widget Widget xếp ứng dụng theo dạng với việc Widget cha build lại Widget nên trainer hướng dẫn cách để thực tập sinh giảm thiểu việc phải build lại nhiều Widget thông qua việc quản lý state Widget cho hiệu quả, qua tối ưu phần mềm hai tảng để tạo trải nghiệm tốt cho người dùng tiết kiệm nhiều thời gian nhà phát triển - Cơ chế hoạt động Flutter tảng này: Trainer giải thích cho thực tập sinh thêm chế mà Flutter vẽ giao diện mà developer lập trình lên hai tảng Android iOS thơng qua canvas qua Flutter tùy biến để vẽ giao diện theo ý muốn, qua cung cấp Widget vô đẹp bắt mắt cho developer người dùng Flutter sử dụng công cụ để vẽ giao diện hai tảng dựa vào Skia mạnh render engine C++ (Nguồn: flutter.dev) - Lập trình ứng dụng cho tảng Android iOS sử dụng Flutter: Để lập trình Flutter có hiệu suất cao lập trình viên phải cố gắng để tối ưu số lượng widget, cố gắng module lại thứ dùng nhiều dự án màu sắc, font chữ… Vì trước tiến hành dự án thực tập sinh trainer yêu cầu chuẩn bị thứ 16 tái sử dụng dự án giảm thiểu lượng code xuống tối đa Khi ứng dụng trở module với việc code tái sử dụng nhiều nơi sau thuận tiện cho việc quản lý sửa lỗi Thực hiện: - Tham gia đầy đủ buổi training công ty - Tạo ứng dụng từ Flutter cho tảng với kiến thức củng cố chuyên sâu tảng native Android iOS - Tìm hiểu thêm kiến thức mạng để nắm rõ kiến thức hướng dẫn Kết quả: - Có thể hiểu rõ cách thức Flutter hoạt động tảng native di động Android iOS qua triển khai ứng dụng Flutter tốt cho tảng với kiến thức hướng dẫn (giúp dự án hoạt động tốt với dòng điện thoại khác tảng) 2.6 Tìm hiểu kiến trúc clean architect Hệ thống xây dựng dựa clean architecture với thành phần Hình 26 Kiến trúc hệ thống Các thành phần hệ thống: - Widget: Tồn giao diện hệ thống, thứ mà người dùng tương tác để thực hành động xử lý hệ thống - BLOC: Là hệ thống quản lý state cho Flutter giúp lập trình viên quản lý state luồng liệu ứng dụng người dùng 17 - UseCase: Chứa rule liên quan trực tiếp tới ứng dụng cục (applicationspecific business rules) - Entity: Là khái niệm dùng để mô tả Business Logic Đây layer quan trọng nhất, nơi lập trình viên thực giải vấn đề - mục đích xây dựng ứng dụng - Repository: Là kho lưu trữ liệu, nơi để lập trình viên thực lấy liệu từ DataSource - DataSource: Nơi liệu tạo liệu lấy từ thực tế, ảo tùy theo mục đích sử dụng datasource - Model: Là phận có chức gói tồn liệu ứng dụng cầu nối thành phần bên Widget Entity - User: Là người sử dụng hệ thống, thực chức hệ thống Thực project Sau khoảng tháng training thực hành, thực tập sinh nắm kiến thức Flutter, Firebase, Flutter package and widgets Trong tháng thứ hai thứ ba, trainer hướng dẫn thực tập sinh áp dụng kiến thức học để thực project e-commerce app đa tảng Android iOS dựa Flutter Chi tiết đồ án nói phần sau Lịch làm việc Tuần Công việc Người hướng Mức dẫn độ Nhận hoàn thành xét người hướng dẫn 18 - Làm quen với nhân Anh Tạ Phi 100% Sinh viên hoà đồng, tiếp viên cơng ty, cách tổ Phụng thu quy trình nhanh chức, quy trình làm việc cơng ty - Làm quen với công cụ làm việc công ty - Học cách trao đổi, làm việc qua email tài khoản công ty cung cấp (quản lý source code, xin phép, …) - Ôn tập lại bổ Anh Tạ Phi 100% Nắm đủ kiến thức sung thêm kiến Phụng Sinh viên thực hành thức cần thiết quan lại kiến thức có, trọng ngơn ngữ Dart góp ý để cải (lập trình bất đồng bộ, thiện cách làm tốt thao tác API, …) - Thực hành kiến thức hướng dẫn củng cố - Làm test nhỏ kiến thức hướng dẫn - Tìm hiểu Firebase Anh Tạ Phi 100% Sinh viên hoàn thành đầy dịch vụ đủ yêu cầu củng Phụng - Củng cố bổ cố thêm kiến thức sung kiến thức chuyên môn thực tiễn IDE để lập trình Flutter khác - Tìm hiểu củng cố 19

Ngày đăng: 04/09/2023, 20:57

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w