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

17 2 0
Lập trình ứng dụ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 ĐA NỀN TẢNG VỚI FLUTTER Công ty thực tập công ty TNHH Đầu tư Giải pháp Công nghệ Intesco Người hướng dẫn[.]

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 ĐA NỀN TẢNG VỚI FLUTTER Công ty thực tập: công ty TNHH Đầu tư Giải pháp Công nghệ Intesco Người hướng dẫn: anh Huỳnh Ngọc Hưng Thực tập sinh: Huỳnh Thị Minh Nhực Tp Hồ Chí Minh, tháng 12 năm 2022 LỜI MỞ ĐẦU Mỗi năm có hàng nghìn startup với ý tưởng kinh doanh độc đáo đời toàn giới, đặc biệt ý tưởng cơng nghệ Để thực hóa nhanh ý tưởng đưa thị trường, công ty công nghệ thường ưu tiên lựa chọn loại công cụ hỗ trợ phát triển ứng dụng nhanh: Cross-platform app Flutter tảng cross-platform bật Nó giúp tiết kiệm nhiều thời gian, cơng sức tiền bạc để tạo ứng dụng chạy hai tảng Android Ios Các ứng dụng Cross-platform app chia sẻ 80% codebase để xây dựng đa tảng Vì vậy, để xuất ứng dụng tảng khác, lập trình viên cần phải thay đổi 20% code Đối với trường hợp giải pháp native, lập trình viên cần phải viết lại khoảng 90% code cho tảng mà họ hướng tới Với ưu điểm đó, lập trình ứng dụng với flutter đem lại nhiều hội việc làm với tương lai đầy hứa hẹn Sau ba năm học tập trường, mong muốn có thêm kinh nghiệm thực tế, muốn tham gia mơi trường chun nghiệp, em có dự định thực tập hè Vì vậy, em định chọn Intesco - môi trường lý tưởng, đại, chuyên nghiệp - nơi giúp em thực dự định LỜI CẢM ƠN Trân trọng gửi lời cảm ơn Công ty TNHH Đầu tư Giải pháp Công nghệ - INTESCO tạo điều kiện cho em có hội thực tập cơng ty Chỉ thời gian ngắn, nhờ dẫn nhiệt tình nhóm trainer, em học nhiều kiến thức để phát triển ứng dụng di động với Flutter Chân thành cảm ơn anh nhóm trainer bỏ nhiều thời gian,cơng sức để hướng dẫn chúng em hồn thành đợt thực tập Đặc biệt cảm ơn anh Vĩnh training flutter, hướng dẫn, giúp đỡ cho chúng em tận tình khó khăn cơng việc, đến khó khăn việc làm quen với mơi trường mới; cảm ơn anh Hưng training kỹ đọc tài liệu debug lỗi, hỗ trợ chúng em nhiều vấn đề kỹ thuật thời gian qua Cũng xin cảm ơn thầy cô 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 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 TNHH Đầu Tư Giải Pháp Công Nghệ - Intesco Sản phẩm công ty Chương 2: Nội dung thực tập Tìm hiểu cơng ty kỹ công ty Nghiên cứu kỹ thuật 2.1 Các công cụ làm việc 2.2 Giới thiệu tổng quan Flutter 2.3 Hướng dẫn sử dụng GetX 2.4 Hướng dẫn cách làm việc với API 10 2.5 Giới thiệu base code chuẩn, coding convention cách tối ưu performance 11 Project thực 13 Lịch làm việc 13 Chương 3: Chi tiết ứng dụng 14 Giới thiệu IMS mobile app 14 1.1 Tổng quan 14 1.2 Nền tảng dự án 14 1.3 Phạm vi dự án 14 Thực 15 Kết 15 TÀI LIỆU THAM KHẢO 16 TỔNG KẾT 17 Chương 1: Giới thiệu công ty thực tập Giới thiệu công ty TNHH Đầu Tư Giải Pháp Công Nghệ - Intesco - Được thành lập từ năm 2003, Công ty TNHH Đầu Tư Giải Pháp Công Nghệ (INTESCO) công ty hàng đầu lĩnh vực Thụ Tinh Trong Ống nghiệm (Invitro Fertilization) Việt Nam - INTESCO cung cấp dịch vụ tồn diện nhằm hỗ trợ hoạt động phịng thí nghiệm sinh hóa – vi sinh, di truyền – sinh học phân tử đặc biệt lĩnh vực hỗ trợ sinh sản Đội ngũ chuyên gia kỹ thuật Công ty trang bị tảng chuyên môn cập nhập công nghệ nhằm đáp ứng nhu cầu, địi hỏi q trình phát triển lĩnh vực hỗ trợ sinh sản công nghệ sinh học Sản phẩm công ty - Intesco nhà cung cấp trang thiết bị, vật tư tiêu hao hóa chất thức cho bệnh viện, trung tâm Hỗ Trợ Sinh Sản nước như: Từ Dũ, Phụ Sản Quốc Tế, Vạn Hạnh, An Sinh, Phụ sản Bình Dương, Hùng Vương, Trung ương Huế, Đa khoa Bình Định, Bệnh viện Bưu Điện, Bệnh viện Phụ sản Hà Nội, Bệnh viện Phụ sản Trung ương… - Ngồi lĩnh vực Hỗ Trợ Sinh Sản, INTESCO cịn tiến sâu vào lĩnh vực Công nghệ sinh học, sinh học, sinh hóa, hóa học, thực phẩm, dược phẩm,…Trong quan trọng tư vấn thiết kế phòng Lab, cung cấp trang thiết bị trọn gói Với trang thiết bị hãng khẳng định vị trí Thế giới Việt nam như: Shin Saeng (Hàn Quốc), Nichiryo (Nhật), Hirayama (Nhật), EverMed (Italia), Eppendorf ( Đức ), Ilshin (Hà Lan),… - Ngoài ra, INTESCO cung cấp hệ thống quản lý lab IVF chuyên nghiệp đầu tiên, Việt Nam – IMS IMS đáp ứng nhu cầu quản lý nghiệp vụ liên quan đến hoạt động lab IVF, bệnh viện chuyên khoa IVF Chương 2: Nội dung thực tập Trong tháng thực tập, công ty đem đến lịch trình training kiến thức liên quan đến việc lập trình ứng dụng Flutter, kiến thức liên quan đến IVF, cách tổ chức, làm việc hiệu chuyên nghiệp phù hợp với môi trường công ty Tìm hiểu cơng ty kỹ công ty - Thời gian: ngày - Nội dung: Giới thiệu công ty, cách tổ chức công ty Mentor giới thiệu lịch sử công ty, tổ chức hoạt động công ty Đọc tài liệu phần mềm tìm hiểu thêm kiến thức liên quan đến IVF - Kết quả: - Hiểu thêm công ty Intresco, q trình thành lập phát triển - Có thêm kỹ việc sử dụng email cơng việc, làm việc có kế hoạch, có kỷ luật, có trách nhiệm - Hiểu văn hóa quy trình làm việc cơng ty - Hiểu quy trình điều trị hỗ trợ sinh sản - Nắm cách hoạt động phần mềm IMS - Nắm cách bảo mật, an tồn thơng tin làm việc công ty Nghiên cứu kỹ thuật 2.1 Các công cụ làm việc - Thời gian: ngày - Nội dung: Tìm hiểu cơng cụ sử dụng q trình làm việc Trong thời gian này, mentor hướng dẫn thực tập sinh tìm hiểu cơng cụ giúp ích cho công việc sau Một số phần mềm số như: ▪ Meld: Meld cơng cụ Diff Merge nhẹ có giao diện Nó cho phép người dùng so sánh phiên tập tin, thư mục phục vụ việc quản lý version chương trình Được xây dựng đặc biệt dành cho lập trình viên, kèm với tính sau: • So sánh hai chiều ba chiều tệp thư mục • Cập nhật so sánh người dùng có thay đổi nội dung • Hỗ trợ cho việc merge dễ dàng cách sử dụng chế độ tự động merge hành động dựa block (khối) nội dung thay đổi • So sánh dễ dàng nhờ việc hình ảnh hóa phần khác • Hỗ trợ Git, Mercurial, Subversion, Bazaar nhiều loại khác ▪ Xcode: phát triển phần mềm tích hợp Apple phát triển chạy hệ điều hành Mac để lập trình viên phát triển phần mềm chạy hệ điều hành Mac iOS ▪ Vs code: IDE hỗ trợ phát triển ứng dụng đa tảng ▪ Telegram, skype: công cụ giao tiếp công việc - Thực hiện: tìm hiểu, sử dụng cơng cụ - Kết quả: ▪ Ứng dụng công cụ vào công việc cách hiệu ▪ Cài đặt công cụ cần thiết để làm việc 2.2 Giới thiệu tổng quan Flutter - Thời gian: tuần - Nội dung: Giới thiệu flutter, ngôn ngữ Dart, IDE hỗ trợ, state layout flutter ▪ Flutter: Flutter tảng hỗ trợ phát triển cho ứng dụng đa cho hệ iOS Android Google phát triển Nó sử dụng vô phổ biến cho nhiệm vụ tạo ứng dụng gốc dành cho Google • Flutter thường bao gồm thành phần quan trọng sau: o Một SDK (Software Development Kit): Đây sưu tập công cụ giúp bạn phát triển ứng dụng Bao gồm cơng cụ giúp bạn biên dịch mã thành mã máy gốc (mã cho iOS Android) o Một Framework (UI Library based on widgets): Đây tập hợp thành phần giao diện người dùng (UI) tái sử dụng (button, text inputs, slider, v.v.) ▪ Dart: ngôn ngữ lập trình đa mục đích ban đầu phát triển Google sau Ecma (ECMA-408) phê chuẩn làm tiêu chuẩn Nó sử dụng để xây dựng ứng dụng web, server, máy tính để bàn thiết bị di động Dart ngôn ngữ hướng đối tượng, xác định theo lớp, với chế garbage-collected, sử dụng cú pháp kiểu C để dịch mã tùy ý sang JavaScript Nó hỗ trợ interface, mixin, abstract, generic, static typing sound type (2 cuối hiểu type-safe) Dart ngôn ngữ mã nguồn mở miễn phí, phát triển GitHub Hiện Dart release phiên 2.2 - Thực hiện: Đọc tài liệu hướng dẫn, thực hành build ui theo design Kết quả: ▪ Nâng cao kỹ lập trình với Flutter ▪ Có kiến thức quan trọng cho việc lập trình ứng dụng di động sau ▪ Ngồi cịn biết thêm số quy tắc việc viết code cho chuẩn, dễ đọc, dễ hiểu 2.3 Hướng dẫn sử dụng GetX - Thời gian: tuần - Nội dung: giới thiệu package GetX, cách dùng GetX việc quản lý state, routing, theme, color, language ▪ GetX: GetX Flutter thư viện tiện ích dùng nhiều lập trình Flutter GetX cung cấp giải pháp mạnh mẽ tiện lợi như: quản lý state có performance cao, dependency injection thơng minh, quản lý route nhanh hiệu - Thực hiện: ▪ Tự tìm hiểu hỏi mentor vấn đề chưa nắm rõ ▪ Đọc source code làm theo hướng dẫn tạo ứng dụng sử dụng GetX quản lý state, color, language, routing, theme - Kết quả: ▪ Hiểu rõ GetX, lý sử dụng GetX dự án ▪ Xây dựng ứng dụng sử dụng GetX quản lý state, color, language, routing, theme 2.4 Hướng dẫn cách làm việc với API - Thời gian: tuần - Nội dung: giới thiệu Restful API, package Dio ▪ Restful API: • RESTful API tiêu chuẩn dùng việc thiết kế API cho ứng dụng web (thiết kế Web services) để tiện cho việc quản lý resource Nó trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, liệu động…), bao gồm trạng thái tài nguyên định dạng truyền tải qua HTTP • REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động nêu sử dụng phương thức HTTP riêng o GET (SELECT): Trả Resource danh sách Resource o POST (CREATE): Tạo Resource o PUT (UPDATE): Cập nhật thông tin cho Resource o DELETE (DELETE): Xoá Resource 10 ▪ Package Dio: Http Client mạnh mẽ cho ngơn ngữ Dart có hỗ trợ Interceptors, Global configuration, FormData, Request Cancellation, File downloading, Timeout - Thực hiện: đọc hướng dẫn tạo ứng dụng sử dụng api Git Kết quả: ▪ Hiểu rõ resful api ▪ Biết cách sử dụng package Dio ▪ Xây dựng ứng dụng sử dụng package để tạo request 2.5 Giới thiệu base code chuẩn, coding convention cách tối ưu performance Thời gian: tuần - Nội dung: giới thiệu base code chuẩn để phát triển ứng dụng, lint rules, lưu ý để cải thiện performance ▪ Base code: 11 ▪ Package flutter_lints: sử dụng flutter_lints để giúp code style khơng giúp code chặt chẽ mà cịn quy ước chung để code teamwork ▪ Một số cách cải thiện performance: • Hạn chế xây dựng lặp lặp lại widget dung nhiều lần • Sử dụng const • Tránh rebuild widget khơng cần thiết animatedBuilder 12 • Loại bỏ thư viện khơng dùng đến • Lựa chọn widget hợp lí - Thực hiện: xây dựng ứng dụng Gallery với google photo api - Kết quả: ▪ Biết cách xây dựng basecode chuẩn ▪ Hiểu vận dụng cách cải thiện performance ▪ Biết cách viết code theo rules dễ hiểu dễ đọc Project thực Sau tuần làm quen với công ty học kỹ việc phát triển ứng dụng đa tảng với Flutter, thực tập sinh mentor hướng dẫn thực project công ty Chi tiết project nói rõ phần sau Lịch làm việc Tuần Công việc Người hướng dẫn - Tìm hiểu lịch sử, cách làm việc cơng ty Tìm hiểu cơng cụ làm việc Anh Huỳnh Ngọc Hưng - Tìm hiểu tổng quan flutter - Tìm hiểu Dart Anh Hồ Xuân Vĩnh - Tìm hiểu GetX - Ứng dụng GetX vào ứng dụng để quản lý routing, state, theme, language, color… Anh Hồ Xuân Vĩnh - Tìm hiểu Resful API - Tìm hiểu Dio - Xây dựng ứng dụng Gallery với google photo api Anh Hồ Xuân Vĩnh - Giới thiệu, đọc source base code chuẩn - Tìm hiểu cách tối ưu hóa performance flutter - Tìm hiểu flutter convention Anh Hồ Xuân Vĩnh 6, 7, 8, 9, 10 - Thực project theo hướng dẫn mentor Anh Hồ Xuân Vĩnh Anh Huỳnh Ngọc Hưng Chương 3: Chi tiết ứng dụng 13 Giới thiệu IMS mobile app 1.1.Tổng quan Với mong muốn mang trải nghiệm người dùng tốt hơn, theo dõi vài hoạt động điều trị (bệnh nhân) bệnh viện Intesco hình thành ý tưởng phát triển ứng dụng tảng di động giúp cho người bệnh dễ dàng tiếp cận thông tin bệnh viện, phía bệnh viện cung cấp dịch vụ tốt cho người dùng (đây dự án private công ty) 1.2 Nền tảng dự án - Là ứng dụng chạy đa tảng (Android, iOS), IMS Mobile App (for patient) build Flutter, giúp ứng dụng build nhanh tiếp cận người dùng - Ngoài ra, với kiến thức sâu rộng IVF kinh nghiệm dày dặn việc triển khai IMS bệnh viện hàng đầu Việt Nam, Intesco tự tin mang tới phần mềm tối ưu hóa sát với mong muốn người bệnh - Ứng giúp người dùng (bệnh nhân) dễ dàng tiếp cận với hoạt động điều trị việc, đảm bảo liệu hoạt động khám chữa bệnh xuyên suốt, từ giúp tăng trải nghiệm người dùng bệnh viện 1.3 Phạm vi dự án - Đăng nhập - Bệnh án điện tử - Theo dõi chu kỳ kinh nguyệt - Lịch hẹn thủ thuật - Lịch tái khám - Mẫu trữ - Gia hạn mẫu trữ 14 - Thanh toán tiền qua App (Momo, zalopay, credit, debit ) - Lịch sử tốn - Thơng tin xét nghiệm - Tóm tắt q trình điều trị - Cài đặt Thực - Xây dựng ui cho hình đăng nhập, bệnh án điện tử, lịch hẹn, mẫu trữ, gia hạn figma - Viết api document - Xây dựng basecode - Setup môi trường cho project: dev, pro, stg - Tìm hiểu cách mã hóa liệu kéo liệu từ server ngược lại Build ui từ figma lên ứng dụng Kết - Xây dựng hình theo yêu cầu figma - Setup basecode chuẩn với môi trường: dev, pro, stg - Tìm hiểu ứng dụng cách bảo mật liệu kéo liệu từ server ngược lại - Buil hình đăng nhập, bệnh án điện tử, lịch hẹn lên ứng dụng 15 TÀI LIỆU THAM KHẢO [1] https://200lab.io/blog/so-sanh-su-khac-biet-flutter-vs-react-native/ [2] https://dart.dev/guides/language/effective-dart/style [3] https://ivf.com.vn/ [4] https://blog.codemagic.io/how-to-improve-the-performance-of-your-flutter-app./ [5] https://docs.flutter.dev/cookbook 16 TỔNG KẾT Chỉ tháng thực tập, đội training giúp thực tập sinh có kiến thức để xây dựng ứng dụng di động đa tảng Flutter cách chỉnh chu, hoàn thiện Chân thành cảm ơn anh Huỳnh Ngọc Hưng anh Hồ Xuân Vĩnh hỗ trợ em thời gian thực tập Cảm ơn khoa Công nghệ Phần Mềm tạo điều kiện để em có hội thực tập trải nghiệm thực tế 17 ... xây dựng đa tảng Vì vậy, để xuất ứng dụng tảng khác, lập trình viên cần phải thay đổi 20% code Đối với trường hợp giải pháp native, lập trình viên cần phải viết lại khoảng 90% code cho tảng mà... state layout flutter ▪ Flutter: Flutter tảng hỗ trợ phát triển cho ứng dụng đa cho hệ iOS Android Google phát triển Nó sử dụng vơ phổ biến cho nhiệm vụ tạo ứng dụng gốc dành cho Google • Flutter. .. cao kỹ lập trình với Flutter ▪ Có kiến thức quan trọng cho việc lập trình ứng dụng di động sau ▪ Ngồi cịn biết thêm số quy tắc việc viết code cho chuẩn, dễ đọc, dễ hiểu 2.3 Hướng dẫn sử dụng GetX

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