Tải bản đầy đủ (.pdf) (27 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.08 MB, 27 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM </b>

<b>BÁO CÁO THỰC TẬP Flutter Developer </b>

<b>Công ty thực tập: Document Easy Người phụ trách: Nguyễn Chí Kiên </b>

<b>Thực tập sinh: Nguyễn Văn Pháp </b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>LỜI MỞ ĐẦU </b>

Trong cuộc cách mạng công nghiệp 4.0, cơng nghệ thơng tin nói chung và ngành Cơng nghệ phần mềm nói riêng ln là nhân tố đóng vai trị quan trọng trong q trình phát triển của xã hội.

Cơng nghệ ứng dụng di động, hay công nghệ sản xuất các ứng dụng di động đã phục vụ hầu hết các nhu cầu của con người từ bán hàng, cung cấp kiến thức đến thông tin liên lạc, ... Hiện nay đã có đến hơn 1.5 tỷ ứng dụng di động nhưng nhu cầu tạo ra những ứng dụng mới vẫn chưa có dấu hiệu giảm.

Do đó, một ứng dụng di động muốn được nhiều người sử dụng phải đáp ứng được yếu tố hình thức và nội dung. Làm thế nào để sản phẩm tạo ra đạt chất lượng cao ở hai yếu tố trên ln làm bất kì một đội ngũ phát triển mobile nào cũng cần phải suy nghĩ đau đầu. Để thử thách bản thân trong ngành công nghiệp web, em đã lựa chọn Flutter developer là định hướng cho việc học cũng như nghề nghiệp trong tương lai.

Sau những năm tháng trong môi trường đại học, với mong muốn áp dụng những kiến thức đã học và có được trải nghiệm trong môi trường thực tế, em đã quyết định tham gia vào Document Easy – một môi trường lý tưởng và chuyên nghiệp để thực hiện dự định.

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LỜI CẢM ƠN </b>

Em xin trân trọng gửi lời cảm ơn anh Nguyễn Chí Kiên đã 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ắn nhưng nhờ sự chỉ dẫn nhiệt tình của anh Kiên, em đã tiếp thu những kiến thức quan trọng để có thể tham gia một dự án thực tế.

Chân thành cảm ơn Document Easy và các anh chị trong team Document Easy đã 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 khi làm quen môi trường mới cũng như trong việc tiếp cận kiến thức cơng nghệ, kỹ năng lập trình và tư duy sản phẩm để có thể thực hiệ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 30 tháng 12 năm 2023

<b>Sinh viên thực hiện NGUYỄN VĂN PHÁP </b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>NHẬN XÉT CỦA KHOA </b>

....

....

....

....

....

....

....

....

....

....

....

....

....

....

....

....

....

....

....

....

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

....

....

....

....

....

....

....

....

....

....

....

....

....

....

....

....

....

....

....

....

....

....

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>MỤC LỤC </b>

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

1.1. Giới thiệu cơng ty Document Easy ... 1

1.2. Sản phẩm công ty ... 2

1.2.1. Extract Image From Video: ... 3

1.2.2. Office to PDF: PDF Converter: ... 2

1.2.3. Media Editor: ... 2

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

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

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

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

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

Hình 2.3: Trang cá nhân của khách hàng (Salon Việt) ... 8

Hình 2.4: Hình ảnh chọn chi nhánh và đặt lịch của khách (Salon Việt) ... 9

Hình 2.5: Màn hình chấm công và quản lý nhân viên của salon (Salon Việt) ... 10

Hình 2.6: Màn hình quản lý đặt lịch và voucher của salon (Salon Việt) ... 11

Hình 2.7: Một số hình ảnh phần khách hàng của Salon Việt ... 11

Hình 2.7: Màn hình đặt lịch (Alobo) ... 12

Hình 2.8: Màn hình tìm kiếm sân (Alobo) ... 13

Hình 2.9: Một vài màn hình minh họa phía quản lý (Alobo) ... 15

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

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

<b>1.1. Giới thiệu cơng ty Document Easy </b>

<i>Hình 1.1. Logo Document Easy </i>

- Tên gọi: Document Easy.

- Lịch sử hình thành: Cơng ty được thành lập từ năm 2019. - Cơng nghệ chính trong cơng ty: Mobile.

- Địa chỉ: Phịng I.115B, Nhà A, Khu Công nghệ phần mềm, Đường nội bộ Đại học Quốc gia TP. Hồ Chi Minh, Khu phố 6, Phường Linh Trung, Thành Phố Hồ Chí Minh, Việt Nam.

- Website công ty: - Điện thoại: 0967 373 003

- Mô tả: Document Easy được thành lập từ năm 2019 và là công ty product chuyên phát triển phần mềm cho nền tảng mobile bao gồm AppStore vs Google Play. Ngoài ra cơng ty cịn phát triển cả các trang web và nhiều phần mềm khác về outsourcing. Ban đầu, công ty hướng tới công nghệ native, chia thành ứng dụng riêng cho Android và iOS, với mục tiêu chủ yếu là thao tác trên file và video. Sau đó, cơng ty chuyển đổi sang framework Flutter để tối ưu hóa q trình phát triển và cung cấp trải nghiệm người dùng linh hoạt hơn. Hiện tại công ty tập trung vào

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

phát triển ứng dụng đặt lịch mang lại sự thuận tiện và hiệu quả trong quản lý thời gian cho người dùng.

o Chuyển đổi ODT, ODS, ODP sang PDF.

o Trình quản lý tệp: Nhập tệp, tạo thư mục, nén/giải nén, sao chép và di chuyển tệp, ....

o Khơng có giới hạn về kích thước tệp hoặc số lượng tệp được chuyển đổi.

- Link: Office to PDF: PDF Converter - Apps on Google Play

<b>1.2.2. Media Editor: </b>

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<i>Hình 1.3: Ứng dụng Media Editor </i>

- Ứng dụng giúp ạo - chỉnh sửa - áp dụng hiệu ứng - thêm nhạc vào tất cả video, Mp3 & Tất cả các tệp phương tiện. Sau đó xuất thành video chất lượng cao để chia sẻ trên TikTok, Facebook, Instagram, …

- Link: Media Editor - Apps on Google Play

<b>1.2.3. Extract Image From Video: </b>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

<i>Hình 1.4: Ứng dụng Extract Image From Video </i>

- Ứng dụng giúp trích xuất hình ảnh từ video và chỉnh sửa - áp dụng bộ lọc ảnh để chia sẻ trên Facebook, Instagram.

<b>1.3. Lịch làm việc khi thực tập tại công ty </b>

Em tham gia làm việc tại công ty bắt đầu từ ngày 06/07/2023 tới 24/09/2023, các ngày làm việc trong tuần là từ thứ 2 tới thứ 6. Công việc hằng ngày bắt đầu từ lúc 8h sáng đến 17h30. Thời gian nghỉ trưa khoảng 1 tiếng 30 phút. Sau mỗi task thực hiện, em sẽ báo cáo tiến độ công việc, đặt câu hỏi và nhận chia sẻ, giải đáp từ anh hướng dẫn, đưa ra kế hoạch cho các task tiếp theo. Mỗi tuần sẽ họp tiến độ tuần 1 lần vào sáng thứ 2, 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.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

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

<b>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: 2 ngày </b>

<b>Nội dung: giới thiệu về công ty, cách tổ chức của công ty, được nghe người </b>

phụ trách giới thiệu về 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, … Ngồ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 đi làm, các quy định, cách sử dụng email trong công việc, …

<b>Kết quả: hiểu thêm về cách thức làm việc, những qui định tại Document Easy </b>

và cách thức sử dụng Jira để quản lý cơng việc, q trình thành lập và phát triển. Có thêm các kỹ năng về việc báo cáo hàng tuần, làm việc có kế hoạch, có kỷ luật, có trách nhiệm hơn.

<b>2.2. Nghiên cứu kỹ thuật Thời gian: 2 tuần. </b>

<b>Nội dung: Thực hiện theo khung chương trình thực tập mà cơng ty đưa ra. </b>

<b>- Giai đoạn đầu tiên: Thực hiện code giao diện và xử lý theo yêu cầu. </b>

- Giai đoạn 2: Thực hiện reserch tìm hiểu và thao tác xử lý backend. Cụ thể: o Tìm hiểu BLoC State Management (BlocProvider, BlocConsumer,

BlocBuilder, BlocListener, RepositoryProvider, MultiRepositoryProvider, …). Phân tích được luồng chạy của chương trình khi áp dụng BloC.

o Tìm hiểu về cách gọi API sử dụng thư viện dio, xử lý các exception liên quan. Xây dựng 1 ứng dụng tin tức nhỏ, sử dụng BLoC và dio.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<i>Hình 2.1: Kiến trúc BLoc </i>

o Tìm hiểu về cách lưu trữ dữ liệu local sử dụng một số thư viện như: Hive, Sqflite, Floor. Phân tích ưu nhược điểm của mỗi cái. Sử dụng dữ liệu ở local làm cache của ứng dụng. Từ ứng dụng tin tức của bài trước, phát triển thêm tính năng lưu trữ. Chọn 1 thư viện mà bản thân cảm thấy tiện sử dụng nhất để lưu dữ liệu. (Xử lý tất cả Exception có thể có) o Tìm hiểu cách gọi qua native (Android, iOS) thông qua MethodChannel, EventChannel. Viết chương trình gọi qua native cơ bản, tự chọn chức năng, đủ 2 phương thức MethodChannel và EventChannel.

o Tìm hiểu cách tạo clean architect project và áp dụng nó vào bài đã làm.

- Giai đoạn 3: Được hướng dẫn sử dụng Jira để làm dự án thức tế.

<i>Hình 2.2: Jira Software </i>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<b>Kết quả: Sau quá trình trainning, bản thân biết và áp dụng BloC vào dự án thực tế </b>

cũng như đồ án trên trường. Bên cạnh đó, biết được cách làm việc với API thông qua thư viện dio hoặc biết được các thư viện có thể thao tác lưu dữ liệu ở local. Cuối cùng là biết cách tổ chức 1 project sao cho có tính tổ chức, clean code và biết cách sử dụng

<b>phần mềm quản lý dự án phần mềm. </b>

<b>2.3. Tham gia dự án thực tế 2.3.1. Tổng quan dự án: </b>

<b>- Tên dự án: Ứng dụng đặt lịch. - Công nghệ sử dụng: Flutter. </b>

<b>a. Salon Việt: </b>

<b>- Ứng dụng đặt và quản lý lịch dành cho các tiệm cắt tóc. </b>

- Khách hàng truy cập vào ứng dụng và chọn chi nhánh của cửa hàng mình muốn và thực hiện đặt lịch. Bên cạnh đó, người dùng có thể quản lý được lịch trình của

<b>bản thân, quản lý các voucher mà salon đưa cho. </b>

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<i>Hình 2.3: Trang cá nhân của khách hàng (Salon Việt) </i>

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b> </b>

<i>Hình 2.4: Hình ảnh chọn chi nhánh và đặt lịch của khách (Salon Việt) </i>

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

- Salon: sẽ quản lý các lịch đặt cụ thể trong từng chi nhánh, quản lý thơng tin của salon, quản lý voucher (Thêm, xóa, chỉnh sửa), quản lý nhân viên (chấm công),

<b>quản lý danh sách khách hàng của salon, thống kế. </b>

<i>Hình 2.5: Màn hình chấm cơng và quản lý nhân viên của salon (Salon Việt) </i>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>b. Alobo: </b>

- Ứng dụng đặt và quản lý lịch dành cho các sân thể thao (cầu lông).

- Khách hàng truy cập vào ứng dụng và chọn sân mà mình muốn và thực hiện đặt lịch. Bên cạnh đó, người dùng có thể quản lý được lịch trình của bản thân và nhận thơng báo xác nhận từ sân đó.

<i>Hình 2.7: Màn hình đặt lịch (Alobo) </i>

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<i>Hình 2.8: Màn hình tìm kiếm sân (Alobo) </i>

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

- Sân: sẽ quản lý các lịch đặt cụ thể (duyệt đơn), việc bán hàng, quản lý đơn tháng, quản lý nhân viên (chấm công), quản lý danh sách khách hàng của salon, thống kế.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

<i>Hình 2.9: Một vài màn hình minh họa phía quản lý (Alobo) </i>

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

- Mơ hình hóa giao diện. - Quyết định các công nghệ

sử dụng.

- Chia giai đoạn thực hiện

Anh Nguyễn Chí Kiên (CEO)

Anh Quang Vinh (team leader)

- Kết nối cơ sở dữ liệu (firebase).

- Thực hiện báo cáo công việc mỗi cuối tuần.

Anh Quang Vinh (team

7

- Thực hiện unit test và chỉnh sửa để hoàn thành phiên bản demo cho khách hàng.

Anh Quang Vinh (team leader)

- Góp ý chỉnh sửa bản thiết kế và chức năng.

- Thực hiện xây dựng ui và thay đổi chức năng theo yêu cầu khách hàng (code) - Thực hiện unit test trước khi

đi demo lần 2 cho khách hàng.

Anh Nguyễn Chí Kiên (CEO)

Anh Quang Vinh (team leader)

Chị Tiểu Vi (BA)

100%

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

11 – 12

- Họp mở rộng ứng dụng sang lĩnh vực đặt lịch cho sân cầu lông.

- Thực hiện xây dựng và chỉnh sửa UI theo yêu cầu của khách hàng.

Anh Nguyễn Chí Kiên (CEO)

Anh Quang Vinh (team leader)

- Qua dự án thực tế đã tham gia, bản thân được tham gia vào 1 quá trình phát triển phần mềm một cách có tổ chức, được chỉ dẫn để cải thiện kĩ năng lập trình rất nhiều và học được nhiều thứ như sử dụng phần mềm quản lý task (Jira), báo cáo tiến độ hàng tuần, phương pháp Agile, …

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

<b>CHƯƠNG 3: TỔNG KẾT </b>

Quãng thời gian thực tập tại Document Easy đã giúp em cải thiện bản thân rất nhiều trong quy trình làm việc thực tế, tác phong của người kỹ sư phần mềm. Được làm việc tại đây, em đã học thêm được kỹ năng mềm sử dụng mail, quản lý ticket, làm việc nhóm, giao tiếp với cấp trên, … và quan trọng nhất là cải thiện được kĩ năng lập trình của mình (code và kiến thức về framework flutter).

Khi tham gia vào dự án thực tế, em cũng hoàn thành tốt các tác vụ đúng hạn và đạt chất lượng tốt.

<b>3.1. Điểm mạnh </b>

- Kỷ luật: bản thân luôn tuân thủ đúng giờ giấc và nội quy trong công ty khá tốt. - Chun mơn: bản thân ln hồn thành đủ và đúng thời gian các task được giao. - Giao tiếp: bản thân đã làm việc nhóm và giao tiếp với mọi người trong công ty

G1 Nắm bắt được xu hướng, nhu cầu xã hội và tính đặc thù của doanh nghiệp.

G2 <sup>Hiểu và giải thích được các khái niệm cơ bản, thuật ngữ và sơ đồ hệ thống </sup>trong dự án.

G3 <sup>Nắm được quy trình, phương pháp và cơng nghệ phát triển sản phẩm phần </sup>mềm tại doanh nghiệp.

G4 <sup>Có khả năng tìm hiểu vấn đề, mơ hình hóa vấn đề và tham gia giải quyết </sup>vấn đề.

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

G5 Phát triển kỹ năng tư duy, kỹ năng làm việc nhóm và kỹ năng trình bày. G6 Đọc, hiểu các tài liệu và giao tiếp bằng tiếng Anh.

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

<b>TÀI LIỆU THAM KHẢO </b>

1. Tài liệu Bloc State Management Library (bloclibrary.dev): Link: Bloc State Management Library (bloclibrary.dev)

2. Tài liệu flutter:

Link: Flutter - Build apps for any screen

</div>

×