Tải bản đầy đủ (.docx) (34 trang)

Lập trình Android (đề: sổ tay nấu ăn)

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 (5.4 MB, 34 trang )

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 3 năm 2022


NHẬN XÉT CỦA GIẢNG VIÊN
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................


...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................
...............................................................................................................................................


Lời mở đầu
Với sự phát triển vượt bậc của công nghệ thông tin, các sản phẩn điện thoại ngày càng
được đầu tư và phát triên một các vượt bậc đang được quan tâm rất nhiều từ các khách
hàng. Nhờ có sự 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 như tất cả nhu cầu mà chúng ta cần, dần có thể thay thế các thiết bị
chuyên dụng chỉ có thể sử dụng vào một mục đích duy nhất. Các hệ điều hành nổi tiếng
như: windowns phone, IOS, Android.
Trước đây, khi ta muốn học các nấu một món nào đó, ta đều phải tự tìm hiểu hoặc đọc
trong sách dạy nấu ăn. Dẫn đến việc ta sẽ khơng thể tìm được món ta mong muốn vì sách
dạy nấu ăn đều có giới hạn cơng thức. Bây giờ ta có thể tìm kiếm mọi công thức nấu ăn
trên thế giới chỉ cần thông qua một chiếc điện thoại cảm ứng mà không bị giới hạn về số
lượng hay chi phí đắt đỏ như sách. Qua đó, em xin phép trình bày một phần mềm được

lập trình trên thiết bị di động là ‘Sổ Tay Về Món Ăn’.


Mục Lục
Chương 1: Mở đầu.........................................................................................................2
1. Lý do chọn đề tài......................................................................................................................................2
2. Mục tiêu nghiên cứu:...............................................................................................................................2
3. Phạm vi nghiên cứu:.................................................................................................................................2
4. Phương pháp thực hiện:..........................................................................................................................3
5. Giới thiệu ứng dụng sổ tay nấu ăn...........................................................................................................3

Chương 2: Cơ sở lý thuyết.............................................................................................4
1. Ngôn ngữ Dart..........................................................................................................................................4
1.1. Giới thiệu về Dart..............................................................................................................................4
1.2. Lý do sử dụng....................................................................................................................................4
2. SDK Flutter................................................................................................................................................5
2.1. Giới thiệu Flutter...............................................................................................................................5
2.2. Lý do sử dụng....................................................................................................................................5
2.3. Nhược điểm.......................................................................................................................................6
3. Firebase....................................................................................................................................................7
3.1. Firebase Cloud Storage.....................................................................................................................7
3.2. Firebase Realtime Database.............................................................................................................7
3.3. Firebase Authentication....................................................................................................................8
4. Visual Studio Code ...................................................................................................................................8

Chương 3: Cài đặt mơi trường lập trình.........................................................................8
1. Cài đặt Java...............................................................................................................................................8
2. Cài đặt Visual Studio Code.......................................................................................................................9
3. Cài đặt extension Flutter........................................................................................................................12
4. Cài đặt thiết bị giả lập android...............................................................................................................12

5. Cài Đặt SDK Flutter.................................................................................................................................15
6. 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
1. Sơ đồ chức năng.....................................................................................................................................18
2. Giao diện ứng dụng................................................................................................................................18
2.1. Giao diện đăng nhập.......................................................................................................................18
2.2. Giao diện chính...............................................................................................................................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:

4


Chương 2: Mở đầu
1. Lý do chọn đề tài.
Ngày nay, công nghệ ngày càng phát triển, nhu cầu ứng dụng công nghệ thông
tin vào tất các lĩnh lực trong xã hội là điều tất yếu. Theo đó, kiến thức về nấu ăn để bổ
sung chất dinh dưỡng cho con người là điều cực kì quan trọng. Trong đó, điển hình là
ứ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 trên từng cuốn sách hoặc ghi nhớ cơng
thức rất khó khăn vì 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ực kì cần thiết.
Dự án sẽ giúp cho chúng ta tiết kiện thời gian để ghi nhớ hoặc 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 một ứng dụng mobile nhằn
quản lý, lưu giữ các công thức nấu ăn.

2. 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 thế cho cách lưu giữ truyền
thống. Ứng dụng cơng nghệ để hiện đại hóa, giảm chi phí, nâng cao chất lượng cho
việc nấu ăn.
Nghiên cứu các vấn đề thực tiễn về 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 và chế biến.

3. Phạm vi nghiên cứu:
Hiểu chi tiết về ứng dụng công thức nấu ăn để lập trình trên các thiết bị di dộng.
Ngồi ra, nắm bắt các kỹ thuật xử lý, lưu trữ dữ liệu và ứng dụng các kết quả có được
để xây dựng một ứng dụng thực tiễn trên thiết bị di động.
Ứng dụng cơ bản về quản lý công thức nấu ăn, nhằn hạn chế việc tìm kiếm thủ
cơng.

5


4. Phương pháp thực hiện:
đồ án sẽ sử dụng Flutter làm UI-UX cùng với Firebase làm nơi lưu trữ database.

5. Giới thiệu ứng dụng sổ tay nấu ăn
Ứng dụng sổ tay nấu ăn có khả năng đáp ứng tốt những nhu cầu cho người dùng
như sử dụng đơn giản, tìm kiếm các công thức nấu ăn, chi tiết về nguyên vật liệu cần
thiết và các công đoạn chế biết sản. Mang đến sự thuận tiện và nhanh chóng cho người
dùng, có thể tra cứu cơng thức nấu ăn ở bất cứ nơi đâu chỉ với một chiếc điện thoại.

6



Chương 3: Cơ sở lý thuyết
1. Ngôn ngữ Dart.
1.1. Giới thiệu về Dart.
Dart là một ngơn ngữ lập trình web do Google phát triển và sau đó được Ecma
(ECMA-408) phê chuẩn làm tiêu chuẩn. Nó được chính thức cơng bố tại Hội thảo
GOTO Lưu trữ 2012-12-21 tại Wayback Machine ngày 10-12 tháng 10 năm 2011 tại
Aarhus. Mục đích của Dart không phải để thay thế JavaScript như là ngôn ngữ kịch
bản chính bên trong trình duyệt web, mà là cung cấp sự lựa chọn hiện đại hơn.
Dart được sử dụng để xây dựng các ứng dụng desktop, thiết bị di động và
website. Dart là một ngôn ngữ hướng đối tượng, được xác định theo lớp, với cơ 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 là ngơn ngữ mã nguồn mở và miễn phí, được
phát triển trên GitHub. Hiện nay Dart đã release phiên bản 2.16.
1.2. Lý do sử dụng.
Năng suất: Cú pháp Dart rõ ràng và súc tích, cơng cụ của nó đơn giản nhưng
mạnh mẽ. Type-safe giúp bạn xác định sớm các lỗi tinh tế. Dart có các thư viện cốt lõi
và một 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ó được dự
đoán hiệu suất cao và khởi động nhanh trên các thiết bị di động và web.
Di động: Dart biên dịch thành mã ARM và x86, để các ứng dụng di động của
Dart có thể chạy tự nhiên trên iOS, Android và hơn thế nữa. Đối với các ứ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 hiện có, nhờ vào cú pháp và
định hướng đối tượng khơng gây ngạc nhiên của nó.
Reactive: Dart rất phù hợp với lập trình Reactive, với sự hỗ trợ để quản lý các
đối tượng tồn tại trong thời gian ngắn, chẳng hạn như các widget UI, thông qua phân bổ
7



đối tượng nhanh và GC. Dart hỗ trợ lập trình khơng đồng bộ thơng qua các tính năng
ngơn ngữ và API sử dụng các đối tượng Future và Stream.

2. SDK Flutter.
2.1. Giới thiệu Flutter.
Phiên bản đầu tiên của Flutter được gọi là "Sky" và chạy trên hệ điều
hành Android. Nó được công bố tại hội nghị nhà phát triển Dart 2015, với dự định ban
đầu để có thể kết xuất ổn định ở mức 120 khung hình trên giây. Trong bài phát biểu
chính ở hội nghị Google Developer Days tại Thượng Hải, Google công bố phiên bản
Flutter Release Preview 2, đây là phiên bản lớn cuối cùng trước Flutter 1.0. Vào ngày
4 tháng 12 năm 2018, Flutter 1.0 đã được phát hành tại sự kiện Flutter Live, là phiên
bản "ổn định" đầu tiên của khung ứng dụng này.
Flutter là một SDK phát triển ứng dụng di động nguồn mở được tạo ra
bởi Google. Nó được sử dụng để phát triển ứng ứng dụng cho Android và iOS, cũng là
phương thức chính để tạo ứng dụng cho Google Fuchsia. Flutter được viết bằng ngơn
ngữ Dart và tận dụng nhiều tính năng nâng cao của ngôn ngữ này.
Engine của Flutter, được viết chủ yếu bằng C++, cung cấp sự hỗ trợ kết xuất ở
mức độ thấp bằng thư viện đồ họa Skia của Google. Thêm vào đó, nó giao tiếp với
các SDK của riêng nền tảng như các SDK do Android và iOS cung cấp.
2.2. Lý do sử dụng.
Flutter là bộ open-source SDK: tức là miễn phí và mở – cộng đồng developer
có thể cùng tham gia phát triển.
Giao diện đẹp ( impressive UI): Flutter cung cấp rất nhiều các widget, với
nhiều sự lựa chọn. Giao diện khá đẹp và sắc nét theo phong cách Material Design và
Cupertino, hỗ trợ nhiều các APIs chuyển động, smooth scrolling...
Viết code ứng dụng nhanh hơn: Tầng Framework của Flutter được viết bằng
Dart- một ngôn ngữ hướng đối tượng hỗ trợ JIT(Just In Time), tức là hỗ trợ hot reload
trong quá trình viết code. Với hot reload có thể cập nhật ứng dụng rất nhanh khi source
8



code của ta thay đổi mà không cần phải build lại bằng việc nhấn nút hot reload. Trong
quá trình viết ứng dụng.
Native Performance: Những đặc điểm chính của ngơn ngữ hướng đối tượng
(Object-oriented language) là tính đóng gói (encapsulation), kế thừa (inheritance), và
đa hình (polymorphism) và trừu tượng (abstraction) .. Ngôn ngữ Dart hỗ trợ
AOT( Ahead of Time), tức là complile sẽ nhanh hơn- giúp cải thiện perfomance và
startup time.
Sử dụng Dart: Một ngơn ngữ lập trình hướng đối tượng do Google phát triển.
DART là một static type language nên nó là AOT (Ahead of Time), compile xong hết
rồi mới chạy. Trong khi đó nó cũng là JIT (Just in Time) giống như các dynamic type
language. Khi dev thì nó sử dụng JIT để hỗ trợ Hot Load và build release thì dùng
AOT để tối ưu hiệu năng như một native code bình thường
Hỗ trợ đa nền tảng: Cấu trúc của bộ Flutter SDK, hỗ trợ chạy trên cả hai nền
tảng iOS, Android, Desktop và Website với cùng một basecode.
Giao diện như nhau trên các version của platform: Android 5.1.1 và Android
8.1.0 sẽ có cùng giao diện nếu cùng chạy một ứng dụng Flutter, và trường hợp trên
iOS cũng vậy.
Luồng xử lý của Flutter: Theo doc của Flutter Engine, có tới 4 threads
(runners) được sử dụng trong app: Platform Task Runner, UI Task Runner, GPU Task
Runner và IO Task Runner. Các threads này độc lập và không share memory với nhau,
chúng giao tiếp với nhau thơng qua channel.

2.3. Nhược điểm.
Kích thước file lớn: cùng một app “Hello world”, App Flutter có kích thước là
4.7MB, App Kotlin là 550KB, App native Java là : 539KB.

9



Hỗ trợ SEO kém trên website: vì Flutter được hướng đến phát triển ứng dụng
điện thoại và desktop, nên không tối ưu việc SEO cho website như landing page nhưng
sử dụng để làm web app rất tốt.

3. Firebase
Firebase là một nền tảng sở hữu bởi google giúp chúng ta phát triển các ứng dụng
di động và web. Họ cung cấp rất nhiều cơng cụ và dịch vụ tiện ích để phát triển ứng
dụng nên một ứng dụng chất lượng. Điều đó rút ngắn thời gian phát triển và giúp ứng
dụng sớm ra mắt với người dùng.
Firebase cung cấp cho người dùng các dịch vụ cơ sở dữ liệu hoạt động trên nền
tảng đám mây với hệ thống máy chủ cực kỳ mạnh mẽ của Google. Chức năng chính
của firebase là giúp người dùng lập trình ứng dụng, phần mềm trên các nền tảng web,
di động bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu.
Với firebase, ta có thể tạo ra những ứng dụng real-time như app chat, cùng nhiều
tính năng như xác thực người dùng, Cloud Messaging,...
Vì thế em sử dụng firebase làm phần backend cho dự án này.
3.1. Firebase Cloud Storage.
Firebase Cloud Storage là một khơng gian lưu trữ dữ liệu, nó giống như một
chiếc ổ cứng. ta có thể upload và download các loại file bạn muốn. Đó có thể là một
file ảnh, hay file văn bản, .zip, … Ta có thể lưu trữ link tới file hình ảnh trong
database, cịn file ảnh đặt trong cloud storage. Vậy là client có thể dễ dàng truy vấn và
sử dụng.
3.2. Firebase Realtime Database.
Realtime database là một cơ sở dữ liệu thời gian thực, sử dụng NoSQL và lưu
trữ đám mây cho phép lưu trữ và đồng bộ dữ liệu. Dữ liệu được lưu trữ dưới dạng
Json, và được đồng bộ theo thời gian thực đối với mọi kết nối.

10



Khi ta xây dựng những ứng dụng đa nền tảng như Android, IOS và Web App,
tất cả các client sẽ kết nối trên cùng một cơ sở dữ liệu Firebase và tự động cập nhật dữ
liệu mới nhất khi có sự thay đổi
Cả một cơ sở dữ liệu là một file json lớn, với độ trễ thấp, Firebase realtime
database cho phép xây dựng các ứng dụng cần độ realtime như app chat, hay game
online…
3.3. Firebase Authentication.
Firebase Authentication là chức năng xác thực người dùng.Hiểu một cách đơn
giản, là app cần phải đăng nhập/ đăng ký tài khoản để sử dụng, Firebase cung cấp cho
chúng ta chức năng xác thực người dùng bằng email, số điện thoại, hay tài khoản
Facebook, Google,...
Việc xác thực người dùng là một chức năng vô cùng quan trọng trong việc phát
triển ứng dụng. Tuy nhiên, khi muốn xác thực với nhiều phương thức khác nhau như
email, số điện thoại, google, facebook sẽ tốn nhiều thời gian và cơng sức. Firebase
Authentication giúp thực hiện việc đó một cách dễ dàng, giúp người dùng nhanh
chóng tiếp cận sản phẩm hơn.

4. Visual Studio Code .
Visual Studio Code là một trình biên tập mã được phát triển bởi Microsoft dành
cho Windows, Linux và macOS. Nó hỗ trợ chức năng debug, đi kèm với Git, có syntax
highlighting, tự hồn thành mã thơng minh, snippets, và cải tiến mã nguồn. Nó cũng
cho phép tùy chỉnh, do đó, người dùng có thể thay đổi theme, phím tắt, và các tùy
chọn khác. Nó miễn phí và là phần mềm mã nguồn mở theo giấy phép MIT, mặc dù
bản phát hành của Microsoft là theo giấy phép phần mềm miễn phí.
Visual Studio Code được dựa trên Electron, một nền tảng được sử dụng để triển
khai các ứng dụng Node.js máy tính cá nhân chạy trên động cơ bố trí Blink. Mặc dù nó
sử dụng nền tảng Electron nhưng phần mềm này không phải là một bản khác của
Atom, nó thực ra được dựa trên trình biên tập của Visual Studio Online (tên mã là
"Monaco").

11


Trong cuộc khảo sát vào năm 2018 trên Stack Overflow, Visual Studio Code được
xếp hạng là trình biên tập mã phổ biến nhất, với 34.9% của 75398 người trả lời tun
bố sử dụng nó.

Chương 4: Cài đặt mơi trường lập trình
1. Cài đặt Java.
Để cài đặt JDK, cần phải truy cập vào trang của Oracle JDK.
/>
2. Cài đặt Visual Studio Code
Truy cập trang web và chọn Hệ điều hành
muốn cài đặt.

12


Tick vào ô “I accept the agreement” và nhấn nút Next.

Tick vào ô :
13


+ Create a desktop icon
+ Add “Open with code” action to Windows Explorer file context menu.
+ Add “Open with code” action to Windows Explorer directory context menu.
và nhấn nút Next.

Nhấn “Install” để cài đặt.


14


3. Cài đặt extension Flutter.
Mở Visual Studio Code
Chọn Icon “Extensions” ở sidebar bên tay trái.
Tìm “Flutter” và nhấn nút “install”

4. Cài đặt thiết bị giả lập android
15


Truy cập trang web />Kéo xuống mục “Command line tools only”
Tải “SDK tools package” dựa trên hệ điều hành của máy.

Tick vào ô “I have read and agree with the above terms and conditions”và nhấn
nút Download.

Giải nén và mở thư mục “bin”

16


Chép đường dẫn đến thư mục “bin” vào PATH trong biến môi trường và nhấn “OK”

17


Mở “Command Promt” và ghi sdkmanager –sdk_root= --install “build-tools;

32.1.0-rc1” “platforms; android-31”

Chép đường dẫn đến thư mục “build-tools” và “platforms” vào PATH trong biến
môi trường và nhấn “OK”

18


5. Cài Đặt SDK Flutter
Mở “Command Promt” và ghi git clone -b stable
để cài đặt Flutter

Chép đường dẫn đến thư mục “bin” vào PATH trong biến môi trường và nhấn “OK”

19


Mở “Command Promt” và chạy flutter doctor

Nếu phần android toolchain có dấu tick có nghĩa đã hồn tất.

6. Tạo mơi trường ảo android
Mở Visual Studio Code và nhấn Ctrl + Shift + P và 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
1. Sơ đồ chức năng.
2. Giao diện ứng dụng.
2.1. Giao diện đăng nhập.
Giao diện này sẽ hiển thị giao diện đăng nhập kèm một nút để đăng nhập thông qua
“Firebase Authentication” để lấy thông tin các công thức mà người dùng đã lưu trước
đó.

Khi người dùng đăng nhập vào sẽ qua tầng authenticate để xác minh và lấy ID
người dùng để truy xuất dữ liệu từ database và hiện trên client cho người dùng.

22


Khi client đã lấy được ID, client sẽ gọi xuống database trong firebase, nếu ID đó đã
tồn tại thì sẽ lấy thơng tin người dùng đó để trả dữ liệu về client, cịn nếu chưa thì sẽ
tạo user mới.

Sau khi đăng nhập vào sẽ chuyển hướng về giao diện chính để người dùng sử dụng.

2.2. Giao diện chính.
23


Giao diện này sẽ hiển thị tất cả danh sách thông tin của công thức khi chạy ứng
dụng mỗi công thức sẽ được liệt kê trong một danh sách bao gồm : hình ảnh minh hoạ,
tên cơng thức và thời gian chế biến.
Giao diện gồm 3 TabView:

+ Công thức nấu ăn.

+ Công thức nước uống.

24


×