BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VĂN HIẾN KHOA CÔNG NGHỆ THÔNG TIN Tiểu luận môn học LẬP TRÌNH TRÊN CÁC THIẾT BỊ DI ĐỘNG SỔ TAY VỀ MÓN ĂN GVHD ThS Dương Quang Triết SVTH Lê Ngô Đức Anh MSSV 191A0.
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VĂN HIẾN KHOA CƠNG NGHỆ THƠNG TIN Tiểu luận mơn học LẬP TRÌNH TRÊN CÁC THIẾT BỊ DI ĐỘNG SỔ TAY VỀ MĨN ĂN GVHD: ThS.Dương Quang Triết SVTH: Lê Ngơ Đức Anh MSSV: 191A010008 LỚP: INT42101 TP.HCM, tháng năm 2022 NHẬN XÉT CỦA GIẢNG VIÊN Lời mở đầu Với phát triển vượt bậc công nghệ thông tin, sản phẩn điện thoại ngày đầu tư phát triên vượt bậc quan tâm nhiều từ khách hàng Nhờ có phát triển vượt bậc từ điện thoại phím bấm thủ cơng thành điện thoại cảm ứng, hỗ trợ gần tất nhu cầu mà cần, dần thay thiết bị chuyên dụng sử dụng vào mục đích Các hệ điều hành tiếng như: windowns phone, IOS, Android Trước đây, ta muốn học nấu đó, ta phải tự tìm hiểu đọc sách dạy nấu ăn Dẫn đến việc ta tìm ta mong muốn sách dạy nấu ăn có giới hạn cơng thức Bây ta tìm kiếm cơng thức nấu ăn giới cần thông qua điện thoại cảm ứng mà không bị giới hạn số lượng hay chi phí đắt đỏ sách Qua đó, em xin phép trình bày phần mềm lập trình thiết bị di động ‘Sổ Tay Về Món Ăn’ Mục Lục Chương 1: Mở đầu .2 Lý chọn đề tài 2 Mục tiêu nghiên cứu: .2 Phạm vi nghiên cứu: .2 Phương pháp thực hiện: Giới thiệu ứng dụng sổ tay nấu ăn Chương 2: Cơ sở lý thuyết Ngôn ngữ Dart 1.1 Giới thiệu Dart 1.2 Lý sử dụng SDK Flutter 2.1 Giới thiệu Flutter .5 2.2 Lý sử dụng 2.3 Nhược điểm .6 Firebase 3.1 Firebase Cloud Storage 3.2 Firebase Realtime Database 3.3 Firebase Authentication Visual Studio Code Chương 3: Cài đặt môi trường lập trình .8 Cài đặt Java .8 Cài đặt Visual Studio Code .9 Cài đặt extension Flutter 12 Cài đặt thiết bị giả lập android .12 Cài Đặt SDK Flutter .15 Tạo môi trường ảo android 17 Chương 4: Xây dựng ứng dụng sổ tay nấu ăn 18 Sơ đồ chức 18 Giao diện ứng dụng 18 2.1 Giao diện đăng nhập .18 2.2 Giao diện .20 2.3 Giao diện chi tiết công thức 25 Tài Liệu Tham Khảo 29 Source Code .29 Chương 1: Chương 2: Mở đầu Lý chọn đề tài Ngày nay, công nghệ ngày phát triển, nhu cầu ứng dụng công nghệ thông tin vào tất lĩnh lực xã hội điều tất yếu Theo đó, kiến thức nấu ăn để bổ sung chất dinh dưỡng cho người điều quan trọng Trong đó, điển hình ứng dụng công nghệ vào việc nấu ăn Các thao tác tìm hiểu, xem cách nấu ăn sách ghi nhớ cơng thức khó khăn lượng cơng thức khổng lồ Do đó, áp dụng cơng nghệ thơng tin vào việc nấu ăn cần thiết Dự án giúp cho tiết kiện thời gian để ghi nhớ tìm kiếm cơng thức thủ công Nắm bắt nhu cầu này, em lên kế hoạch xây dựng ứng dụng mobile nhằn quản lý, lưu giữ công thức nấu ăn Mục tiêu nghiên cứu: Xây dựng hệ thống quản lý công thức nấu ăn thay cho cách lưu giữ truyền thống Ứng dụng cơng nghệ để đại hóa, giảm chi phí, nâng cao chất lượng cho việc nấu ăn Nghiên cứu vấn đề thực tiễn nhu cầu sử dụng ứng dụng công thức nấu ăn phục vụ cho việc liên quan đến nấu ăn chế biến Phạm vi nghiên cứu: Hiểu chi tiết ứng dụng cơng thức nấu ăn để lập trình thiết bị di dộng Ngoài ra, nắm bắt kỹ thuật xử lý, lưu trữ liệu ứng dụng kết có để xây dựng ứng dụng thực tiễn thiết bị di động Ứng dụng quản lý công thức nấu ăn, nhằn hạn chế việc tìm kiếm thủ cơng Phương pháp thực hiện: đồ án sử dụng Flutter làm UI-UX với Firebase làm nơi lưu trữ database Giới thiệu ứng dụng sổ tay nấu ăn Ứng dụng sổ tay nấu ăn có khả đáp ứng tốt nhu cầu cho người dùng sử dụng đơn giản, tìm kiếm cơng thức nấu ăn, chi tiết nguyên vật liệu cần thiết công đoạn chế biết sản Mang đến thuận tiện nhanh chóng cho người dùng, tra cứu cơng thức nấu ăn nơi đâu với điện thoại Chương 3: Cơ sở lý thuyết Ngôn ngữ Dart 1.1 Giới thiệu Dart Dart ngơn ngữ lập trình web Google phát triển sau Ecma (ECMA-408) phê chuẩn làm tiêu chuẩn Nó thức cơng bố Hội thảo GOTO Lưu trữ 2012-12-21 Wayback Machine ngày 10-12 tháng 10 năm 2011 Aarhus Mục đích Dart để thay JavaScript ngôn ngữ kịch bên trình duyệt web, mà cung cấp lựa chọn đại Dart sử dụng để xây dựng ứng dụng desktop, thiết bị di động website 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, Dart ngôn ngữ mã nguồn mở miễn phí, phát triển GitHub Hiện Dart release phiên 2.16 1.2 Lý sử dụng Năng suất: Cú pháp Dart rõ ràng súc tích, cơng cụ đơn giản mạnh mẽ Type-safe giúp bạn xác định sớm lỗi tinh tế Dart có thư viện cốt lõi hệ sinh thái gồm hàng ngàn package Nhanh: Dart cung cấp tối ưu hóa việc biên dịch trước thời hạn để có dự đốn hiệu suất cao khởi động nhanh thiết bị di động web Di động: Dart biên dịch thành mã ARM x86, để ứng dụng di động Dart chạy tự nhiên iOS, Android Đối với ứng dụng web, chuyển mã từ Dart sang JavaScript Dễ gần: Dart quen thuộc với nhiều nhà phát triển có, nhờ vào cú pháp định hướng đối tượng khơng gây ngạc nhiên Reactive: Dart phù hợp với lập trình Reactive, với hỗ trợ để quản lý đối tượng tồn thời gian ngắn, chẳng hạn widget UI, thông qua phân bổ đối tượng nhanh GC Dart hỗ trợ lập trình khơng đồng thơng qua tính ngơn ngữ API sử dụng đối tượng Future Stream SDK Flutter 2.1 Giới thiệu Flutter Phiên Flutter gọi "Sky" chạy hệ điều hành Android Nó công bố hội nghị nhà phát triển Dart 2015, với dự định ban đầu để kết xuất ổn định mức 120 khung hình giây Trong phát biểu hội nghị Google Developer Days Thượng Hải, Google công bố phiên Flutter Release Preview 2, phiên lớn cuối trước Flutter 1.0 Vào ngày tháng 12 năm 2018, Flutter 1.0 phát hành kiện Flutter Live, phiên "ổn định" khung ứng dụng Flutter SDK phát triển ứng dụng di động nguồn mở tạo Google Nó sử dụng để phát triển ứng ứng dụng cho Android iOS, phương thức để tạo ứng dụng cho Google Fuchsia Flutter viết ngôn ngữ Dart tận dụng nhiều tính nâng cao ngôn ngữ Engine Flutter, viết chủ yếu C++, cung cấp hỗ trợ kết xuất mức độ thấp thư viện đồ họa Skia Google Thêm vào đó, giao tiếp với SDK riêng tảng SDK Android iOS cung cấp 2.2 Lý sử dụng Flutter open-source SDK: tức miễn phí mở – cộng đồng developer tham gia phát triển Giao diện đẹp ( impressive UI): Flutter cung cấp nhiều widget, với nhiều lựa chọn Giao diện đẹp sắc nét theo phong cách Material Design Cupertino, hỗ trợ nhiều APIs chuyển động, smooth scrolling Viết code ứng dụng nhanh hơn: Tầng Framework Flutter viết Dart- ngôn ngữ hướng đối tượng hỗ trợ JIT(Just In Time), tức hỗ trợ hot reload trình viết code Với hot reload cập nhật ứng dụng nhanh source code ta thay đổi mà không cần phải build lại việc nhấn nút hot reload Trong trình viết ứng dụng Native Performance: Những đặc điểm ngơn ngữ hướng đối tượng (Object-oriented language) tính đóng gói (encapsulation), kế thừa (inheritance), đa hình (polymorphism) trừu tượng (abstraction) Ngơn ngữ Dart hỗ trợ AOT( Ahead of Time), tức complile nhanh hơn- giúp cải thiện perfomance startup time Sử dụng Dart: Một ngơn ngữ lập trình hướng đối tượng Google phát triển DART static type language nên AOT (Ahead of Time), compile xong hết chạy Trong JIT (Just in Time) giống dynamic type language Khi dev sử dụng JIT để hỗ trợ Hot Load build release dùng AOT để tối ưu hiệu native code bình thường Hỗ trợ đa tảng: Cấu trúc Flutter SDK, hỗ trợ chạy hai tảng iOS, Android, Desktop Website với basecode Giao diện version platform: Android 5.1.1 Android 8.1.0 có giao diện chạy ứng dụng Flutter, trường hợp iOS Luồng xử lý Flutter: Theo doc Flutter Engine, có tới threads (runners) sử dụng app: Platform Task Runner, UI Task Runner, GPU Task Runner IO Task Runner Các threads độc lập không share memory với nhau, chúng giao tiếp với thông qua channel 2.3 Nhược điểm Kích thước file lớn: app “Hello world”, App Flutter có kích thước 4.7MB, App Kotlin 550KB, App native Java : 539KB Cài Đặt SDK Flutter Mở “Command Promt” ghi git clone https://github.com/flutter/flutter.git -b stable để cài đặt Flutter Chép đường dẫn đến thư mục “bin” vào PATH biến môi trường nhấn “OK” 19 Mở “Command Promt” chạy flutter doctor Nếu phần android toolchain có dấu tick có nghĩa hồn tất Tạo mơi trường ảo android Mở Visual Studio Code nhấn Ctrl + Shift + P chọn “Flutter: Launch Emulator” Chọn create android emulator để tạo máy ảo 20 21 Chương 5: Xây dựng ứng dụng sổ tay nấu ăn Sơ đồ chức Giao diện ứng dụng 2.1 Giao diện đăng nhập Giao diện hiển thị giao diện đăng nhập kèm nút để đăng nhập thông qua “Firebase Authentication” để lấy thông tin công thức mà người dùng lưu trước Khi người dùng đăng nhập vào qua tầng authenticate để xác minh lấy ID người dùng để truy xuất liệu từ database client cho người dùng 22 Khi client lấy ID, client gọi xuống database firebase, ID tồn lấy thơng tin người dùng để trả liệu client, cịn chưa tạo user Sau đăng nhập vào chuyển hướng giao diện để người dùng sử dụng 2.2 Giao diện 23 Giao diện hiển thị tất danh sách thông tin công thức chạy ứng dụng công thức liệt kê danh sách bao gồm : hình ảnh minh hoạ, tên công thức thời gian chế biến Giao diện gồm TabView: + Công thức nấu ăn + Công thức nước uống 24 + Danh sách công thức lưu 25 + Quản lí User: 26 Khi user đăng nhập, client gọi xuống database để lấy liệu công thức nấu ăn 27 Mỗi công thức có ID cố định thơng tin chi tiết cơng thức lưu clound Khi Client nhận liệu bắt đầu kiểm tra loại công thức (thức ăn, thức uống) để cho ViewTab riêng biệt, không truyền loại công thức trả tồn cơng thức (sử dụng cho TabView lưu giữ) 2.3 Giao diện chi tiết công thức 28 Khi người dùng chọn công thức ngồi hình chính, liệu cơng thức truyền vào giao diện chi tiết Giao diện gồm views chính: + thơng tin chi tiết công thức + Tab nguyên liệu + Tab Công thức 29 Tab Nguyên liệu gồm phần sau: - Tên nguyên liệu - Khối lượng (tuỳ vào hệ đo lường có giá trị khác nhau) - Hệ đo lường 30 Tab cơng thức gồm phần thứ tự quy trình chế biến 31 32 Tài Liệu Tham Khảo [1] https://en.wikipedia.org/wiki/Flutter_(software) [2] https://en.wikipedia.org/wiki/Dart_(programming_language) [3] https://en.wikipedia.org/wiki/Firebase Source Code https://github.com/Gernii/recipe_app 33 ... thức nấu ăn, nhằn hạn chế việc tìm kiếm thủ cơng Phương pháp thực hiện: đồ án sử dụng Flutter làm UI-UX với Firebase làm nơi lưu trữ database Giới thiệu ứng dụng sổ tay nấu ăn Ứng dụng sổ tay nấu. .. không bị giới hạn số lượng hay chi phí đắt đỏ sách Qua đó, em xin phép trình bày phần mềm lập trình thiết bị di động ? ?Sổ Tay Về Món Ăn’ Mục Lục Chương 1: Mở đầu .2 Lý chọn đề tài... IOS, Android Trước đây, ta muốn học nấu đó, ta phải tự tìm hiểu đọc sách dạy nấu ăn Dẫn đến việc ta khơng thể tìm ta mong muốn sách dạy nấu ăn có giới hạn cơng thức Bây ta tìm kiếm cơng thức nấu