Với sự phát triển của hệ điều hành Android, một trong những nền tảng di động phổ biếnnhất hiện nay, Android Studio là công cụ lý tưởng để phát triển ứng dụng quản lý này,nhờ vào tính năn
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
BÀI TẬP LỚN HỌC PHẦN: PHÁT TRIỂN ỨNG DỤNG CHO THIẾT BỊ DI ĐỘNG
ĐỀ SỐ 2: XÂY DỰNG ỨNG DỤNG QUẢN LÝ NHÀ HÀNG TRÊN NỀN TẢNG ANDROID
SỬ DỤNG ANDROID STUDIO
Nguyễn Tuấn Minh DCCNTT12.10.10 K12 Đinh Văn Thi DCCNTT12.10.10 K12 Nguyễn Trọng Lâm DCCNTT12.10.10 K12 Ngô Thanh Tùng DCCNTT12.10.10 K12
Bắc Ninh, năm 2024
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á
BÀI TẬP LỚN HỌC PHẦN: PHÁT TRIỂN ỨNG DỤNG CHO THIẾT BỊ DI ĐỘNG
1 Nguyễn Tuấn Minh 20213006
2 Đinh Văn Thi 20212819
Trang 3LỜI NÓI ĐẦU
Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin, việc áp dụng công nghệvào quản lý các hoạt động kinh doanh đã trở thành xu hướng không thể thiếu Đặc biệttrong lĩnh vực nhà hàng, quản lý hiệu quả đóng vai trò quan trọng trong việc nâng caochất lượng phục vụ khách hàng, tối ưu hóa quy trình làm việc và tăng cường hiệu suấtkinh doanh Trong bối cảnh đó, đề tài "Xây dựng ứng dụng quản lý nhà hàng trên nềntảng Android sử dụng Android Studio" ra đời nhằm đáp ứng nhu cầu quản lý nhà hàngmột cách thuận tiện, nhanh chóng và hiệu quả
Ứng dụng này sẽ hỗ trợ các nhà quản lý trong việc điều phối hoạt động của nhà hàngnhư quản lý thực đơn, theo dõi đơn hàng, quản lý nhân viên, và thống kê doanh thu.Đồng thời, khách hàng cũng có thể dễ dàng tiếp cận với dịch vụ của nhà hàng thôngqua việc đặt món trực tiếp trên ứng dụng
Với sự phát triển của hệ điều hành Android, một trong những nền tảng di động phổ biếnnhất hiện nay, Android Studio là công cụ lý tưởng để phát triển ứng dụng quản lý này,nhờ vào tính năng mạnh mẽ và khả năng hỗ trợ lập trình viên tạo ra những ứng dụngchất lượng cao
Chúng em xin gửi lời cảm ơn chân thành đến Thầy Trần Mạnh Đông, giảng viên đã trựctiếp hướng dẫn và hỗ trợ chúng em trong suốt quá trình thực hiện đề tài Nhờ sự tậntình của thầy mà chúng em có thể hoàn thành tốt sản phẩm này Qua đó, chúng em đã
có cơ hội học hỏi và nâng cao kiến thức về lập trình di động cũng như cách phát triểnmột ứng dụng thực tế
Trân trọng cảm ơn!
Trang 4MỤC LỤC
Trang 5DANH MỤC TỪ VIẾT TẮT
Trang 6DANH MỤC HÌNH VẼ
Trang 7CHƯƠNG 1 CƠ SỞ LÝ THUYẾT1.1 Tổng quan về ứng dụng cho thiết bị di động.
1.1.1 Giới thiệu chung về xu hướng phát triển ứng dụng cho thiết bị di động.
Trong kỷ nguyên công nghệ số hiện nay, việc sử dụng các thiết bị di độngnhư điện thoại thông minh và máy tính bảng đã trở thành một phần không thểthiếu trong đời sống hằng ngày của con người Cùng với đó, nhu cầu sử dụngcác ứng dụng di động ngày càng gia tăng mạnh mẽ, không chỉ phục vụ nhu cầu
cá nhân mà còn đáp ứng các yêu cầu công việc, học tập và giải trí Xu hướngphát triển ứng dụng cho thiết bị di động đã, đang và sẽ tiếp tục là một trongnhững lĩnh vực công nghệ phát triển nhanh và có tầm ảnh hưởng sâu rộng.Một số lý do chính khiến xu hướng phát triển ứng dụng di động trở nên nổi bật:
Sự bùng nổ của thiết bị di động: Với sự phổ biến của các thiết bị di độngthông minh, hàng tỷ người trên toàn thế giới hiện nay sử dụng các thiết bịnày để truy cập Internet, giao tiếp và làm việc Điều này tạo ra nhu cầu lớn
về các ứng dụng phục vụ mọi lĩnh vực của cuộc sống, từ giải trí, mua sắm,học tập, đến làm việc và quản lý doanh nghiệp
Sự phát triển của hệ điều hành Android và iOS: Android và iOS hiện là hai
hệ điều hành di động phổ biến nhất, chiếm hơn 90% thị phần toàn cầu.Với kho ứng dụng phong phú và hệ sinh thái mở, các nhà phát triển cónhiều cơ hội để sáng tạo ra những ứng dụng phục vụ người dùng trên hainền tảng này
Tính tiện lợi và khả năng kết nối không giới hạn: Các ứng dụng di độnggiúp người dùng có thể truy cập thông tin và sử dụng dịch vụ mọi lúc, mọinơi Điều này đã thay đổi cách chúng ta tiếp cận và xử lý thông tin, cũngnhư tương tác với nhau trong công việc và cuộc sống
Sự phát triển của công nghệ mới: Các công nghệ mới như trí tuệ nhân tạo(AI), học máy (ML), thực tế ảo (VR), thực tế tăng cường (AR) và Internetvạn vật (IoT) đang được tích hợp vào các ứng dụng di động, mang lại trảinghiệm người dùng phong phú và đa dạng hơn Điều này tạo ra nhữngbước tiến mới trong việc phát triển các ứng dụng thông minh, tối ưu hóacác quy trình và cải thiện chất lượng cuộc sống
Nhu cầu từ doanh nghiệp và các lĩnh vực kinh doanh: Ngày càng nhiềudoanh nghiệp nhận ra rằng việc phát triển ứng dụng di động không chỉ làcách để tiếp cận khách hàng mà còn là công cụ mạnh mẽ để quản lý, điềuhành và mở rộng hoạt động kinh doanh Các ứng dụng quản lý nhân sự,quản lý dự án, chăm sóc khách hàng, và đặc biệt là thương mại điện tử đãtrở thành công cụ không thể thiếu
Trang 81.1.2 Tổng quan về các hệ điều hành thiết bị di động, các công cụ lập trình.
iOS là hệ điều hành di động độc quyền của Apple, sử dụng trên các thiết
bị như iPhone, iPad và iPod Touch
iOS có khoảng 27% thị phần toàn cầu, nổi tiếng với tính bảo mật cao và trải nghiệm người dùng mượt mà
Ứng dụng trên iOS được phân phối qua App Store, với các tiêu chuẩn kiểm duyệt nghiêm ngặt hơn so với Google Play Store, đảm bảo chất lượng và bảo mật
Giao diện người dùng của iOS thường đơn giản, trực quan, cùng với hệ sinh thái Apple mạnh mẽ
c) Hệ điều hành khác
Trang 9 HarmonyOS: Hệ điều hành của Huawei, chủ yếu được sử dụng trên các thiết bị của Huawei, phát triển như một sự thay thế cho Android.
KaiOS: Hệ điều hành nhẹ, chủ yếu được sử dụng trên các thiết bị di động
cơ bản (feature phones), mang lại kết nối Internet cho người dùng ở các quốc gia đang phát triển
Windows Mobile: Mặc dù từng được Microsoft phát triển mạnh mẽ, nhưng hiện nay Windows Mobile không còn phổ biến do cạnh tranh không thành công với Android và iOS
2 Các công cụ lập trình phổ biến
Việc phát triển ứng dụng di động phụ thuộc vào việc sử dụng các công cụ lập trình (IDE - Integrated Development Environment) và ngôn ngữ lập trình phù hợp Dưới đây là một số công cụ lập trình phổ biến để phát triển ứng dụng cho Android và iOS
a) Android Studio (dành cho Android)
Android Studio là công cụ phát triển chính thức cho hệ điều hành Android, được Google giới thiệu
Android Studio hỗ trợ nhiều tính năng như trình giả lập tích hợp
(Emulator), giao diện người dùng kéo thả (drag and drop), hỗ trợ viết mã với các ngôn ngữ chính như Java, Kotlin, và C++
Công cụ này cũng cung cấp khả năng tích hợp với Firebase (nền tảng backend của Google), quản lý giao diện bằng XML, và xây dựng ứng dụng
đa ngôn ngữ một cách dễ dàng
b) Xcode (dành cho iOS)
Xcode là môi trường phát triển chính thức cho các ứng dụng trên hệ điều hành iOS, macOS, watchOS, và tvOS, do Apple cung cấp
Xcode hỗ trợ ngôn ngữ lập trình Swift và Objective-C, cung cấp các công
cụ mạnh mẽ cho việc thiết kế giao diện người dùng (UI) và quản lý vòng đời ứng dụng
Ngoài ra, Xcode tích hợp với công cụ kiểm tra ứng dụng, giúp kiểm soát chất lượng sản phẩm và dễ dàng phát hiện lỗi
c) Framework đa nền tảng (Cross-platform)
React Native: Framework này được phát triển bởi Facebook, cho phép lập trình viên viết ứng dụng bằng JavaScript và React, sau đó có thể biên dịchsang Android và iOS Ưu điểm của React Native là code có thể tái sử dụng trên cả hai nền tảng
Trang 10 Flutter: Được Google phát triển, Flutter sử dụng ngôn ngữ Dart để viết cácứng dụng di động đẹp mắt với giao diện mượt mà Flutter hỗ trợ tốt việc xây dựng ứng dụng trên cả Android và iOS, mang lại trải nghiệm gần như
"native" trên cả hai nền tảng
Xamarin: Được phát triển bởi Microsoft, Xamarin sử dụng ngôn ngữ C# và.NET để phát triển ứng dụng di động, đồng thời có thể tái sử dụng phần lớn mã nguồn cho cả Android và iOS
d) Ngôn ngữ lập trình phổ biến
Java: Ngôn ngữ chính thức và lâu đời cho phát triển ứng dụng Android Mặc dù hiện nay có thêm nhiều lựa chọn khác, nhưng Java vẫn được ưa chuộng bởi tính ổn định và cộng đồng hỗ trợ rộng rãi
Kotlin: Là ngôn ngữ hiện đại được Google chính thức khuyến nghị cho phát triển ứng dụng Android Kotlin đơn giản, gọn gàng và mạnh mẽ hơn
so với Java, đồng thời tương thích hoàn toàn với mã Java
Swift: Ngôn ngữ lập trình hiện đại do Apple phát triển, thay thế cho
Objective-C trong phát triển các ứng dụng trên iOS Swift có cú pháp dễ hiểu, tốc độ nhanh và an toàn hơn
3 Xu hướng phát triển ứng dụng di động
Ngày càng nhiều công cụ và nền tảng phát triển ứng dụng di động được rađời để đáp ứng các yêu cầu của người dùng và doanh nghiệp Một số xu hướng nổi bật bao gồm:
Phát triển ứng dụng đa nền tảng: Giúp tiết kiệm thời gian và chi phí, đồng thời đảm bảo ứng dụng có mặt trên cả Android và iOS
Tích hợp AI và ML: Trí tuệ nhân tạo và học máy ngày càng được sử dụng
để nâng cao trải nghiệm người dùng, từ chatbot đến gợi ý nội dung cá nhân hóa
Ứng dụng di động với công nghệ blockchain và IoT: Giúp cải thiện tính bảo mật và khả năng kết nối giữa các thiết bị, đặc biệt là trong các lĩnh vực tài chính và công nghiệp
1.1.3 Hệ điều hành Android.
Android là một trong những hệ điều hành di động phổ biến nhất thế giới,được phát triển bởi Google dựa trên nhân Linux Ban đầu, Android được công tyAndroid Inc phát triển, sau đó Google mua lại vào năm 2005 Android chính thức
ra mắt phiên bản đầu tiên vào năm 2008 và nhanh chóng trở thành một trongnhững nền tảng di động quan trọng nhất, chiếm thị phần lớn trên toàn cầu
1 Đặc điểm chính của Android
Mã nguồn mở: Một trong những đặc điểm nổi bật của Android là tính chất
mã nguồn mở, điều này cho phép các nhà sản xuất và phát triển có thể tùy
Trang 11biến hệ điều hành theo nhu cầu của mình Android là một dự án mã nguồn
mở dưới sự điều hành của Android Open Source Project (AOSP)
Sự linh hoạt và tùy chỉnh: Android cho phép nhà sản xuất, người dùng vànhà phát triển ứng dụng dễ dàng tùy chỉnh giao diện và chức năng Ngườidùng có thể thay đổi giao diện, cài đặt ứng dụng từ nhiều nguồn khácnhau ngoài Google Play Store
Hỗ trợ đa nền tảng: Android được cài đặt trên rất nhiều loại thiết bị di động
từ các nhà sản xuất khác nhau, từ điện thoại thông minh, máy tính bảngđến thiết bị đeo, TV thông minh và các thiết bị IoT
Ứng dụng phong phú: Android có một kho ứng dụng khổng lồ với hơn 3triệu ứng dụng có sẵn trên Google Play Store, phục vụ mọi nhu cầu củangười dùng từ giải trí, học tập, đến công việc Các ứng dụng Androidđược viết bằng ngôn ngữ lập trình như Java, Kotlin và C++
2 Lịch sử phát triển
Android trải qua nhiều phiên bản khác nhau với những cải tiến về giaodiện người dùng, tính năng và bảo mật Các phiên bản Android thườngđược đặt tên theo các loại món tráng miệng theo thứ tự bảng chữ cái, vídụ:
Android 1.5 (Cupcake): Phiên bản đầu tiên có tên mã món tráng miệng, hỗtrợ bàn phím ảo và widget
Android 2.3 (Gingerbread): Cải thiện hiệu suất và thêm hỗ trợ cho NFC
Android 4.0 (Ice Cream Sandwich): Giới thiệu giao diện người dùng mới,
đa nhiệm tốt hơn và thêm nhiều tính năng bảo mật
Android 5.0 (Lollipop): Chuyển sang giao diện Material Design, tạo ra mộtphong cách thiết kế trực quan và đơn giản
Android 6.0 (Marshmallow): Giới thiệu tính năng Doze giúp tiết kiệm pin,quyền truy cập ứng dụng được quản lý chặt chẽ hơn
Android 10: Loại bỏ truyền thống đặt tên theo món tráng miệng, tập trungcải thiện quyền riêng tư và bảo mật, hỗ trợ chế độ tối (Dark Mode)
Android 13: Cải tiến trải nghiệm người dùng, thêm các tính năng tối ưuhóa pin và quản lý quyền riêng tư
3 Kiến trúc của Android
Android có một cấu trúc hệ thống phân tầng, bao gồm nhiều lớp, giúp táchbiệt các thành phần khác nhau để dễ dàng quản lý và phát triển:
Linux Kernel: Là nhân chính của hệ điều hành Android, đảm nhận quản lýphần cứng, xử lý các yêu cầu của ứng dụng và đảm bảo tính bảo mật
Libraries: Bao gồm các thư viện quan trọng như WebKit (xử lý trình duyệt),OpenGL (đồ họa), và SQLite (quản lý cơ sở dữ liệu)
Trang 12 Android Runtime (ART): ART là môi trường chạy ứng dụng, giúp các ứngdụng Android có hiệu suất cao và tiết kiệm tài nguyên hơn Trước đây,Android sử dụng Dalvik nhưng đã chuyển sang ART từ phiên bản Android5.0 (Lollipop).
Application Framework: Đây là lớp mà các nhà phát triển sử dụng để viếtứng dụng, bao gồm các thành phần như quản lý giao diện người dùng(UI), thông báo, dịch vụ, và quản lý dữ liệu
Applications: Đây là lớp ngoài cùng, bao gồm các ứng dụng mà ngườidùng sử dụng hàng ngày, như trình duyệt, tin nhắn, và các ứng dụng dongười dùng cài đặt từ Google Play Store
4 Ưu điểm của Android
Sự đa dạng về thiết bị: Android có mặt trên rất nhiều dòng thiết bị từ giá rẻđến cao cấp, giúp người dùng có nhiều lựa chọn phù hợp với nhu cầu vàngân sách
Tính linh hoạt: Người dùng có thể dễ dàng tùy chỉnh giao diện, cài đặt ứngdụng từ nguồn bên ngoài, hoặc truy cập sâu vào hệ thống nếu có quyềnroot thiết bị
Kho ứng dụng phong phú: Google Play Store cung cấp hàng triệu ứngdụng, từ các ứng dụng miễn phí đến các ứng dụng trả phí, phù hợp vớimọi nhu cầu của người dùng
Khả năng tích hợp với dịch vụ Google: Android được phát triển bởi Googlenên nó tích hợp mạnh mẽ với các dịch vụ của Google như Gmail, GoogleDrive, Google Maps và Google Assistant
5 Nhược điểm của Android
Phân mảnh hệ điều hành: Do sự linh hoạt và mã nguồn mở, Android bịphân mảnh trên nhiều thiết bị khác nhau Điều này có nghĩa là các thiết bịcủa những nhà sản xuất khác nhau có thể sử dụng các phiên bản Androidkhác nhau, dẫn đến tình trạng một số thiết bị không được cập nhật hệ điềuhành mới kịp thời
Bảo mật: Tính mở của Android làm tăng nguy cơ bảo mật khi người dùng
có thể tải ứng dụng từ nhiều nguồn không chính thống, dẫn đến việc càiđặt ứng dụng độc hại
Hiệu suất không đồng đều: Do sự đa dạng về phần cứng của các thiết bịAndroid, trải nghiệm người dùng có thể không nhất quán, đặc biệt là trêncác thiết bị giá rẻ
6 Tương lai của Android
Trang 13Android tiếp tục là hệ điều hành dẫn đầu thị trường thiết bị di động Googlekhông ngừng cải tiến Android để đáp ứng nhu cầu ngày càng cao của ngườidùng, tập trung vào các tính năng mới như trí tuệ nhân tạo (AI), hỗ trợ 5G, cảithiện bảo mật, và tích hợp tốt hơn với các thiết bị thông minh trong hệ sinh tháiIoT.
1.1.4 Công cụ lập trình Android Studio.
Android Studio là môi trường phát triển tích hợp (IDE - Integrated DevelopmentEnvironment) chính thức được Google cung cấp để phát triển ứng dụng Android.Đây là công cụ phổ biến và mạnh mẽ nhất cho các lập trình viên Android, giúptạo ra các ứng dụng đa dạng từ cơ bản đến phức tạp cho điện thoại, máy tínhbảng, đồng hồ thông minh và các thiết bị chạy hệ điều hành Android
1 Giới thiệu về Android Studio
Ra mắt lần đầu vào năm 2013, Android Studio được xây dựng dựa trênnền tảng IntelliJ IDEA, một trong những IDE mạnh mẽ nhất của JetBrains.Android Studio thay thế cho Eclipse ADT (Android Development Tools), trởthành công cụ chính thức của Google dành cho phát triển ứng dụngAndroid
Android Studio cung cấp một bộ công cụ hoàn chỉnh để lập trình viên pháttriển, gỡ lỗi, kiểm tra và triển khai ứng dụng Android
2 Các tính năng chính của Android Studio
Android Studio được trang bị nhiều tính năng mạnh mẽ, giúp cho việc phát triểnứng dụng Android trở nên dễ dàng và hiệu quả hơn:
a) Giao diện đồ họa trực quan
Layout Editor: Android Studio cung cấp công cụ kéo-thả để thiết kế giaodiện người dùng (UI) mà không cần phải viết mã XML thủ công Giao diệnnày trực quan và dễ sử dụng, giúp lập trình viên tạo ra các bố cục tươngthích với nhiều kích thước màn hình khác nhau
Preview real-time: Cho phép lập trình viên xem trước giao diện ứng dụngtrên các thiết bị ảo ngay trong khi thiết kế, giúp tiết kiệm thời gian và tối ưuhóa giao diện cho từng loại màn hình
b) Trình biên dịch và hỗ trợ ngôn ngữ lập trình
Hỗ trợ nhiều ngôn ngữ lập trình: Android Studio hỗ trợ lập trình bằng Java,Kotlin và C++ Trong đó, Kotlin đã trở thành ngôn ngữ chính thức được
Trang 14Google khuyến nghị sử dụng từ năm 2017 nhờ tính hiện đại và dễ học củanó.
Gradle: Android Studio sử dụng Gradle làm công cụ quản lý dự án và biêndịch mã Gradle cho phép quản lý các phụ thuộc (dependencies), cấu hình
dự án và thực hiện việc build ứng dụng một cách nhanh chóng
c) Trình giả lập (Emulator)
Android Emulator: Android Studio đi kèm với Android Emulator, giúp lậptrình viên mô phỏng các thiết bị Android thực tế ngay trên máy tính.Emulator hỗ trợ nhiều phiên bản Android, các kích thước màn hình và cáccấu hình phần cứng khác nhau, giúp kiểm tra ứng dụng trên nhiều thiết bị
mà không cần thiết bị vật lý
Emulator còn cho phép mô phỏng các tính năng đặc biệt như vị trí GPS,cuộc gọi, nhắn tin, hay tình trạng mạng, giúp lập trình viên kiểm tra ứngdụng trong nhiều kịch bản khác nhau
d) Hỗ trợ phát triển ứng dụng đa nền tảng
Tích hợp Firebase: Android Studio hỗ trợ tích hợp dễ dàng với Firebase,một nền tảng backend do Google cung cấp, giúp phát triển ứng dụngnhanh hơn với các tính năng như cơ sở dữ liệu thời gian thực, xác thựcngười dùng, phân tích ứng dụng và đẩy thông báo (push notification)
Cross-platform development: Mặc dù Android Studio chủ yếu phát triểncho Android, nhưng với các thư viện như Jetpack Compose hay sử dụngframework đa nền tảng (cross-platform) như Flutter, lập trình viên cũng cóthể phát triển ứng dụng chạy trên cả iOS và Android
e) Trình gỡ lỗi và kiểm thử mạnh mẽ
Debugger tích hợp: Android Studio cung cấp công cụ gỡ lỗi trực tiếp giúpkiểm tra mã nguồn và theo dõi biến, luồng chương trình trong thời gianthực Debugger hỗ trợ cả Java, Kotlin và C++
Profiler: Công cụ Profiler giúp lập trình viên phân tích hiệu suất ứng dụng,
từ CPU, bộ nhớ, và pin, cho đến theo dõi các hoạt động của ứng dụngnhư render giao diện, truy xuất dữ liệu hay quản lý tài nguyên
Unit Testing và UI Testing: Android Studio tích hợp các công cụ hỗ trợ viếtkiểm thử tự động cho cả logic của ứng dụng (Unit Testing) và giao diệnngười dùng (UI Testing) thông qua các framework như JUnit, Espresso, vàRobolectric
f) Quản lý dự án và phiên bản
Trang 15 Version Control: Android Studio tích hợp với các hệ thống quản lý phiênbản (VCS) như Git, giúp lập trình viên quản lý mã nguồn một cách hiệuquả Tích hợp Git giúp dễ dàng đồng bộ mã nguồn, theo dõi lịch sử thayđổi, và cộng tác trong các nhóm phát triển.
Build Variants: Với tính năng Build Variants, lập trình viên có thể dễ dàngcấu hình và quản lý các phiên bản ứng dụng khác nhau, chẳng hạn nhưbản thử nghiệm (debug) và bản phát hành (release)
3 Quy trình phát triển ứng dụng trong Android Studio
Phát triển ứng dụng Android trong Android Studio thường trải qua các bước sau:a) Tạo dự án mới
Bắt đầu bằng cách tạo một dự án mới, lựa chọn ngôn ngữ lập trình(Java/Kotlin), cấu hình dự án và lựa chọn mẫu giao diện (template) để khởi đầunhanh chóng
b) Thiết kế giao diện người dùng
Sử dụng công cụ Layout Editor để thiết kế giao diện hoặc viết mã XMLtrực tiếp để tùy chỉnh giao diện phức tạp Bố cục giao diện sẽ được tối ưu hóacho nhiều kích thước màn hình và ngôn ngữ khác nhau
c) Viết mã và logic ứng dụng
Lập trình viên sẽ viết mã ứng dụng bằng Java hoặc Kotlin, sử dụng cácAPI của Android để xử lý logic, dữ liệu và giao diện Android Studio hỗ trợ tínhnăng Code Completion, gợi ý mã thông minh giúp lập trình viên viết mã nhanhhơn và chính xác hơn
d) Kiểm thử và gỡ lỗi
Sau khi hoàn thành mã, lập trình viên có thể chạy ứng dụng trên trình giảlập hoặc thiết bị thật Android Studio cung cấp công cụ Debugger và Logcat đểtheo dõi lỗi và kiểm tra hoạt động của ứng dụng
Kiểm thử tự động với Unit Test và UI Test đảm bảo rằng ứng dụng hoạtđộng đúng như mong đợi và không xảy ra lỗi khi triển khai trên các thiết bị thực.e) Build và phát hành ứng dụng
Khi ứng dụng đã sẵn sàng, lập trình viên có thể tạo các bản build chonhiều môi trường khác nhau, ví dụ như bản debug để kiểm thử hoặc bản release
để phát hành trên Google Play Store Gradle sẽ đảm nhiệm việc biên dịch, ký số(signing) và tạo file APK hoặc AAB để phân phối
Trang 164 Ưu điểm của Android Studio.
Mạnh mẽ và chuyên nghiệp: Android Studio được xây dựng đặc biệt đểphát triển Android, cung cấp các tính năng mạnh mẽ và tối ưu hóa cho các thiết
bị chạy hệ điều hành Android
Cộng đồng lớn và hỗ trợ tốt: Android Studio có cộng đồng lập trình viênrộng lớn, giúp người dùng dễ dàng tìm kiếm tài liệu, hướng dẫn và giải pháp chocác vấn đề kỹ thuật
Hỗ trợ công nghệ mới: Với Android Studio, lập trình viên luôn được cậpnhật các công nghệ mới nhất từ Google, như Jetpack Compose (UI toolkit mới)hay công cụ phân tích hiệu suất ứng dụng
5 Nhược điểm của Android Studio
Yêu cầu cấu hình máy tính cao: Android Studio là một IDE lớn và phứctạp, yêu cầu máy tính có cấu hình tốt (CPU mạnh, RAM ít nhất 8GB) để hoạtđộng mượt mà, đặc biệt khi sử dụng Android Emulator
Khó tiếp cận đối với người mới: Với nhiều tính năng phức tạp và hệ sinhthái rộng lớn, Android Studio có thể khiến người mới học lập trình cảm thấychoáng ngợp khi bắt đầu
6 Tương lai của Android Studio
Android Studio tiếp tục phát triển mạnh mẽ với sự hỗ trợ từ Google Cáctính năng mới như Jetpack Compose giúp việc xây dựng giao diện trở nên linhhoạt và hiện đại hơn Bên cạnh đó, Google còn tập trung vào việc cải thiện hiệusuất IDE, giảm thời gian build, và hỗ trợ tốt hơn cho các framework đa nền tảngnhư Flutter
1.2 Phát triển ứng dụng trên nền tảng Android sử dụng Java
Java là ngôn ngữ lập trình chính thống đầu tiên được sử dụng để phát triển cácứng dụng Android và vẫn là một trong những ngôn ngữ phổ biến nhất cho đếnnay Android SDK cung cấp một hệ sinh thái hoàn chỉnh để phát triển ứng dụngAndroid bằng Java, bao gồm các công cụ phát triển, thư viện, và API để quản lýcác yếu tố như giao diện người dùng, kết nối mạng, lưu trữ dữ liệu, và quản lýtài nguyên
1.2.1 Cấu trúc ứng dụng Android
1 Các thành phần chính của ứng dụng Android
Ứng dụng Android có 5 thành phần chính để xây dựng và triển khai:
Activity:
Trang 17 Activity là thành phần giao diện người dùng của ứng dụng Mỗi màn hìnhgiao diện mà người dùng tương tác được đại diện bởi một Activity Khingười dùng mở một ứng dụng, một Activity sẽ được khởi chạy.
Mỗi ứng dụng có thể có một hoặc nhiều Activity Ví dụ, một ứng dụng cóthể có một Activity để hiển thị danh sách sản phẩm và một Activity khác đểhiển thị chi tiết sản phẩm
Mỗi Activity đều được định nghĩa trong tệp AndroidManifest.xml
Service:
Service là thành phần chạy trong nền, không cung cấp giao diện ngườidùng nhưng thực hiện các tác vụ dài hạn hoặc tác vụ không cần sự tươngtác trực tiếp của người dùng Ví dụ, Service có thể được sử dụng để phátnhạc hoặc tải dữ liệu từ internet trong nền
Service có thể được chia thành hai loại: Started Service và Bound Service
Started Service: Chạy trong nền độc lập và sẽ tự động dừng khi công việchoàn tất
Bound Service: Cho phép các ứng dụng khác "gắn" vào để sử dụng cácchức năng
Broadcast Receiver:
Broadcast Receiver là thành phần dùng để lắng nghe và phản hồi lại các
sự kiện hệ thống hoặc ứng dụng phát ra, ví dụ như khi thiết bị sạc pin, mấtkết nối mạng, hoặc nhận tin nhắn
Broadcast Receiver giúp ứng dụng phản hồi lại các sự kiện từ hệ thốngAndroid mà không cần phải luôn hoạt động nền
Content Provider:
Content Provider cung cấp một cách chuẩn hóa để chia sẻ dữ liệu giữacác ứng dụng khác nhau Nó cho phép các ứng dụng có thể truy cập vàthao tác dữ liệu của nhau một cách an toàn
Ví dụ, một ứng dụng có thể sử dụng Content Provider để truy cập vàodanh bạ hoặc hình ảnh từ một ứng dụng khác
Fragment:
Fragment là một phần của giao diện người dùng trong một Activity Nó chophép chia nhỏ giao diện người dùng thành các thành phần độc lập để dễquản lý và tái sử dụng Một Activity có thể chứa nhiều Fragment
Fragment đặc biệt hữu ích khi phát triển giao diện cho các thiết bị có mànhình lớn như máy tính bảng hoặc khi muốn quản lý các thành phần giaodiện theo từng phần
Trang 182 Cấu trúc thư mục của ứng dụng Android
Một ứng dụng Android điển hình có cấu trúc thư mục sau:
Thư mục src/main/java:
Chứa mã nguồn Java hoặc Kotlin của ứng dụng Tại đây, các Activity, Service,Broadcast Receiver, và các lớp logic của ứng dụng được đặt
Thư mục res (Resource):
Chứa các tài nguyên không phải mã nguồn như hình ảnh, chuỗi văn bản, địnhnghĩa giao diện XML, màu sắc, bố cục, âm thanh, và các tài nguyên khác Cácthư mục con quan trọng trong res gồm:
drawable/: Chứa các hình ảnh hoặc đồ họa được sử dụng trong ứng dụng
layout/: Chứa các tệp XML định nghĩa giao diện người dùng, ví dụ như bốcục của các Activity
values/: Chứa các tệp như strings.xml, colors.xml, dimens.xml để lưu cácgiá trị cố định như chuỗi văn bản, màu sắc và kích thước
mipmap/: Chứa các biểu tượng (icon) của ứng dụng ở các độ phân giảikhác nhau
Tệp AndroidManifest.xml:
Đây là tệp cấu hình chính của ứng dụng Nó định nghĩa các Activity, Service,Broadcast Receiver và các quyền (permissions) mà ứng dụng cần sử dụng, ví dụnhư quyền truy cập internet, camera, hoặc vị trí GPS
Manifest cũng chứa thông tin về phiên bản ứng dụng, tên gói (package name),
và cấu hình cho các tính năng quan trọng khác
Thư mục lib hoặc jniLibs:
Chứa các thư viện hoặc mã gốc (native code) sử dụng trong ứng dụng, chẳnghạn như các thư viện viết bằng C hoặc C++
Trang 193 Chu kỳ sống của một Activity (Activity Lifecycle)
Activity trong Android có một vòng đời phức tạp, với nhiều trạng thái khác nhau.Hiểu rõ vòng đời của Activity là rất quan trọng để quản lý trạng thái và tài nguyêncủa ứng dụng một cách hiệu quả Dưới đây là các trạng thái chính:
onCreate(): Phương thức này được gọi khi Activity được khởi tạo lần đầutiên Đây là nơi khởi tạo giao diện và thiết lập các thành phần của Activity
onStart(): Phương thức này được gọi khi Activity trở nên hiển thị với ngườidùng
onResume(): Khi Activity bắt đầu tương tác với người dùng, phương thứcnày được gọi
onPause(): Phương thức này được gọi khi Activity mất quyền kiểm soátgiao diện (ví dụ như khi một Activity khác được khởi chạy)
onStop(): Khi Activity không còn hiển thị cho người dùng, phương thứcnày được gọi
onDestroy(): Phương thức này được gọi khi Activity bị hủy, chẳng hạn khingười dùng đóng ứng dụng hoặc hệ thống cần giải phóng tài nguyên
4 Quy trình biên dịch và chạy ứng dụng
Khi phát triển ứng dụng Android bằng Java, quá trình biên dịch và chạy ứngdụng thường diễn ra như sau:
Viết mã và thiết kế giao diện: Lập trình viên viết mã Java và thiết kế giaodiện bằng XML hoặc các công cụ thiết kế giao diện của Android Studio
Biên dịch (Compile): Android Studio sử dụng Gradle để biên dịch mã Javathành bytecode (tệp class), đồng thời chuyển đổi các tài nguyên XMLthành định dạng mà Android có thể hiểu
Tạo file APK/AAB: Gradle sẽ đóng gói mã biên dịch và các tài nguyênthành một tệp APK hoặc AAB (Android App Bundle), đây là tệp cài đặt màngười dùng có thể tải lên Google Play Store hoặc cài đặt trên thiết bị
Chạy trên thiết bị: Tệp APK/AAB được cài đặt trên thiết bị thật hoặc trìnhgiả lập Android để kiểm tra và gỡ lỗi
1.2.2 Các thành phần phát triển ứng dụng Android
1 Các thành phần thiết kế giao diện
Thiết kế giao diện là bước quan trọng để đảm bảo người dùng có trải nghiệm tốtkhi sử dụng ứng dụng Android Có nhiều công cụ và thành phần hỗ trợ việc này,bao gồm:
Layout: Android hỗ trợ nhiều loại layout khác nhau để tổ chức giao diện như:
Trang 20 LinearLayout: Sắp xếp các phần tử theo chiều ngang hoặc dọc.
RelativeLayout: Sắp xếp các phần tử dựa trên vị trí tương đối với nhau
ConstraintLayout: Cho phép sắp xếp linh hoạt hơn, đặc biệt cho các giaodiện phức tạp
Views: Android cung cấp một loạt các View để hiển thị các thành phần UI như:
TextView: Hiển thị văn bản
2 Activity, Fragment, Intents, và Service
Activity:
Là thành phần đại diện cho một màn hình giao diện người dùng Mỗi Activitythường có một giao diện và chứa các phần logic để tương tác với người dùng.Fragment:
Là một phần của giao diện trong một Activity, cho phép lập trình viên chia nhỏgiao diện của một Activity thành các thành phần nhỏ hơn, giúp quản lý giao diện
dễ dàng hơn, đặc biệt trong các ứng dụng có giao diện phức tạp
Implicit Intent: Được sử dụng để yêu cầu hệ thống Android thực hiện một tác vụ
mà không chỉ rõ thành phần cụ thể (ví dụ: mở trang web trong trình duyệt hoặcchia sẻ dữ liệu qua ứng dụng khác)
Service:
Trang 21Là thành phần chạy nền trong ứng dụng, dùng để thực hiện các tác vụ kéo dài
mà không yêu cầu giao diện người dùng, ví dụ như phát nhạc hoặc đồng bộ dữliệu Có hai loại chính:
Started Service: Được khởi động và chạy độc lập cho đến khi hoàn thành tác vụhoặc bị dừng
Bound Service: Cho phép các thành phần khác kết nối và tương tác với nó
3 Lưu trữ và truy xuất cơ sở dữ liệu
Android cung cấp nhiều phương pháp để lưu trữ dữ liệu cục bộ và từ xa:
SharedPreferences: Dùng để lưu trữ các giá trị nhỏ như cài đặt hoặc cấuhình dưới dạng cặp key-value
SQLite Database: Android cung cấp một cơ sở dữ liệu SQLite nhúng, chophép lưu trữ và truy xuất dữ liệu có cấu trúc với khả năng truy vấn phứctạp
Room: Đây là một thư viện ORM (Object Relational Mapping) được xâydựng trên SQLite, giúp đơn giản hóa việc làm việc với cơ sở dữ liệu bằngcách sử dụng các lớp và đối tượng Java thay vì viết câu lệnh SQL thủcông
Content Providers: Dùng để chia sẻ dữ liệu giữa các ứng dụng hoặc truycập dữ liệu từ các ứng dụng khác như danh bạ, hình ảnh, hoặc video
4 Tương tác với phần cứng
Android cung cấp nhiều API để tương tác với phần cứng của thiết bị, bao gồm:
Camera API: Giúp lập trình viên có thể sử dụng camera của thiết bị đểchụp ảnh hoặc quay video từ trong ứng dụng
GPS và Location API: Được sử dụng để lấy vị trí của thiết bị thông qua hệthống định vị toàn cầu (GPS) hoặc thông qua mạng di động/Wi-Fi
Sensor API: Android hỗ trợ các cảm biến trên thiết bị như gia tốc, conquay hồi chuyển, ánh sáng, nhiệt độ, và la bàn Lập trình viên có thể sửdụng các API này để xây dựng các tính năng dựa trên các cảm biến vật lýcủa thiết bị
Bluetooth: Cho phép ứng dụng kết nối và giao tiếp với các thiết bịBluetooth khác như tai nghe, thiết bị đeo tay, hoặc thiết bị IoT
NFC (Near Field Communication): Cho phép giao tiếp tầm gần giữa cácthiết bị để trao đổi dữ liệu hoặc thanh toán không dây
5 Kiểm thử và bảo mật ứng dụng
Kiểm thử ứng dụng:
Trang 22Android hỗ trợ nhiều loại kiểm thử tự động:
Unit Testing: Kiểm thử các phương thức và logic của ứng dụng
UI Testing: Kiểm thử các tương tác người dùng với giao diện bằng cách
sử dụng các framework như Espresso hoặc UI Automator
Integration Testing: Kiểm thử sự kết hợp của các thành phần khác nhautrong ứng dụng
Encryption: Dữ liệu có thể được mã hóa khi lưu trữ cục bộ hoặc truyềnqua mạng để bảo vệ thông tin người dùng
Authentication: Các cơ chế xác thực như mật khẩu, dấu vân tay, hoặcnhận diện khuôn mặt có thể được tích hợp vào ứng dụng để đảm bảo antoàn cho dữ liệu
6 Các thành phần khác
Broadcast Receiver: Như đã đề cập, Broadcast Receiver là thành phầndùng để lắng nghe và xử lý các sự kiện từ hệ thống Android hoặc từ cácứng dụng khác Ví dụ, ứng dụng có thể nhận thông báo khi pin yếu, khingười dùng nhận được tin nhắn mới, hoặc khi thiết bị kết nối vào mạngWi-Fi
Widgets: Android hỗ trợ tạo các widget để hiển thị nội dung ứng dụng trựctiếp trên màn hình chính (home screen) của thiết bị, giúp người dùngtương tác mà không cần mở ứng dụng
Notification: Android cung cấp API để hiển thị thông báo cho người dùngngay cả khi ứng dụng không chạy Notifications có thể chứa văn bản, hìnhảnh, hoặc hành động và giúp duy trì sự tương tác với người dùng
Trang 23CHƯƠNG 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
2.1 Giới thiệu bài toán
2.1.1 Giới thiệu về đề tài
Đề tài này nhằm phát triển một ứng dụng quản lý nhà hàng trên nền tảngAndroid, sử dụng công cụ lập trình Android Studio Ứng dụng sẽ cung cấp cáctính năng tiện ích giúp quản lý các hoạt động kinh doanh của nhà hàng một cáchhiệu quả, từ việc quản lý đơn hàng, bàn ăn, đến quản lý khách hàng, nhân viên
và kho hàng Đồng thời, ứng dụng cũng hỗ trợ chủ nhà hàng tối ưu hóa quy trìnhquản lý và cải thiện trải nghiệm của khách hàng thông qua các tính năng hiện đại
và tiện lợi
Mục tiêu:
Tăng cường trải nghiệm người dùng:
Ứng dụng sẽ cung cấp giao diện trực quan, dễ sử dụng cho cả ngườiquản lý và nhân viên nhà hàng Giao diện sẽ hỗ trợ các tính năng thânthiện, dễ tiếp cận với mọi cấp độ người dùng, từ việc đặt món, thanh toán,cho đến quản lý các hoạt động hàng ngày
Cải thiện tốc độ và hiệu quả xử lý các tác vụ, giảm thiểu thời gian chờ đợicho khách hàng
Tối ưu hóa quy trình quản lý:
Ứng dụng sẽ giúp chủ nhà hàng dễ dàng quản lý tất cả các hoạt động nhưđặt bàn, quản lý kho hàng, theo dõi đơn hàng, và báo cáo doanh thu
Hệ thống sẽ hỗ trợ tự động hóa nhiều quy trình, từ việc nhận đơn hàngtrực tiếp từ khách hàng, cho đến quản lý giao nhận với nhà cung cấp
Tăng cường bảo mật:
Ứng dụng sẽ đảm bảo bảo mật thông tin qua việc sử dụng các phươngthức mã hóa dữ liệu và xác thực người dùng
Các thông tin quan trọng như dữ liệu khách hàng, giao dịch, và thông tintài chính sẽ được bảo vệ để tránh các truy cập trái phép và rủi ro bảo mật
Hỗ trợ chăm sóc khách hàng:
Ứng dụng sẽ hỗ trợ quản lý thông tin khách hàng, giúp theo dõi và tươngtác với khách hàng một cách hiệu quả, như cung cấp lịch sử mua hàng,đánh giá trải nghiệm, và gửi thông báo khuyến mãi
Tích hợp các chương trình chăm sóc khách hàng như thẻ thành viên, giảmgiá, và các dịch vụ cá nhân hóa nhằm nâng cao sự hài lòng của kháchhàng
Trang 242.1.2 Yêu cầu bài toán
Để xây dựng ứng dụng quản lý nhà hang trên nền tảng Android sử dụng android studio , các yêu cầu chính bao gồm:
Yêu cầu về giao diện người dùng (UI/UX):
Thiết kế trực quan và thân thiện: Giao diện cần dễ dàng sử dụngcho cả người quản lý và nhân viên Giao diện phải hiển thị rõ ràngthông tin quan trọng như thực đơn, đơn hàng, trạng thái bàn ăn,doanh thu, v.v
Hỗ trợ cảm ứng và phản hồi nhanh: Ứng dụng phải hoạt động mượt
mà trên các thiết bị cảm ứng, với phản hồi nhanh khi người dùngtương tác
Khả năng tùy chỉnh giao diện: Cho phép quản lý tùy chỉnh một sốphần của giao diện để phù hợp với phong cách và nhu cầu của từngnhà hàng
Yêu cầu về chức năng quản lý:
Quản lý đặt bàn và đơn hàng: Ứng dụng phải cho phép quản lý việcđặt bàn, nhận và xử lý đơn hàng từ khách hàng, và theo dõi tìnhtrạng từng bàn (đang trống, đã đặt, đang phục vụ)
Quản lý thực đơn: Quản lý có thể cập nhật và thay đổi thực đơn, giá
cả và các chi tiết liên quan đến món ăn
Quản lý kho hàng: Theo dõi lượng hàng tồn kho, hỗ trợ quản lý việcnhập/xuất hàng hóa và cảnh báo khi số lượng hàng giảm xuốngdưới mức quy định
Quản lý nhân viên: Cung cấp tính năng để quản lý nhân viên baogồm chấm công, phân quyền truy cập, và theo dõi hiệu suất côngviệc
Quản lý doanh thu và báo cáo: Tích hợp hệ thống báo cáo chi tiết vềdoanh thu, chi phí, lãi lỗ theo ngày, tuần, tháng
Yêu cầu về tính năng hỗ trợ khách hàng:
Quản lý khách hàng: Lưu trữ thông tin khách hàng, cho phép theodõi lịch sử mua hàng, ghi nhận các yêu cầu đặc biệt, và cung cấpdịch vụ khách hàng chuyên biệt
Chương trình khuyến mãi: Hỗ trợ các tính năng gửi thông báokhuyến mãi hoặc ưu đãi đến khách hàng thông qua ứng dụng
Đánh giá và phản hồi: Cung cấp tính năng cho phép khách hàngđánh giá chất lượng dịch vụ và gửi phản hồi trực tiếp qua ứng dụng.Yêu cầu về hiệu suất và bảo mật:
Trang 25 Hiệu suất ứng dụng ổn định: Ứng dụng cần hoạt động ổn định,không bị treo hoặc gián đoạn trong quá trình vận hành nhà hàng,đặc biệt là trong giờ cao điểm.
Bảo mật dữ liệu: Dữ liệu của khách hàng và doanh thu phải đượcbảo mật bằng các phương pháp mã hóa, với hệ thống xác thực chặtchẽ cho người dùng
Quản lý quyền truy cập: Hệ thống cần phân quyền rõ ràng cho từngloại người dùng như quản lý, nhân viên phục vụ, bếp, và kế toán.Yêu cầu về tích hợp phần cứng và phần mềm:
Tích hợp máy in hóa đơn: Hỗ trợ in hóa đơn trực tiếp từ ứng dụngqua máy in kết nối bằng Bluetooth hoặc Wi-Fi
Tích hợp thanh toán điện tử: Hỗ trợ các hình thức thanh toán quathẻ tín dụng, ví điện tử (MoMo, ZaloPay, v.v.), và các cổng thanhtoán trực tuyến khác
Tích hợp với phần mềm kế toán: Kết nối và truyền dữ liệu doanh thuvới các phần mềm kế toán để dễ dàng theo dõi và quản lý tài chính.Yêu cầu về khả năng mở rộng và tương thích:
Khả năng mở rộng: Ứng dụng phải dễ dàng nâng cấp và mở rộngkhi quy mô nhà hàng tăng lên hoặc khi có thêm yêu cầu về tínhnăng
Tương thích đa thiết bị: Ứng dụng cần tương thích với nhiều thiết bịAndroid khác nhau, từ điện thoại thông minh đến máy tính bảng
Đồng bộ hóa dữ liệu: Dữ liệu phải được đồng bộ hóa giữa các thiết
bị sử dụng ứng dụng trong nhà hàng để đảm bảo tính nhất quántrong quá trình quản lý
Yêu cầu về kiểm thử và triển khai:
Kiểm thử đa dạng: Ứng dụng cần được kiểm thử trên nhiều thiết bịvới các kích thước màn hình và phiên bản Android khác nhau đểđảm bảo tính ổn định
Hỗ trợ nhiều ngôn ngữ: Ứng dụng nên hỗ trợ nhiều ngôn ngữ đểphù hợp với khách hàng quốc tế, nếu cần
Triển khai linh hoạt: Dễ dàng triển khai ứng dụng thông qua các cửahàng ứng dụng như Google Play hoặc cài đặt trực tiếp lên thiết bịcủa nhà hàng
2.1.2.1 Giao diện người dùng:
Trang 26Quản lý Menu (Menu):
Hiển thị danh sách các món ăn, thức uống
Chức năng thêm, chỉnh sửa, và xóa món ăn khỏi menu
Quản lý thông tin về giá, nguyên liệu, trạng thái (còn hàng, hết hàng)
Quản lý đơn hàng (Orders):
Hiển thị danh sách đơn hàng hiện tại
Tạo mới đơn hàng, quản lý chi tiết từng đơn hàng (món ăn, số lượng)
Thay đổi trạng thái đơn hàng (đang chuẩn bị, đã giao, đã thanh toán)
Quản lý bàn (Tables):
Quản lý sơ đồ bàn ăn trong nhà hàng
Xem trạng thái bàn (bàn trống, đã có khách, đang chờ)
Đặt chỗ trước và gán đơn hàng vào bàn
Thanh toán (Payment):
Xử lý thanh toán cho các đơn hàng
Tính tổng tiền dựa trên các món đã chọn trong đơn hàng
Hỗ trợ in hóa đơn hoặc gửi hóa đơn qua email
Quản lý nhân viên (Employees):
Hiển thị danh sách nhân viên
Thêm, chỉnh sửa và xóa thông tin nhân viên
Trang 27Phân quyền nhân viên (ví dụ: phục vụ, quản lý, đầu bếp).
Báo cáo (Reports):
Báo cáo doanh thu theo ngày, tuần, tháng
Thống kê các món ăn bán chạy nhất
Theo dõi lượng khách hàng, số lượng đơn hàng
Chia sẻ (Share):
Chia sẻ thông tin nhà hàng hoặc thực đơn qua mạng xã hội hoặc email
Khuyến mãi, ưu đãi có thể chia sẻ dễ dàng với khách hàng
Cài đặt (Settings):
Thay đổi thông tin tài khoản, mật khẩu của người dùng
Cài đặt cấu hình khác như thông báo, ngôn ngữ, đơn vị tiền tệ
2.1.2.3 Các bước triển khai
Phân tích yêu cầu
Thu thập yêu cầu: Làm việc với khách hàng và các bên liên quan để hiểu
rõ các yêu cầu và mong đợi
Phân tích và tài liệu hóa yêu cầu: Ghi chép và xác nhận các yêu cầu chi tiết về chức năng và phi chức năng
Thiết kế hệ thống
Phát triển hệ thống
2.1.2.4 Các yêu cầu cài đặt
a) IDE (Môi trường phát triển tích hợp)
b) Hệ quản trị cơ sở dữ liệu