Ứng dụng Android bán đồ ăn nhanh là một ứng dụng di động giúp người dùng dễ dàng đặt hàng và mua sắm đồ ăn nhanh từ các nhà hàng, quán ăn, cửa hàng tiện lợi. Với giao diện thân thiện và tính năng đa dạng, người dùng có thể duyệt qua danh sách các món ăn, xem thông tin chi tiết, chọn món, thêm vào giỏ hàng và thanh toán trực tuyến. Ứng dụng cũng cung cấp tính năng tìm kiếm và lọc món ăn theo loại, giá cả và vị trí địa lý, giúp người dùng dễ dàng tìm kiếm món ăn yêu thích hoặc gần nhất. Đồng thời, ứng dụng cũng có thể cung cấp thông tin về khuyến mãi, đánh giá của người dùng và địa chỉ, giúp người dùng có trải nghiệm mua sắm đồ ăn nhanh thuận tiện và tiết kiệm thời gian.
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
-
🙞🙞🙞🙞🙞 -BÁO CÁO THỰC NGHIỆM THUỘC HỌC PHẦN PHÁT TRIỂN ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG
ĐỀ TÀI:
XÂY DỰNG ỨNG DỤNG ANDROID BÁN ĐỒ ĂN NHANH
Sinh viên : Lê Văn Dương
Hoàng Văn Hiệp Phùng Thị Hồng
Nhóm : 21
Hà Nội - 2023
Trang 2MỤC LỤC
DANH MỤC BẢNG BIỂU 3
DANH MỤC HÌNH ẢNH 4
LỜI CẢM ƠN 5
LỜI NÓI ĐẦU 6
CHƯƠNG 1 TỔNG QUAN 8
1.1 Lý do chọn đề tài 8
1.2 Mục tiêu đề tài 8
1.3 Đối tượng và phạm vi nghiên cứu 8
1.4 Ý nghĩa thực tiễn 9
1.5 Cấu trúc đồ án 10
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 11
2.1 Tổng quan về Android 11
2.1.1 Giới thiệu về HĐH Android 11
2.1.2 Kiến trúc Android 12
2.2 Tổng quan về Android Studio 13
2.3 Tổng quan về ROOMDB 14
CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 16
3.1 Các yêu cầu chức năng 16
3.1.1 Các yêu cầu chức năng 16
3.1.2 Các yêu cầu phi chức năng 16
3.2 Biểu đồ use case 17
3.3 Mô tả chi tiết use case 18
3.3.1 Mô tả use case Đăng nhập 18
Trang 33.3.2 Mô tả use case Đăng Ký 19
3.3.3 Mô tả use case Tìm kiếm sản phẩm 20
3.3.4 Mô tả use case Đặt hàng 21
3.3.5 Mô tả use case Quản lý sản phẩm 22
3.3.6 Mô tả use case Quản lý đơn hàng 23
3.3.7 Mô tả use case Thống kê 24
3.4 Biểu đồ cơ sở dữ liệu 25
CHƯƠNG 4 KẾT QUẢ 26
4.1 Các chức năng đã hoàn thành 26
4.1.1 Đăng nhập 26
4.1.2 Đăng ký 26
4.1.3 Đổi mật khẩu 27
4.1.4 Tìm kiếm sản phẩm 27
4.1.5 Thêm sản phẩm 28
4.1.6 Thống kê 28
4.2 Các chức năng dự kiến 29
KẾT LUẬN 30
TÀI LIỆU THAM KHẢO 32
Trang 4DANH MỤC BẢNG BIỂU
Biểu đồ 3.1: Biểu đồ use case tổng quát 17Biểu đồ 3.2: Biểu đồ cơ sở dữ liệu 25
DANH MỤC HÌNH ẢN
Trang 5Hình 4.1: Màn hình đăng nhập ứng dụng 26
Hình 4.2: Màn hình đăng ký tài khoản 26
Hình 4.3: Màn hình đổi mật khẩu 27
Hình 4.4: Màn hình tìm kiếm sản phẩm 27
Hình 4.5: Màn hình thêm sản phẩm 28
Hình 4.6: Màn hình chức năng thống kê 28
Trang 6LỜI CẢM ƠN
Để thực hiện và hoàn thành tốt bài tập lớn môn học phát triển ứng dụng trên thiết bị di động, chúng em đã nhận được sự giúp đỡ và hướng dẫn rất tận tình của thầy giáo Tiến Sỹ Hà Mạnh Đào thuộc Khoa Công nghệ thông tin, trường Đại học Công Nghiệp Hà Nội Với tình cảm sâu sắc và chân thành, xinphép chúng em được bày tỏ lòng biết ơn đến thầy
Sự giúp đỡ và sự đồng hành của thầy đã đóng vai trò vô cùng quan trọngtrong quá trình nghiên cứu của chúng em Cả nhóm rất mong muốn nhận được ý kiến đóng góp từ thầy để đề tài được hoàn thiện hơn Sự phản hồi và góp ý từ thầy sẽ giúp chúng em nắm bắt được các khía cạnh cần cải thiện và phát triển thêm ý tưởng mới Chúng em rất trân trọng mọi đóng góp và mong được học hỏi thêm từ sự chuyên môn và kinh nghiệm của thầy Chúng em xinchúc thầy luôn dồi dào sức khoẻ, vui vẻ và thành công trong cuộc sống
Chúng em xin chân thành cảm ơn!
Nhóm sinh viên thực hiện
Nhóm 21
Trang 7LỜI NÓI ĐẦU
Trong thời đại số hóa ngày nay, các ứng dụng di động đã trở thành một yếu tố quan trọng không thể thiếu trong cuộc sống hàng ngày của chúng ta
Sự phổ biến của các thiết bị di động như điện thoại thông minh và máy tính bảng đã tạo ra một thị trường lớn cho các ứng dụng di động Từ việc mua sắmtrực tuyến, học tập, giải trí, đến việc quản lý công việc, ứng dụng di động đã mang lại sự tiện lợi và hiệu quả cho người dùng Chúng giúp chúng ta kết nối với thế giới xung quanh một cách dễ dàng hơn, giúp chúng ta tiếp cận với thông tin nhanh chóng và thuận tiện hơn
Do đó, việc nắm vững kiến thức và kỹ năng phát triển ứng dụng di động là rất cần thiết cho sinh viên ngành Công nghệ thông tin Việc này không chỉ giúp sinh viên hiểu rõ hơn về công nghệ hiện đại, mà còn giúp họ có thể tạo
ra những sản phẩm phần mềm hữu ích, đáp ứng nhu cầu của xã hội Hơn nữa, với kỹ năng này, sinh viên có thể mở rộng cơ hội nghề nghiệp của mình, không chỉ trong lĩnh vực công nghệ thông tin, mà còn trong nhiều lĩnh vực khác như kinh doanh, giáo dục, y tế,…
Trong bài tập lớn môn Phát triển ứng dụng trên thiết bị di động, chúng ta
sẽ tìm hiểu về quy trình phát triển ứng dụng từ giai đoạn thiết kế đến triển khai
Để làm được điều đó, bài tập lớn này sẽ được chia thành bốn chương:Chương 1: Tổng quan về đề tài Chương này sẽ giới thiệu về lý do chọn
đề tài, mục tiêu cũng như ý nghĩa của đề tài
Chương 2: Trình bày cơ sở lý thuyết về phát triển ứng dụng di động, baogồm giới thiệu về android, phần mềm android studio và ROOMDB
Chương 3: Phân tích và thiết kế hệ thống Chương này sẽ trình bày chi tiết về quy trình phân tích yêu cầu, đặc tả các use case và cơ sở dữ liệu
Trang 8Chương 4: Kết quả thực hiện Chương này sẽ trình bày về kết quả thực hiện được, bao gồm các giao diện của ứng dụng.
Qua bài tập lớn này, hy vọng rằng chúng ta sẽ có cái nhìn sâu hơn về quy trình phát triển ứng dụng di động, từ đó nắm vững kiến thức và kỹ năng cần thiết để có thể tự tin tham gia vào thị trường công nghệ đang phát triển nhanh chóng này
Trang 9CHƯƠNG 1 TỔNG QUAN
1.1 Lý do chọn đề tài
Trong bối cảnh kinh tế thị trường phát triển, nhu cầu tiêu dùng đồ ănnhanh ngày càng tăng cao Thói quen ăn uống và lối sống bận rộn khiến đồ ănnhanh trở thành sự lựa chọn thuận tiện và phổ biến Các nhà hàng, quán ănnhỏ lẻ ra đời ngày càng nhiều Song song với xu hướng đó, thị trường ứngdụng di động cũng phát triển mạnh mẽ Người dùng có xu hướng lựa chọn cácgiải pháp mua sắm, giao dịch trực tuyến thay vì trực tiếp để tiết kiệm thờigian Do đó, các ứng dụng giao đồ ăn trực tuyến được ra đời và nhanh chóngtrở nên phổ biến
Xu hướng này mở ra cơ hội lớn cho các doanh nghiệp nhỏ bán đồ ăn cóthể mở rộng thị trường tiêu thụ sản phẩm của mình thông qua kênh ứng dụng
Vì vậy, xây dựng ứng dụng Android bán đồ ăn nhanh là hướng đi có tiềmnăng lớn, đáp ứng xu thế thị trường và có thể ứng dụng thực tiễn Với những
lý do này, nhóm chúng em xin chọn đề tài “XÂY DỰNG ỨNG DỤNGANDROID BÁN ĐỒ ĂN NHANH”
Trang 101.3 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: Người tiêu dùng có nhu cầu đặt hàng đồ ăn nhanhPhạm vi nghiên cứu: Thị trường đồ ăn nhanh trong khu vực quanh trườngĐại Học Công Nghiệp Hà Nội
- Các chức năng chính của ứng dụng:
+ Đặt món ăn
+ Thanh toán đơn hàng
+ Quản lý tài khoản người dùng
+ Quản lý thực đơn của cửa hàng
+ Quản lý các đơn hàng
+ Thống kê doanh thu
- Người dùng: Khách hàng đặt món, nhân viên và quản lý cửa hàng/nhàhàng
- Công nghệ sử dụng:
+ Ngôn ngữ lập trình: Java trên nền tảng Android
+ Cơ sở dữ liệu: ROOMDB
+ Môi trường phát triển: Android Studio
+ Tích hợp chụp ảnh và sử dụng ảnh trong thiết bị
- Phạm vi triển khai: Mô hình demo ứng dụng trên máy thật
1.4 Ý nghĩa thực tiễn
Ý nghĩa khoa học và thực tiễn của đề tài "Xây dựng ứng dụng Androidbán đồ ăn nhanh" bao gồm:
- Nghiên cứu và áp dụng công nghệ: Xây dựng ứng dụng Android bán đồ
ăn nhanh đòi hỏi việc nghiên cứu và áp dụng các công nghệ liên quannhư lập trình Android, giao diện người dùng Điều này đóng góp vàoviệc phát triển kiến thức và kỹ năng trong lĩnh vực công nghệ thông tin
Trang 11- Tích hợp kiến thức về quản lý và kinh doanh: Xây dựng ứng dụng bánđồ ăn nhanh đòi hỏi hiểu biết về quản lý đơn hàng, quản lý thực đơn,thống kê doanh số và tương tác với khách hàng.
- Đáp ứng nhu cầu thực tế của người dùng: Ứng dụng Android bán đồ ănnhanh giúp đáp ứng nhu cầu tiêu dùng và mua sắm hàng ngày củangười dùng thông qua cách thức đơn giản và thuận tiện Điều này manglại giá trị thực tiễn và cải thiện trải nghiệm mua sắm và giao dịch củangười dùng
Tóm lại, đề tài "Xây dựng ứng dụng Android bán đồ ăn nhanh" khôngchỉ mang ý nghĩa khoa học trong việc nghiên cứu và áp dụng công nghệ, màcòn có ý nghĩa thực tiễn trong việc đáp ứng nhu cầu thực tế của người dùng,mở rộng thị trường và tối ưu hóa kinh doanh
Trang 12CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Tổng quan về Android
2.1.1 Giới thiệu về HĐH Android
Android là một hệ điều hành di động dựa trên nền tảng linux dành chocác dòng điện thoại SmartPhone Đầu tiên được ra đời bởi công ty liên hợpAndroid, sau đó được Google mua lại và phát triển từ năm 2005 và trở thànhmột hệ điều hành di động mã nguồn mở, miễn phí, mạnh mẽ và được ưachuộng cao trên thế giới Hệ điều hành Android một hệ điều hành rất mạnhmạnh, có bảo mật cao, hỗ trợ được nhiều công nghệ tiên tiến như 4G, 5G,Bluetooth, Wifi tương thích với nhiều phần cứng, hỗ trợ nhiều loại bộ nhậpdữ liệu như keyboard, touch và trackball Android là hệ điều hành di động nên
có khả năng kết nối cao với các mạng không dây, hỗ trợ công nghệ OpenGLnên có khả năng chơi các phương tiện media, hoạt hình cũng như trình diễncác khả năng đồ họa khác cực tốt, là tiền đề để phát triển các ứng dụng cógiao diện phức tạp chẳng hạn như là các trò chơi
Android liên tục được phát triển, mỗi bản cập nhật từ google là mỗi lầnandroid được tối ưu hóa để hoạt động tốt hơn, nhanh và ổn định hơn, hỗ trợthêm công nghệ mới Chẳng hạn như theo một đánh giá thì android phiên bản2.2 hoạt động nhanh hơn bản 2.1 tới 450% Hiện nay, phiên bản mới nhấtAndroid 14 phát hành ngày 4/10/2023 và đang tiếp tục được cập nhật
Năm 2008, hệ điều hành android đã chính thức mở toàn bộ mã nguồn,điều đó cho phép các hãng điện thoại có thể đem mã nguồn về tùy chỉnh, thiết
kế lại sao cho phù hợp với mỗi mẫu mã điện thoại của họ và điều quan trọngnữa là hệ điều hành mở này hoàn toàn miễn phí, không phải trả tiền nên giúp
họ tiết kiệm khá lớn chi phí phát triển hệ điều hành Những điều đó là cực kỳtốt không chỉ đối với các hãng sản xuất điện thoại nhỏ mà ngay cả với nhữnghãng lớn như Samsung, HTC, Vì android hoàn toàn miễn phí, Googlekhông thu tiền từ những hãng sản xuất điện thoại, tuy không trực tiếp hưởng
Trang 13lợi từ Android nhưng bù lại, những dịch vụ của hãng như Google Search,Google Maps, nhờ có android mà có thể dễ dàng xâm nhập nhanh vào thịtrường di động vì mỗi chiếc điện thoại được sản xuất ra đều được tích hợphàng loạt dịch vụ của Google Từ đó hãng có thể kiếm bội, chủ yếu là từ cácnguồn quảng cáo trên các dịch vụ đó Với các nhà phát triển ứng dụng(developers), việc hệ điều hành android được sử dụng phổ biến đồng nghĩavới việc họ có thể thoải mái phát triển ứng dụng trên nền Android với sự tintưởng là ứng dụng đó sẽ có thể chạy được ngay trên nhiều dòng điện thoại củacác hãng khác nhau Họ ít phải quan tâm là đang phát triển cho điện thoạinào, phiên bản bao nhiêu vì nền tảng Android là chung cho nhiều dòng máy,máy ảo Java đã chịu trách nhiệm thực thi những ứng dụng phù hợp với mỗidòng điện thoại mà nó đang chạy
Một số hãng sản xuất điện thoại có sử dụng hệ điều hành android tiêu biểu:
- SAMSUNG với các dòng máy Samsung Galaxy S10, Galaxy A50,Galxaxy Note 8, Galaxay A30,…
- SONY: XPERIA X10, XPERIA X10 mini, XPERIA X8,…
2.1.2 Kiến trúc Android
Kiến trúc Android chứa nhiều thành phần khác nhau để hỗ trợ mọi nhucầu của thiết bị Android Phần mềm Android chứa Linux Kernel mã nguồnmở có bộ sưu tập các thư viện C/C++ được tiếp cận thông qua các frameworkứng dụng
Trong số tất cả các thành phần, Linux Kernel cung cấp chức năng chínhcủa các chức năng hệ điều hành cho điện thoại thông minh và máy ảo Dalvik(DVM) cung cấp nền tảng để chạy ứng dụng Android
Các thành phần chính của kiến trúc Android bao gồm:
- Nhân Linux (Linux Kernel): Android sử dụng lõi hạt nhân Linux làmlõi của hệ điều hành Lõi hạt nhân cung cấp các chức năng cơ bản nhưquản lý bộ nhớ, quản lý tác vụ, điều khiển phần cứng và giao tiếp vớicác tầng cao hơn trong kiến trúc
Trang 14- Thư viện nền tảng (Platform Libraries): Android cung cấp một số thưviện được viết bằng ngôn ngữ C/C++ như libc (thư viện chuẩn của C),libm (thư viện toán học), libz (thư viện nén/giải nén dữ liệu),libwebcore (trình duyệt web), và nhiều thư viện dựa trên Java nhưMedia, Graphics, Surface Manager, OpenGL, v.v Các thư viện nàycung cấp các chức năng cần thiết để phát triển ứng dụng Android.
- Môi trường thực thi (Android Runtime): Môi trường thực thi AndroidRuntime (ART) là một môi trường thực thi ứng dụng chạy trên các thiếtbị Android ART sử dụng ngôn ngữ Java để phát triển ứng dụngAndroid Mã nguồn Java được biên dịch thành mã bytecode Dalvikhoặc mã máy (JIT - Just-in-Time) trước khi chạy trên thiết bị
- Khung ứng dụng (Application Framework): Framework ứng dụngAndroid cung cấp các lớp và API để phát triển ứng dụng Android Nóbao gồm các thành phần như Activity Manager (quản lý hoạt động),Content Providers (cung cấp dữ liệu), Resource Manager (quản lý tàinguyên), Notification Manager (quản lý thông báo), và nhiều thànhphần khác Framework ứng dụng cung cấp một cách tiếp cận dễ dàngvà phổ biến cho việc xây dựng các ứng dụng Android
- Ứng dụng (Application): Android hỗ trợ việc phát triển và chạy cácứng dụng di động Người phát triển có thể viết các ứng dụng Androidbằng Java, Kotlin hoặc C++ Ứng dụng Android có thể được cài đặt vàchạy trên các thiết bị Android khác nhau
2.2 Tổng quan về Android Studio
Android Studio là một môi trường phát triển tích hợp (IDE) được pháttriển bởi Google, được sử dụng để phát triển ứng dụng di động dựa trên nềntảng Android Đây là công cụ chính thức và mạnh mẽ nhất cho việc xây dựngứng dụng Android
Một số đặc điểm nổi bật của Android Studio bao gồm:
Trang 15- Dựa trên IntelliJ IDEA của JetBrains, cung cấp giao diện thân thiện,tính năng tự động hoàn thiện mã nguồn tiên tiến.
- Tích hợp trực tiếp các công cụ phát triển Android như máy ảo thiếtbị, trình xây dựng Gradle, máy đo lường hiệu suất, framework nhắmmục tiêu nhiều thiết bị và phiên bản Android
- Hỗ trợ viết và debug ứng dụng Android bằng các ngôn ngữ Java,Kotlin và C/C++ Cho phép xây dựng giao diện ứng dụng bằng cảXML và Jetpack Compose
- Tích hợp GitHub để quản lý mã nguồn, xem lịch sử thay đổi và đưaứng dụng lên GitHub
- Dễ dàng triển khai, kiểm tra và phân phối ứng dụng Android đến cáccửa hàng ứng dụng khác nhau
- Cập nhật liên tục các phiên bản và tính năng mới của Android SDK,
hỗ trợ tối đa quá trình phát triển ứng dụng
2.3 Tổng quan về ROOMDB
RoomDB (Room Database) là một thư viện được cung cấp bởi Googletrong Android Jetpack, được sử dụng để làm việc với cơ sở dữ liệu SQLitetrong ứng dụng Android RoomDB cung cấp một lớp trừu tượng hóa và dễ sửdụng để quản lý cơ sở dữ liệu SQLite và tạo lớp truy cập dữ liệu (Data AccessObject - DAO) để thực hiện các thao tác CRUD (Create, Read, Update,Delete) trên dữ liệu cơ sở dữ liệu
Các lợi ích chính của RoomDB bao gồm:
Sáng sủa và dễ dàng sử dụng: RoomDB giúp giảm đáng kể sốlượng mã phải viết để tương tác với cơ sở dữ liệu SQLite Nócung cấp cú pháp dễ đọc và hiểu, giúp cho việc quản lý dữ liệutrong ứng dụng trở nên dễ dàng hơn
Tự động tạo bảng và quản lý schema: RoomDB tự động tạo vàquản lý schema cơ sở dữ liệu SQLite, không cần phải viết mã
Trang 16SQL tạo bảng hoặc nâng cấp phiên bản cơ sở dữ liệu Điều nàygiúp giảm rủi ro lỗi do quản lý cơ sở dữ liệu thủ công.
Hỗ trợ LiveData và RxJava: RoomDB tích hợp tốt với các thànhphần kiến trúc kiểu dữ liệu tự động như LiveData và RxJava,giúp bạn xây dựng ứng dụng có khả năng quản lý dữ liệu và cậpnhật giao diện người dùng một cách hiệu quả
Kiểm tra thời gian biên dịch: RoomDB cung cấp lợi ích của kiểmtra thời gian biên dịch, cho phép bạn phát hiện lỗi trong truy vấnSQL hoặc tên cột cơ sở dữ liệu tại thời điểm biên dịch thay vìphải chờ đến thời gian chạy ứng dụng
Với RoomDB, việc làm việc với cơ sở dữ liệu trong ứng dụng Android trở nên hiệu quả và dễ dàng hơn, giúp giảm thời gian phát triển và nâng cao tính ổn định của ứng dụng
Trang 17CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ HỆ THỐNG
3.1 Các yêu cầu chức năng
3.1.1 Các yêu cầu chức năng Chức năng
Đăng nhậpĐăng ký Quản lý sản phẩmĐặt hàng
Tìm kiếm sản phẩmQuản lý đơn hàngThống kê
3.1.2 Các yêu cầu phi chức năng
- Hiệu năng hoạt động: Hiệu năng liên quan đến tài nguyên được sử dụngtrong các điều kiện nhất định
- Tính tương thích: Thực thi các chức năng cần thiết của người dùng
- Tính khả dụng: Dễ sử dụng, giao diện bố cục rõ ràng, khả năng truy cậpnhanh
- Tính tin cậy: Thực hiện các chức năng nhanh chóng và chính xác
- An toàn thông tin: Mức độ hệ thống có thể bảo vệ thông tin, dữ liệu vàđảm bảo các cá nhân, hệ thống khác có thể truy cập dữ liệu trong phạm
vi được cho phép