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

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

26 6 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

Tiêu đề 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
Tác giả Lê Hải Phong
Người hướng dẫn Nguyễn Mạnh Hùng
Trường học Trường Đại Học Công Nghệ Thông Tin - Đại Học Quốc Gia TP.HCM
Chuyên ngành Khoa học Máy tính
Thể loại Báo cáo thực tập
Năm xuất bản 2023
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 26
Dung lượng 851,51 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Sau hơn 3 năm học tập tại trường, em có mong muốn được trải nghiệm các công việc thực tế, trau dồi nhiều kinh nghiệm có ích cho bản thân, và tham gia phát triển ứng dụng trong một môi tr

Trang 1

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 MOBILE DEVELOPER

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: Nguyễn Mạnh Hùng Thực tập sinh: Lê Hải Phong

TP Hồ Chí Minh, tháng 06 năm 2023

Trang 2

LỜI MỞ ĐẦU

Ở thời điểm hiện tại, với tốc độ phát triển chóng mặt của khoa học và công nghệ hiện đại thì ta càng thấy được mức độ phổ biến, cung như tiện dụng của những chiếc điện thoại thông minh hiện nay là một điều không thể phủ nhận với hàng tỉ người dùng trên toàn thế giới Và qua

đó thấy được ngành công nghiệp các ứng dụng dành cho các thiết bị di động ngày nay là việc không thể thiếu với hơn 1.6 triệu ứng dụng trên App Store và hơn 3.5 triệu ứng dụng trên Google Play Store (số liệu của quý 3/2022 theo Finbold thống kê) của hai ông lớn là Apple và Google và sẽ còn tăng lên rất nhanh và nhiều trong tương lai Và cũng như với tốc độ phát triển nhanh chóng của công nghệ hiện đại ngày nay thì các ứng dụng ngày càng được trau chuốt hơn cũng như ngày càng đẹp hơn để đáp ứng nhu cầu của người dùng

Tuy nhiên với thời điểm trước đây để phát triển các ứng dụng cho hai nền tảng lớn đã thì

ta phải phát triển với hai module riêng biệt cho từng nền tảng, như vậy gây nên việc tốn kém rất nhiều các chi phí để phát triển cũng như bảo trì Và nhận ra được điều đó khái niệm về lập trình

đa nền tảng đã ra đời với khả năng phát triển các ứng dụng cho nhiều nền tảng khác nhau chỉ với một source nguồn Có nhiều frameworks đa nền tảng khác nhau như: Ionic, Xamarin, React Native, Adobe Phonegap và gần đây nhất đó chính là Flutter của ông lớn Google Mặc dù là một framework còn khá mới mẻ tuy nhiên với sự hỗ trợ và phát triển từ Google không ai có thể phủ nhận được sự phát triển nhanh chóng của framework này Trên thế giới đã có rất nhiều các lập trình viên đã đi theo framework này và với xu thế hội nhập thì các lập trình viên ở Việt Nam cũng không phải là ngoại lệ, góp phần tất yếu cho việc hội nhập với những công nghệ và xu thế mới trên thế giới cho các ứng dụng của Việt Nam

Các ứng dụng được sinh ra để phục vụ cho các nhu cầu tất yếu khi sử dụng điện thoại thông minh và không phân biệt lứa tuổi, bất kì ai cũng có thể sử dụng điện thoại thông minh với bất kì nền tảng nào mà họ thích như Android hay iOS và với các ứng dụng luôn được phát triển phù hợp với lứa tuổi cũng như nhu cầu của họ, cũng như các ứng dụng này giờ đây có thể phát triển được một cách nhanh chóng hơn với chỉ một source code duy nhất vô cùng tiện lợi Và nhận thấy được tiềm năng của ngành công nghiệp ứng dụng di động cũng như thế mạnh của việc phát triển ứng dụng đa nền tảng, và đặc biệt thế mạnh của framework đa nền tảng mới là

Trang 3

Flutter em đã quyết định lựa chọn Flutter để làm định hướng cho con đường phát triển ứng dụng

di động của mình

Sau hơn 3 năm học tập tại trường, em có mong muốn được trải nghiệm các công việc thực tế, trau dồi nhiều kinh nghiệm có ích cho bản thân, và tham gia phát triển ứng dụng trong một môi trường chuyên nghiệp, em đã thực hiện dự định đi thực tập của mình ở học kì 6 Và công ty em đã chọn là Lecle Vietnam Mặc dù đây là một công ty còn khá mới tuy nhiên đây là một công ty Hàn Quốc với môi trường trẻ trung, năng động và chuyên nghiệp, có thể giúp em thực hiện được dự định này

Trang 4

ở công ty và định hướng cho bản thân một cách chuyên nghiệp Em rất biết ơn và em muốn gửi lời cảm ơn sâu sắc đến các anh chị đã dành thời gian, công sức của mình để hướng dẫn, chỉ dạy

và giúp em có thể hoàn thành được quá trình thực tập theo dự định của mình

Em xin gửi lời cảm ơn đặc biệt đến anh Nguyễn Mạnh Hùng, người đã training Flutter chính cho em cũng như hướng dẫn, giúp đỡ những khó khăn trong công việc cũng như vượt qua những khó khăn trong việc làm quen với môi trường làm việc mới và quy trình làm việc tại công ty Anh cũng là người hướng dẫn cho em tư duy khi làm việc và định hình quy trình làm việc khi thực hiện dự án để em có thể làm việc thuận lợi và tránh sai sót hơn; cảm ơn anh Tạ Phi Phụng là người đã training cho em các kiến thức cần thiết mà em cần có cho công việc như việc làm việc với backend như Restful API, Firebase, cũng như sử dụng các 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 và sử dụng các package của nó làm sao để dự án được tốt hơn, cũng như sửa các lỗi sai trong khi lập trình giao diện và

xử lý các logic trong Flutter để giúp em cải thiện được các lỗi sai mình thường mắc phải để em rút ra các kinh nghiệm và có thể lập trình giao diện trên Flutter được tốt hơn; em cũng gửi lời cảm ơn đến anh Lâm Xuân Triết người đã chia sẻ và giúp em củng cố lại các kiến thức cơ bản cần thiết để giúp em có thể áp dụng trong dự án; cảm ơn anh Vi Hữu Đức đã hướng dẫn cho em hiểu hơn về git cũng như cách quản lý một source code; em xin cảm ơn các anh chị thuộc team design, backend và QA/QC đã hướng dẫn và hỗ trợ em hoàn thành tốt dự án được giao; và cuối cùng em xin gửi lời cảm ơn đến anh Nguyễn Mạnh Hùng là Project Manager của mobile team

và là người đã cho em thêm những kiến thức cần thiết mà em cần để giúp em có thể bước trên con đường định hướng trở thành một Project Manager như anh trong tương lai Và với những

Trang 5

đóng góp và chỉ dẫn của các anh chị thì em đã có thể hoàn thành được một sản phẩm và tham gia vào phát triển một module trong thời gian thực tập

Em cũng xin gửi lời cảm ơn chân thành đến các thầy cô khoa Công nghệ phần mềm đã

nhiệt tình tạo điều kiện và hỗ trợ em được thực hiện báo cáo này

Lê Hải Phong TP.HCM, 15/06/2023

Trang 6

NHẬN XÉT CỦA KHOA

Trang 7

MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP 7

1.1 Giới thiệu công ty Lecle 7

1.2 Sản phẩm công ty 7

1.3 Lịch làm việc tại công ty 8

CHƯƠNG 2: NỘI DUNG THỰC TẬP 12

2.1 Tìm hiểu công ty và các kỹ năng cơ bản của công ty 12

2.2 Nghiên cứu kỹ thuật 13

2.2.1 Các công cụ làm việc 13

2.2.2 Tìm hiểu ngôn ngữ Dart 13

2.2.3 Tìm hiểu kiến trúc project của Flutter 15

2.2.4 Tìm hiểu Firebase và package trong Flutter 16

2.2.5 Lập trình ứng dụng Flutter cho 2 nền tảng di động là Android và iOS 18

2.3 Tham gia dự án thực tế 20

2.3.1 Giới thiệu ứng dụng 20

2.3.2 Thực hiện 20

2.3.3 Một số hình ảnh của ứng dụng 21

2.3.4 Kế hoạch 21

2.3.5 Kết quả 21

CHƯƠNG 3: TỔNG KẾT 22

3.1 Điểm mạnh 22

3.2 Điểm yếu 22

3.3 Chuẩn đạt được 23

TÀI LIỆU THAM KHẢO 24

TỔNG KẾT 25

Trang 8

CHƯƠNG 1: GIỚI THIỆU CÔNG TY THỰC TẬP

1.1 Giới thiệu công ty Lecle

Công ty Lecle được thành lập năm 2014 với trụ sở chính ở Hàn Quốc, và sau đó mở rộng văn phòng sang thị trường Singapore và Mỹ, sau đó năm 2017 công ty quyết định thành lập một văn phòng ở Việt Nam Công ty có chuyên môn về các lĩnh vực như Web, Blockchain, trước đây là native app (Android, iOS) và sau này chuyển hướng sang Flutter Sau 8 năm thành lập công ty đã xây dựng được chỗ đứng vững chắc ở các thị trường Hàn Quốc, Mỹ, Singapore và Việt Nam với các lĩnh vực về Blockchain với các khách hàng ở Mỹ và Singapore, khách hàng ở Hàn Quốc và Việt Nam với các lĩnh vực như Web và Mobile

Với văn phòng đặt tại 4 quốc gia và thị trường lớn hàng đầu là Mỹ, Hàn Quốc, Singapore

và Việt Nam, công ty gia công cũng như cung cấp các phần mềm cho các lĩnh vực như Web, Block Chain, Mobile cho các quốc gia này với hơn 200 nhân viên đang làm việc tại các văn phòng của công ty

1.2 Sản phẩm công ty

Công ty Lecle cung cấp các ứng dụng Web và Mobile cho các khách hàng ở Hàn Quốc

và Việt Nam, ngoài ra công ty còn có các dự án về mảng Blockchain cho các khách hàng ở Mỹ

và Singapore với nhiều khách hàng thân quen và đã hợp tác lâu dài với công ty Công ty cũng đi tiên phong trong việc chuyển đổi và cập nhật các công nghệ mới cho Blockchain và cũng như trong đó có Flutter cho ứng dụng di động

Nhờ những hợp tác với các khách hàng lâu năm cũng như với đội ngũ nhân lực tốt, công

ty đã có một số sản phẩm như hệ thống server riêng của công ty để tạo ra gitlab riêng của công

Trang 9

ty để quản lý source code, ngoài ra server còn có thể sử dụng cho dự án của các khách hàng nếu

họ có nhu cầu Ngoài ra công ty cũng đã từng gia công sản phẩm cho một số khách hàng lớn như KPlaza, Unity,

1.3 Lịch làm việc tại công ty

dẫn

Mức độ hoàn thành

Nhận xét của người hướng dẫn

1 - Làm quen với các nhân

viên của công ty, cách tổ

chức, quy trình làm việc ở

công ty

- Làm quen với các công cụ

làm việc của công ty

- Học cách trao đổi, làm

việc qua email và các tài

khoản công ty cung cấp

(quản lý source code, xin

phép, …)

Anh Tạ Phi Phụng

100% Sinh viên hoà đồng, tiếp

thu quy trình nhanh

2 - Ôn tập lại cũng như bổ

sung thêm những kiến thức

100% Nắm đủ kiến thức cơ bản

Sinh viên được thực hành lại kiến thức đã có, cũng như được góp ý để cải thiện cách làm được tốt hơn

Trang 10

kiến thức đã được hướng

package trong Flutter từ

nơi tìm đến việc quản lý

100% Sinh viên hoàn thành đầy

đủ các yêu cầu và củng cố thêm các kiến thức chuyên môn thực tiễn khác

4 - Tìm hiểu về RESTful API

và Postman

- Áp dụng những kiến thức

về API thực hiện một số

Anh Tạ Phi Phụng

100% Sinh viên biết cách nghiên

cứu kiến thức mới và áp dụng vào thực tế

Trang 11

100% Sinh viên biết cách vận

dụng các kiến thức đã học Nền tảng để tự học hỏi thêm sau này

- Tiến hành liên kết project

với Firebase và thêm các

dịch vụ của nó vào dự án

- Test thử các dịch vụ sau

khi đã thêm

- Sửa các lỗi về logic và

test case của tester và

leader phản hồi

- Sửa lỗi về giao diện sau

Anh Tạ Phi Phụng

100% Áp dụng và cải thiện các

phương pháp lập trình sẵn

có và được hướng dẫn thêm Sinh viên dần hình thành thói quen và cách làm việc riêng

Trang 12

khi designer kiểm tra

10 - 11 Giai đoạn 2:

- Thực hiện tích hợp API

để lấy thông tin và hiển thị

thông tin tương ứng

- Sửa các lỗi về logic và

test case của tester và

leader phản hồi

Anh Tạ Phi Phụng

100% Sinh viên biết cách vận

dụng các kiến thức đã học Nền tảng để tự học hỏi thêm sau này

12 - Sửa các lỗi về logic và

test case của tester và

leader phản hồi

- Sửa lỗi về giao diện sau

khi designer kiểm tra

- Cải thiện trải nghiệm

người dùng

Anh Tạ Phi Phụng

100% Sinh viên biết cách giải

quyết vấn đề và khắc phục lỗi

13 - Báo cáo cuối đợt thực tập Hoàn thành đầy đủ các chỉ

tiêu được người hướng dẫn đặt ra để kết thúc quá trình học hỏi của giai đoạn thực tập Trang bị thêm cho bản thân sinh viên kỹ năng tự học, làm việc độc lập và tự phát triển

Trang 13

CHƯƠNG 2: NỘI DUNG THỰC TẬP

Đợt thực tập này, sinh viên thực tập với chủ đề “Lập trình ứng dụng di động đa nền tảng với Flutter” nhằm mục đích giúp sinh viên được đào tạo toàn diện về lập trình ứng dụng di động

đa nền tảng với Flutter, đồng thời rèn luyện kỹ năng làm việc nhóm, giao tiếp, quản lý thời gian, công việc 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ôi trường phát triển chuyên nghiệp và năng động

2.1 Tìm hiểu công ty và các kỹ năng cơ bản của công ty

Thời gian: 1 ngày

- Ngoài ra nhân viên thực tập còn được giới thiệu qua về cách thức cũng như quy trình làm việc của công ty như thời gian đi làm, các quy định công ty ban hành mà các nhân viên phải tuân thủ, cách sử dụng email trong công việc, ngoài ra còn có các thông tin về tài khoản của nhân viên như email, gitlab, …

Kết quả:

- Hiểu thêm về công ty Lecle Vietnam, quá trình thành lập và phát triển, ngoài ra còn được làm quen với các nhân sự trong công ty, thành viên trong team hướng dẫn và ban lãnh đạo để tạo được sự thân thiết và gắn kết giữa các nhân viên trong công ty Và qua đó có thêm các kỹ năng

về việc quản lý email, tài khoản công việc cũng như thời gian làm việc, từ đó có thể làm việc có

Trang 14

2.2 Nghiên cứu kỹ thuật

so sánh việc sử dụng các IDE để qua đó có thể chọn được IDE thích hợp và làm việc lâu dài

hoặc tùy vào hoàn cảnh và yêu cầu công việc

2.2.2 Tìm hiểu ngôn ngữ Dart

Thời gian: 3 ngày

Nội dung:

- Thực tập sinh được training và nhắc lại về ngôn ngữ lập trình Dart với các kiến thức cơ bản quan trọng để có thể sử dụng cho Flutter (Dart là ngôn ngữ cốt lõi trong Flutter)

Trang 15

- Lập trình hướng đối tượng: trainer nhắc lại và củng cố các kiến thức cơ bản về lập trình hướng đối tượng như tính đóng gói, trừu tượng, kế thừa, đa hình Ngoài ra thực tập sinh còn được chỉ

ra một số điểm khác biệt về OOP mà Dart dùng so với các ngôn ngữ khác

- Lập trình bất đồng bộ: thực tập sinh được các trainer hướng dẫn phương pháp lập trình bất đồng bộ trong Dart Đây là một kỹ thuật được sử dụng rất nhiều và không thể thiếu trong Flutter

để xử lý các thao tác bất đồng bộ như tải file, đọc data từ database, … Ngoài ra thực tập sinh còn được giải thích rõ về cơ chế Isolate và Async trong lập trình bất đồng bộ để phân biệt và dùng đúng lúc, đồng thời thấy được điểm mạnh, điểm yếu của chúng

- Làm việc với API: các trainer của Flutter team hướng dẫn những cách để làm việc với API thông qua Dart với các thư viện được Dart cung cấp cũng như thư viện từ pub.dev Qua đó thực tập sinh sẽ biết được cách gửi request đến API, nhận kết quả trả về hoặc đánh chặn dữ liệu để

xử lý (có thể dùng trong một số trường hộp debug hoặc xử lý data trước khi data được lưu trữ lại, …)

- Null safety: các trainer hướng dẫn cho thực tập sinh kiến thức mới và vô cùng hay được Flutter đưa vào trong thời gian gần đây lấy cảm hứng từ ngôn ngữ lập trình Kotlin đó là là null safety, qua đó giúp các thực tập sinh hiểu được tầm quan trọng của nó trong việc giúp ta tránh được các lỗi liên quan đến dữ liệu null trong lập trình Nhờ vào điều đó sẽ giúp cho các thực tập sinh tránh cũng như giảm thiểu được tối đa các rủi ro có thể gặp khi phát triển dự án cho hiện tại

và cả sau này

- Giao tiếp giữa Dart và Native code: các trainer hướng dẫn cách để ngôn ngữ Dart có thể giao tiếp với các ngôn ngữ cho lập trình native như Java, Kotlin (Android) hoặc Swift, Object-C (iOS) Qua đó giúp cho các thực tập sinh có thể hiểu được cơ chế để ngôn ngữ Dart có thể gọi

và sử dụng code từ Native code cho Flutter project để hỗ trợ khi các thư viện của Flutter không cung cấp được tính năng của Native code (VD: lấy version hiện tại của hệ điều hành, dạng thao tác của điện thoại mà người dùng cài đặt (như 3 nút ấn, gesture, …),

Thực hiện:

- Tham gia đầy đủ các buổi training của công ty

Trang 16

- Thực hiện các bài thực hành để kiểm tra về kiến thức đã được training như tạo các class và sử dụng các phần hướng đối tượng trong Dart theo yêu cầu của trainer, thực hiện việc gọi API đơn giản từ API mẫu của công ty để xem kết quả và cấu trúc của API, tạo và thực hiện phương thức tải ảnh về máy cho phần lập trình bất đồng bộ

- Thực hiện việc gọi native code đơn giản để nắm được quy trình thao tác

- Ngoài ra phải tìm hiểu thêm các tài liệu trên mạng để nắm rõ thêm các phần đã được hướng dẫn

Kết quả:

- Nâng cao kỹ năng lập trình cũng như kiến thức cần có về ngôn ngữ lập trình Dart

- Có được những kiến thức quan trọng cho việc lập trình UI và xử lý các logic trong Flutter dựa trên ngôn ngữ Dart

2.2.3 Tìm hiểu kiến trúc project của Flutter

Thời gian: 3 ngày

mô hình để có thể hiểu được mô hình cũng như nắm bắt cấu trúc cơ bản của mô hình này Ngoài

ra thực tập sinh còn được nghe sơ qua về các mô hình như MVC hay MVP và các ưu, khuyết điểm của chúng và hiểu được tại sao nên dùng mô hình MVVM

- Tìm hiểu cấu trúc chính được các trainer module dựa trên: tiến hành tìm hiểu kiến thức về kiến thức trong bài viết liên quan nơi các trainer đã dựa trên để viết ra module code tái sử dụng cũng như hướng dẫn cho các thực tập sinh hiện tại và sau này Đây là bài viết cung cấp kiến thức đầy

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

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w