1. Trang chủ
  2. » Giáo Dục - Đào Tạo

báo cáo thực tập flutter developer

26 1 0
Tài liệu đã được kiểm tra trùng lặp

Đ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 Flutter Developer
Tác giả Vũ Bảo Châu
Người hướng dẫn Trần Quang Vinh
Trường học Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành Công Nghệ Phần Mềm
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 1,99 MB

Nội dung

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 nghengười phụ trách giới thiệu về công ty, quá trìn

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 2

LỜI MỞ ĐẦU

Dưới cuộc cách mạng công nghiệp 4.0, ứng dụng di động giờ đây đãtrở thành một phần không thể thiếu trong sự phát triển của toàn xãhội

Đi cùng với sự phát triển mạnh mẽ của ngành công nghiệp phone, các ứng dụng di động cũng ngày càng trở nên phổ biến vàđóng góp một phần không nhỏ trong cuộc sống của mọi người Sốlượng các ứng dụng di động trên các chợ ứng dụng ngày càng tăngkéo theo đó là sự phát triển đa dạng về hình thức cũng như chấtlượng của ứng dụng

Smart-Với sự cạnh tranh đó, một ứng dụng di động muốn được nhiều người

sử dụng không chỉ đòi hỏi cao về hình thức mà còn đặt ra thách thức

về trải nghiệm người dùng và tính linh hoạt Việc tạo ra một ứngdụng đảm bảo được những yếu tố trên luôn là vấn đề nan giải củabất kỳ đội ngũ phát triển ứng dụng di dộng nào Với quyết tâmkhông ngừng học hỏi và mong muốn thử thách bản thân trongngành công nghiệp này, em đã lựa chọn Flutter developer là địnhhướng cho việc học tập cũng như nghề nghiệp trong tương lai

Sau thời gian rèn luyện và học tập tại trường đại học, với mongmuốn áp dụng kiến thức đã học và có được sự trải nghiệm thực tế,

em đã quyết định tham gia vào Document Easy - một môi trường

tuyệt vời cho việc thực hiện ý tưởng và phát triển bản thân

Trang 3

LỜI CẢM ƠN

Em xin trân trọng gửi lời cảm ơn Document Easy đã tạo điều kiện

cho em cơ hội được thực tập tại công ty Dù trong thời gian ngắnnhưng nhờ sự chỉ dẫn nhiệt tình của anh Trần Quang Vinh, em đãtiếp thu những kiến thức quan trọng để có thể tham gia một dự ánthực tế

Chân thành cảm ơn các anh chị trong team đã bỏ ra nhiều thời gian,công sức để hướng dẫn, hướng dẫn, giúp đỡ em tận tình trong khilàm quen môi trường mới cũng như trong việc tiếp cận kiến thứccông nghệ, kỹ năng lập trình và tư duy sản phẩm để có thể thựchiện tốt dự án cá nhân và dự án thực tế trong thời gian qua

Em 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áo cáo này

TP HCM, ngày 27 tháng 12 năm

2023

Trang 5

NHẬN XÉT CỦA KHOA

Trang 6

Trang 7

MỤC LỤC

LỜI MỞ ĐẦU 1

LỜI CẢM ƠN 2

NHẬN XÉT CỦA KHOA 3

MỤC LỤC 4

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

1.1 Giới thiệu Document Easy 5

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

1.3 Lịch làm việc khi thực tập tại công ty 7

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

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

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

2.2.1 Tuần 1 8

2.2.2 Tuần 2 9

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

2.3.1 Màn hình Đăng nhập 11

2.3.2 Màn hình Đăng ký 13

2.3.3 Màn hình Bản đồ 14

2.3.4 Màn hình Quản lý đơn đặt lịch 15

2.3.5 Màn hình Chi tiết đặt lịch 16

2.3.6 Màn hình Quản lý đơn tháng 17

2.3.7 Màn hình Đơn chờ duyệt 18

2.3.8 Màn hình Bán hàng 19

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

3.1 Điểm mạnh 20

3.2 Điểm yếu 20

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

TÀI LIỆU THAM KHẢO 22

Trang 8

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

1.1 Giới thiệu Document Easy

Hình 1.1 Logo Document Easy

Document Easy là một công ty khởi nghiệp đặt trụ sở tại làng Đạihọc Quốc gia Đây là một công ty product chuyên phát triển ứngdụng phần mềm cho hai nền tảng di động hàng đầu là App Store vàGoogle Play Ngoài ra, công ty cũng dành thời gian và tâm huyết vàoviệc phát triển các trang web và nhiều phần mềm khác thông quadịch vụ outsourcing

Tại Document Easy, con người được coi là trung tâm của mọi hoạtđộng Công ty không chỉ cung cấp đào tạo chuyên nghiệp mà còntạo ra một môi trường thú vị để mỗi thành viên có thể phát triển tối

đa những kỹ năng và tiềm năng cá nhân của mình Sứ mệnh củaDocument Easy không chỉ dừng lại ở việc tạo ra các ứng dụng xuấtsắc mà còn mơ ước xây dựng những ứng dụng được hàng triệu người

sử dụng trên toàn cầu Và điều đặc biệt, bạn sẽ có cơ hội để đóngdấu tên tuổi của mình trên những ứng dụng đó

Trang 9

1.2 Sản phẩm công ty

Alobo – Quản lý sân thể thao

Hình 1.2 Logo ứng dụng Alobo – Quản lý sân thể thao

Alobo - Giải pháp phần mềm cho việc quản lý sân cầu lông, sân bóng

đá, sân tennis, sân cỏ nhân tạo, sân bóng mini Ngoài ra phần mềmcòn giúp chủ sân quản lý nhân viên, chấm công cho từng nhân viên.Đặc biệt là quản lý tình trạng sân và tăng tỷ lệ lấp đầy sân trông từ

đó tăng doanh thu

Alobo – Đặt lịch sân thể thao

Hình 1.3 Logo ứng dụng Alobo – Đặt lịch sân thể thao

Trang 10

Ứng dụng giúp khách hàng có thể đặt trước sân thể thao mà không cần phải gặp mặt trực tiếp chủ sân Phần mềm hỗ trợ khách hàng tìm kiếm các sân thể thao, xem trạng thái của sân và theo dõi tình trạng đơn đặt lịch của mình.

1.3 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 6/7/2023 tới30/10/2023, các ngày làm việc trong tuần là: thứ 2 đến thứ 6 trong

hè và 3 ngày/tuần khi vào năm học (gồm: thứ 2, sáng thứ 3, sángthứ 4, thứ 5) Công việc hằng ngày bắt đầu từ lúc 8h đến 12h chobuổi sáng và 13h30 đến 17h30 cho buổi chiều Thời gian nghỉ trưakhoảng 1,5 tiếng Do còn là thực tập sinh, nên công ty rất thoải máicho em trong vấn đề thời gian làm việc, hỗ trợ em linh hoạt thời gianlàm cho việc học trên trường, miễn là vẫn đảm bảo đủ số buổi làmtrong tuần Mỗi tuần sẽ họp tiến độ tuần 1 lần vào sáng thứ 3, trongbuổi họp, em có thể trình bày ý kiến, trao đổi ý tưởng và nhậnfeedback từ các anh Vinh – mentor và các anh chị khác trong nhóm.Ngoài ra, mọi người sẽ cùng 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

Trang 11

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

2.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 nghengười phụ trách giới thiệu về công ty, quá trình thành lập và pháttriển, quy trình làm việc từ cao xuống thấp, cách thức tổ chức củacông ty, các phòng ban về IT, HR, … Ngoài ra, thực tập sinh cònđược giới thiệu về văn hóa làm việc trong công ty như thời gian đilàm, các quy định, cách sử dụng email trong công việc, …

Kết quả: hiểu thêm về văn hóa công ty, quá trình thành lập và pháttriể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.2 Nghiên cứu kỹ thuật

Trong 2 tuần đầu, em được training về cách thức làm việc, chu trình của một dự ánthực tế Tiếp đó là các kỹ năng liên quan đến công việc: làm quen về Jira, Git vàGithub Cuối cùng là các kỹ năng về kỹ thuật lập trình Flutter từ cơ bản đến nâng caocần thiết cho vai trò lập trình viên Flutter

2.2.1 Tuần 1

Nội dung: Tìm hiểu về Flutter và mô hình quản lý dự án Agile, Scrum

 Làm quen với phần mềm Jira

 Làm quen với mô hình quản lý dự án Agile, Scrum

 Tìm hiểu và sử dụng tốt các widget cơ bản của Flutter

 Tạo màn hình theo design có sẵn bằng Flutter

 Tìm hiểu về mô hình quản lý trạng thái BloC

Kết quả:

Trang 12

 Nắm được quy trình làm việc của một dự án thực tế và cách sửdụng phần mềm Jira cơ bản.

 Hiểu sâu hơn về Flutter và cách tối ưu khi sử dụng BloC Cụthể:

o Flutter cung cấp phương thức “setState()” để cập nhật lạitrạng thái của widget (thường là các màn hình) Khi đượcgọi, flutter sẽ gọi lại phương thức build() cho các widget

đó và cả các widget con của chúng Điều này dẫn đếnvấn đề: chỉ 1 widget con nhỏ trên màn hình cần cập nhậttrạng thái cũng khiến cho cả màn hình phải “build” lại.Gây tốn tài nguyên và giảm hiệu năng

o Bloc cung cấp một cách thức quản lý “state” của mànhình, và chỉ “build” lại khi cần thiết (tức là nếu 1 thànhphần nhỏ cần cập nhật thì chỉ cập nhật nó, không buildlại toàn bộ màn hình)

o Bloc còn giúp tách biệt phần xử lý Logic và UI khiến chocode dễ quản lý hơn

o Việc áp dụng Bloc sẽ tạo ra các thành phần độc lập giúp

dễ dàng mở rộng và phát triển Bằng cách chia nhỏ mànhình thành các thành phần khác nhau, việc xử lý chúngtrở nên dễ dàng hơn và code trở nên dễ đọc hơn

2.2.2 Tuần 2

Nội dung: Tiếp tục tìm hiểu về Flutter, ở tuần này, các kiến thức tìmhiểu được nâng cao hơn, áp dụng nhiều hơn ở dự án thực tế

 Thực hiện gọi API từ Flutter qua thư viện Dio

 Tìm hiểu và thực hiện lưu trữ dữ liệu local, sử dụng thư việnHive, Sqflite (kết hợp với việc gọi API, làm ứng dụng demo gọiAPI và lưu trữ dữ liệu dưới local)

 Tìm hiểu cách thức tương tác từ Flutter xuống native (Android,iOS) thông qua MethodChannel, EventChannel Viết chương

Trang 13

trình ví dụ (Ứng dụng hiển thị phần trăm pin và trạng thái pincủa máy).

 Tìm hiểu cách tạo một Clean architect project

 Tìm hiểu và sử dụng CustomPainter để vẽ hình lên màn hình(Làm ứng dụng vẽ hệ trục tọa độ Oxy và các hình học cơ bản).Kết quả:

 Biết cách sử dụng MethodChannel và EventChannel cho nhữngtác vụ đặc thù

 Học được cách gọi API và xử lý lỗi

 Nắm được cách tương tác với cơ sở dữ liệu local (cụ thể làHive)

 Nắm được cách tạo một Clean architect project Cụ thể, việc tổchức cấu trúc thư mục của một dự án Flutter sẽ dựa trên luồnglogic của ứng dụng:

o Đầu tiên là thư mục “presentation” (hoặc “screens”): Đây

là nơi chứa thành phần tạo nên giao diện của ứng dụng(UI code), và các Logic holder của chúng (Statemanagement - Bloc)

o Tiếp đến là thư mục “repositories”: Đây là nơi chứa cáclớp Repositories và Services Các lớp này chịu tráchnhiệm chính trong việc tương tác với APIs

o Sau đó là thư mục “models”: Như tên gọi, đây là thư mụcchứa các files định nghĩa các lớp mô hình, dùng để đạidiện cho dữ liệu của ứng dụng

o Ngoài ra, tùy từng trường hợp có thể có thêm một số thưmục khác như:

 “utils”: Chứa các lớp mang các hàm tiện ích nhưđịnh dạng ngày tháng, định dạng tiền tệ, chuẩn hóaString,…

Trang 14

 “widgets”: Chứa các widget dùng chung cho cả dự

Sau khi hoàn thành khóa training kiến thức, em được tham gia vào làm thử dự án thực

tế của công ty Các công việc ban đầu của em khá đơn giản, chỉ là tạo một số mànhình theo design, về sau thì độ khó của công việc cũng dần được nâng lên theo mức

độ thuần thục công việc

 Yêu cầu khả năng làm việc nhóm cao và liên tục

Dưới đây là một số công việc em đã làm (hoặc đã tham gia làm) ở dự án thực tế củacông ty

Lưu ý: Vì lý do bảo mật của dự án và yêu cầu từ phía công ty, nên em không thể mô tả toàn bộ nội dung của công việc Sau khi xin phép, công ty cho phép em báo cáo gồm những nội dung như dưới đây.

Alobo – Đặt lịch sân thể thao

App Store: Alobo – Đặt lịch sân thể thao on the App Store

Trang 15

Google Play Store: Alobo – Đặt lịch sân thể thao on the Google Play Store

2.3.1 Màn hình Đăng nhập

Hình 2.1 Màn hình đăng nhập ứng dụng Đặt lịch sân thể thao

Trang 16

Hình 2.2 Màn hình đăng nhập ứng dụng Quản lý sân thể thao

 Chức năng: Xác thực người dùng trước khi vào ứng dụng

 Tổng thời gian: 2 ngày (Chưa bao gồm thời gian fix bug và update) Gồm:

o Tạo giao diện: 0,5 ngày

Trang 17

2.3.2 Màn hình Đăng ký

Hình 2.3 Màn hình đăng ký ứng dụng Đặt lịch sân thể thao

 Chức năng: Giúp người dùng tạo tài khoản và mật khẩu cho ứng dụng

 Tổng thời gian: 2 ngày (Chưa bao gồm thời gian fix bug và update) Gồm:

o Tạo giao diện: 0.5 ngày

o Xử lý logic: 1,5 ngày

 Khó khăn gặp phải và cách xử lý:

o Giao diện bị lỗi trên các thiết bị có kích thước khác nhau: Xử lýresponsive cho màn hình

Trang 18

2.3.3 Màn hình Bản đồ

Hình 2.4 Màn hình Bản đồ ứng dụng Đặt lịch sân thể thao

 Chức năng: Hiển thị địa điểm các sân thể thao đã đăng ký trên ứng dụng dướidạng bản đồ Google Maps Người dùng có thể xem nhanh danh sách các sâncách mình một khoảng cách nhất định

 Tổng thời gian: 7 ngày (Chưa bao gồm thời gian fix bug và update) Gồm:

o Đọc và tìm hiểu tài liệu về Google Maps và cách cài đặt: 2 ngày

o Tạo giao diện: 1 ngày

o Xử lý logic: 4 ngày

 Khó khăn gặp phải và cách xử lý:

o Thiếu kinh nghiệm do lần đầu làm việc với Google Maps, gặp nhiều lỗikhi triển khai Google Maps trong ứng dụng: Nghiên cứu thêm tài liệu vềGoogle Maps API và tham khảo hướng dẫn từ nhiều nguồn khác nhau

Alobo – Quản lý sân thể thao

Trang 19

App Store: Alobo - Quản lý sân thể thao on the App Store

Google Play Store: Alobo - Quản lý sân thể thao on the Google Play Store

2.3.4 Màn hình Quản lý đơn đặt lịch

Hình 2.5 Màn hình Quản lý đơn đặt lịch

 Chức năng: Hiển thị danh sách các đơn đặt lịch đang hoạt động của sân (Cácđơn đã được chủ sân duyệt và chưa hoàn thành hoặc chưa hủy)

 Tổng thời gian: 4 ngày (Chưa bao gồm thời gian fix bug và update) Gồm:

o Tạo giao diện: 2 ngày

o Xử lý logic: 2 ngày

 Khó khăn gặp phải và cách xử lý:

o Với mỗi trạng thái của đơn, đòi hỏi phải có một giao diện tương ứngriêng biệt nhưng không khác nhau quá nhiều, nếu chia mỗi loại thànhmột lớp khác nhau thì nhiều chỗ sẽ bị lặp lại code, khả năng mở rộngsau nay khó khăn: Áp dụng các mẫu thiết kế đã học để tối giản việc viết

mã, tái sử dụng những chỗ giống nhau bằng template method design

Trang 20

2.3.5 Màn hình Chi tiết đặt lịch

Hình 2.6 Màn hình Chi tiết đơn đặt lịch (Trạng thái đã hủy)

 Chức năng: Hiển thị thông tin chi tiết của đơn đặt lịch

 Tổng thời gian: 4 ngày (Chưa bao gồm thời gian fix bug và update) Gồm:

o Tạo giao diện: 2 ngày

o Xử lý logic: 2 ngày

 Khó khăn gặp phải và cách xử lý:

o Với mỗi trạng thái của đơn, đòi hỏi phải có một giao diện tương ứngriêng biệt nhưng không khác nhau quá nhiều, nếu chia mỗi loại thànhmột lớp khác nhau thì nhiều chỗ sẽ bị lặp lại code, khả năng mở rộngsau nay khó khăn: Áp dụng các mẫu thiết kế đã học để tối giản việc viết

mã, tái sử dụng những chỗ giống nhau bằng template method designpattern

Trang 21

o Giao diện phức tạp với nhiều thành phần xử lý, gặp nhiều lỗi về giaodiện: Nghiên cứu tài liệu hướng dẫn từ các nguồn, xin ý kiến từ mentor

 Tổng thời gian: 1 ngày (Chưa bao gồm thời gian fix bug và update) Gồm:

o Tạo giao diện: 0,5 ngày

o Xử lý logic: 0.5 ngày

 Khó khăn gặp phải và cách xử lý: Do có nhiều kinh nghiệm hơn so với lúc đầu,nên khi thực hiện tính năng này, em không gặp nhiều khó khăn Dẫn đến thờigian làm cũng trở nên ít hơn và công việc cũng thuận lợi hơn

Trang 22

2.3.7 Màn hình Đơn chờ duyệt

Hình 2.8 Màn hình Đơn chờ duyệt

 Chức năng: Hiển thị danh sách các đơn đặt lịch đang chờ duyệt

 Tổng thời gian: 1 ngày (Chưa bao gồm thời gian fix bug và update) Gồm:

o Tạo giao diện: 0,5 ngày

o Xử lý logic: 0,5 ngày

 Khó khăn gặp phải và cách xử lý: Do có nhiều kinh nghiệm hơn so với lúc đầu,nên khi thực hiện tính năng này, em không gặp nhiều khó khăn Dẫn đến thờigian làm cũng trở nên ít hơn và công việc cũng thuận lợi hơn

Trang 23

2.3.8 Màn hình Bán hàng

Hình 2.9 Màn hình Bán hàng

 Chức năng: Giúp chủ sân tạo các đơn hàng dịch vụ trong ngày

 Tổng thời gian: 9 ngày (Chưa bao gổm thời gian fix bug và update) Gồm:

o Tạo giao diện: 4 ngày

o Giao diện màn hình phức tạp với nhiều hành động khác nhau

Ngoài các nhiệm vụ được liệt kê phía trên, trong quá trình tham gia vào dự án, emcũng nhận được một số task nhỏ liên quan đến việc chỉnh sửa một số giao diện màn

Ngày đăng: 15/05/2024, 09:07

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

TÀI LIỆU LIÊN QUAN

w