Lập trình ứng dụng di động đa nền tảng với flutter

29 5 0
Lập trình ứng dụng di động đa nền tảng với flutter

Đ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

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 DI ĐỘNG ĐA NỀN TẢNG VỚI FLUTTER Công ty thực tập Lecle Vietnam Người phụ trách Tạ Phi Phụng Thực tập sinh[.]

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 DI ĐỘNG ĐA NỀN TẢNG VỚI FLUTTER Công ty thực tập: Lecle Vietnam Người phụ trách: Tạ Phi Phụng Thực tập sinh: Lê Hồng Phúc TP Hồ Chí Minh, tháng 12 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 tồ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 khơng phải 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 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 hoà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 Giới thiệu công ty Lecle Vietnam 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, - Tìm hiểu cấu trúc trainer module dựa trên: tiến hành tìm hiểu kiến thức kiến thức viết liên quan nơi trainer dựa để viết module code tái sử dụng hướng dẫn cho thực tập sinh sau Đây viết cung cấp kiến thức đầy đủ tổng quan mơ hình mà trainer sử dụng để giúp thực tập sinh hình dung phần cấu trúc sử dụng project module - Tìm hiểu SOLID principle: thực tập sinh yêu cầu tìm hiểu quy ước SOLID để qua hiểu rõ tẩm quan trọng việc có quy ước viết code cho thân để giúp cho thực tập sinh chủ động hoàn thiện thân cải thiện kỹ giúp code clean module tương lai - Tìm hiểu project module: thực tập sinh trainer hướng dẫn sâu cấu trúc tổ chức viết thành project module Các trainer hướng dẫn phần class đại diện cho lớp theo mơ hình MVVM để biết chức class sử dụng chúng giúp ích cho việc quản lý source code dự án 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à 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 14 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 xuyên để 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 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 - Ngồ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ả: 15 - 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 đ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 16 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ứ 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 17 - 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) 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 - Làm quen với nhân Anh Tạ Phi 100% Sinh viên hồ đồ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 18 (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 - Củng cố bổ sung kiến thức IDE để lập trình Flutter Phụng cố thêm kiến thức chun mơn thực tiễn khác - Tìm hiểu củng cố package Flutter từ nơi tìm đến việc quản lý ứng dụng package vào dự án - Tìm hiểu mơ hình phát triển dự án 19 ... viên thực tập với chủ đề ? ?Lập trình ứng dụng di động đa tảng với Flutter? ?? nhằm mục đích giúp sinh viên đào tạo toàn di? ??n lập trình ứng dụng di động đa tảng với Flutter, đồng thời rèn luyện kỹ làm... để 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... Đị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,

Ngày đăng: 01/02/2023, 21:23

Tài liệu cùng người dùng

Tài liệu liên quan