1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Đồ án tốt nghiệp Android bán hàng coffee online sử dụng ngôn ngữ Kotlin

71 4 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Đồ án tốt nghiệp xây dựng ứng dụng bán coffee online sử dụng Kotlin với 2 role Admin và User. với đầy đủ các chức năng như đăng nhập ,đăng kí, quản lí đồ uống, quán lí đơn hàng....... Đáp ứng được đầy đủ các chức năng cần thiết của 1 ứng dung online.

Trang 1

-ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌCNGÀNH CÔNG NGHỆ THÔNG TIN

XÂY DỰNG ỨNG DỤNG BÁN CÀ PHÊ TRÊN HỆ ĐIỀU HÀNHANDROID SỬ DỤNG NGÔN NGỮ KOTLIN

Hà Nội – Năm 2024

LỜI CẢM ƠN

Sau 4 năm học tập và rèn luyện tại Trường Đại học Công Nghiệp Hà Nội, đồán tốt nghiệp này là một dấu ấn quan trọng đánh dấu việc em - một sinh viênđã hoàn thành nhiệm vụ của mình trên ghế giảng đường Đại học Đầu tiên,với tình cảm sâu sắc, chân thành, cho phép em được bày tỏ lòng biết ơn sâu

Trang 2

sắc đến Gia đình, các anh chị, bạn bè đã luôn động viên, khích lệ, tạo điềukiện giúp đỡ em trong suốt quá trình học tập và nghiên cứu đề tài.

Em cũng xin gửi tới các thầy các cô khoa Công Nghệ Thông Tin Trường Đạihọc Công Nghiệp Hà Nội lời chào trân trọng, lời chúc sức khỏe và lời cảm ơnsâu sắc Với sự quan tâm, dạy dỗ, chỉ bảo tận tình chu đáo của thầy cô, đếnnay em đã có thể hoàn thành đồ án tốt nghiệp, đề tài: “Xây dựng ứng dụngbán cà phê trên hệ điều hành Android sử dụng ngôn ngữ Kotlin”.

Đặc biệt em xin gửi lời cảm ơn chân thành đến người đã tận tình giúp vàhướng dẫn em hoàn thành đề tài đồ án.

Đồng thời, em xin bày tỏ lòng biết ơn đến lãnh đạo Trường Đại học CôngNghiệp Hà Nội, các Khoa, Phòng ban chức năng đã tạo điều kiện cho emđược học tập tại nơi mà em yêu thích, cho em bước vào đời sống thực tế và ápdụng những kiến thức em đã học tại trường và môi trường làm việc mới củaem Qua quá trình học tập em đã tích lũy được rất nhiều kiến thức để chuẩn bịcho công việc sau này cũng như để phát triển thêm bản thân.

Trong quá trình hoàn thành đồ án tốt nghiệp không thể tránh khỏi thiếu sót,kính mong có sự góp ý từ thầy cô.

Em xin chân thành cảm ơn!

LỜI NÓI ĐẦU

Trước hết, em xin gửi lời cảm ơn chân thành đến quý thầy cô trong khoaCông nghệ Thông tin trường đại học công nghiệp Hà Nội đã tận tình giảngdạy và truyền đạt kiến thức quý báu cho em trong suốt quá trình học tập vànghiên cứu Thầy giáo hướng dẫn đề tài

, giảng viên Khoa Công nghệ thông tin Trường Đại học Công Nghiệp Hà Nội– đã tận tụy hết lòng giúp đỡ, hướng dẫn, chỉ dẫn tận tình Nhờ sự hướng dẫn

Trang 3

và hỗ trợ của quý thầy cô, em đã có cơ hội phát triển ý tưởng và hiện thực hóađồ án này.

Đồ án "Xây dựng ứng dụng bán cà phê trên hệ điều hành Android sử dụngngôn ngữ Kotlin" được thực hiện với mục tiêu tạo ra một nền tảng mua bán càphê tiện lợi và hiệu quả trên điện thoại di động Trong bối cảnh công nghệthông tin ngày càng phát triển và nhu cầu sử dụng các ứng dụng di động ngàycàng tăng, việc xây dựng một ứng dụng bán hàng trên nền tảng Android làmột bước đi cần thiết để đáp ứng xu hướng thị trường và nhu cầu của ngườitiêu dùng.

Qua quá trình nghiên cứu và triển khai, em đã cố gắng áp dụng những kiếnthức đã học về lập trình Android và ngôn ngữ Kotlin để phát triển các tínhnăng cơ bản của ứng dụng như: đặt hàng trực tuyến, quản lý giỏ hàng, thanhtoán điện tử và theo dõi đơn hàng Tuy nhiên, do giới hạn về thời gian vànguồn lực, đồ án chắc chắn sẽ còn nhiều thiếu sót và hạn chế Em rất mongnhận được sự góp ý và hướng dẫn từ quý thầy cô để có thể hoàn thiện hơntrong những lần triển khai sau.

Xin chân thành cảm ơn quý thầy cô và các bạn đã dành thời gian đọc và đánhgiá đồ án này Em hy vọng rằng những nội dung được trình bày sẽ mang lạinhững thông tin hữu ích và có giá trị thực tiễn cao.

Trang 4

3 Mục tiêu của đề tài 11

4 Đối tượng và phạm vi 12

5 Kết quả dự kiến đạt được 12

6 Cấu trúc của đề tài 12

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 13

1.1 Tổng quan về hệ điều hành Android 13

1.1.1 Giới thiệu về Android 13

1.1.2 Lịch sử phát triển 13

1.1.3 Kiến trúc của Android 13

1.2 Mô hình thiết kế Model View Controller(MVC) 14

1.2.1 Model View Controller(MVC) là gì? 14

1.2.2 Ưu điểm và nhược điểm của mô hình MVC 16

1.2.3 Lợi điểm của mô hình MVC 17

1.3 Công nghệ sử dụng trong dự án 18

1.3.1 Giới thiệu về ngôn ngữ kotlin 18

1.3.2 Giới thiệu về AndroidX 19

1.3.3 Giới thiệu về FireBase 20

1.3.4 Giới thiệu về Room Database 21

1.4 Giới thiệu về Android Studio 22

1.4.1 Android Studio là gì ? 22

1.4.2 Ưu điểm của Android Studio 22

1.4.3 Nhược điểm của Android Studio 23

1.4.4 Các tính năng của Android Studio 23

1.5 Kết luận chương 1 24

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 25

2.1 Mô hình Use Case 25

Trang 5

2.1.1 Xác định các Actor 25

2.1.2 Xác định các Use Case 25

2.2 Xây dựng biểu đồ Use Case 25

2.2.1 Biểu đồ Use Case tổng quát 25

2.3 Thiết kế cơ sở dữ liệu 43

2.3.1 Biểu đồ mô tả cấu trúc cơ sở dữ liệu 43

2.3.2 Cơ sở dữ liệu FireBase 45

Trang 6

DANH MỤC CÁC CHỮ VIẾT TẮT

Từ viếttắt

Giải thích

1 Admin Quản trị viên

2 CNTT Công nghệ thông tin3 MVC Model View Controller4 UC User Case

Trang 7

DANH MỤC BẢNG

Bảng 3.1 Kiểm thử chức năng 65

Trang 8

DANH MỤC CÁC HÌNH VẼ

Hình 1.1 Kiến trúc Android 14

Hình 1.2 Mô hình MVC 15

Hình 2.1 Biểu đồ use case tổng quát 25

Hình 2.2 Biểu đồ use case tạo tài khoản 26

Hình 2.3 Biểu đồ trình tự tạo tài khoản 27

Hình 2.4 Biểu đồ use case đăng nhập 27

Hình 2.5 Biểu đồ trình tự đăng nhập 28

Hình 2.6 Biểu đồ use case quên mật khẩu 29

Hình 2.7 Biểu đồ trình tự quên mật khẩu 30

Hình 2.8 Biểu đồ use case xem sản phẩm 30

Hình 2.14 Biểu đồ use case quản lý đơn hàng bên khách hàng 35

Hình 2.15 Biểu đồ trình tự quản lý đơn hàng khách hàng 36

Hình 2.16 Biểu đồ use case thông kê 36

Hình 2.17 Biểu đồ trình tự use case thống kê 37

Hình 2.18 Biểu đồ use case quản lý sản phẩm 37

Hình 2.19 Biểu đồ trình tự quản lý sản phẩm 40

Hình 2.20 Biểu đồ use case quản lý đơn hàng(admin) 40

Hình 2.21 Biểu đồ trình tự quản lý đơn hàng(admin) 41

Hình 2.22 biểu đồ danh mục sản phảm 41

Hình 2.23 Biểu đồ trình tự quản lý danh mục sản phẩm 43

Hình 2.24 Biểu đồ mô tả cấu trúc cơ sở dữ liệu 43

Hình 2.25 Lưu dữ liệu trên Realtime Firebase 45

Hình 2.26 Lưu tài khoản người dùng với Authentication 46

Trang 9

Hình 3.1 Giao diện đăng nhập 47

Hình 3.2 Giao diện tạo tài khoản 48

Hình 3.3 Giao diện quên mật 49

Hình 3.4 Giao diện trang chủ 50

Hình 3.5 Giao diện quản lý giỏ hàng 51

Hình 3.6 Giao diện xem chi tiết sản phẩm 52

Hình 3.7 Giao diện theo dõi đơn hàng 53

Hình 3.8 Giao diện cửa hàng 54

Hình 3.9 Giao diện quản lý người dùng 55

Hình 3.10 Giao diện liên hệ 56

Hình 3.11 Giao diện địa chỉ giao hàng 57

Hình 3.12 Giao diện trang chủ Admin 58

Hình 3.13 Giao diện thêm đồ uống 59

Hình 3.14 Giao diện đơn hàng Admin 60

Hình 3.15 giao diện thống kê 61

Hình 3.16 Giao diện phản hồi 62

Hình 3.17 Giao diện xếp hạng và đánh giá 63

Hình 3.18 Giao diện đơn hàng 64

Trang 10

Các ứng dụng này không chỉ giúp người tiêu dùng dễ dàng đặt mua cà phê chỉvới vài thao tác đơn giản trên điện thoại mà còn mang lại nhiều tiện ích nhưđặt hàng trước, thanh toán trực tuyến, và tích điểm khách hàng thân thiết Cácthương hiệu cà phê lớn như Starbucks, Highlands Coffee, và The CoffeeHouse đều đã ra mắt các ứng dụng di động riêng, thu hút hàng triệu lượt tải vàsử dụng từ khách hàng Không chỉ các thương hiệu lớn, nhiều quán cà phênhỏ lẻ cũng đã bắt đầu triển khai các ứng dụng hoặc hợp tác với các nền tảngđặt hàng trực tuyến để gia tăng doanh số và cải thiện dịch vụ khách hàng.Điều này cho thấy một xu hướng phát triển mạnh mẽ và tiềm năng lớn của thịtrường ứng dụng bán cà phê trên nền tảng di động trong tương lai gần.

Do đó, em đã vận dụng ngôn ngữ lập trình Android đã học và công dụngAndroid Studio để xây dựng ứng dụng di động bán cà phê online với nhữngchức năng cần thiết giúp tối ưu công việc kinh doanh.

3 Mục tiêu của đề tài

Đề tài: Xây dựng ứng dụng bán cà phê trên hệ điều hành Android sử dụng ngôn ngữ Kotlin đápứng được những mục tiêu:

- Tìm hiểu phát huy những kiến thức đã học để hoàn thành ứng dụng bánhàng

- Nắm được kiến thức cơ bản về ngôn ngữ Kotlin

Trang 11

- Thực hiện được công việc phân tích, thiết kế hệ thống ứng dụng quảnlý bán coffee Xây dựng được ứng dụng quản lý bán coffee, hệ thống quản trị.Kiểm thử các chức năng của hệ thống.

4 Đối tượng và phạm viĐối tượng:

Khách hàng muốn mua đồ uống trực tuyến: Bao gồm người dùng cuối cùng, người tiêu dùng muốntìm kiếm thông tin về sản phẩm đồ uống.

Quản lý và nhân viên cửa hàng: Những người sử dụng để quản lý, cập nhật thông tin và hỗ trợkhách hàng trực tiếp qua ứng dụng.

Phạm vi:

Ứng dụng dành cho khách hàng: Ứng dụng được thiết kế và phát triển để đáp ứng nhu cầu củakhách hàng khi họ truy cập vào ứng dụng của cửa hàng Nó sẽ cung cấp thông tin chi tiết về sảnphẩm và thông tin liên quan.

Giao diện quản trị: Một phần quản trị sẽ được tạo ra để quản lý và cập nhật nội dung trên ứngdụng Điều này sẽ cho phép nhân viên của cửa hàng cập nhật thông tin sản phẩm.

5 Kết quả dự kiến đạt được

- Xây dựng ứng dụng bán cà phê trên hệ điều hành Android sử dụngngôn ngữ Kotlin

- Thiết kế được CSDL đáp ứng tốt cho việc viết chương trình.

- Xây dựng được một ứng dụng quản lý hoàn chỉnh của một ứng dụngbán hàng cơ bản.Hoàn thành đầy đủ chức năng cơ bản của một phần mềm:thêm, sửa, xóa, cập nhật thông tin Thống kê, báo cáo.Giao diện chương trìnhthân thiện, dễ sử dụng và trực quan.

6 Cấu trúc của đề tài

Trong báo cáo đồ án này, cấu trúc của đề tài được chia thành 3 chương: Chương 1: Tổng quan về công nghệ sử dụng trong dự án

 Chương 2: Phân tích hệ thống Chương 3: Kết quả và kiểm thử

Trang 12

CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI

1.1 Tổng quan về hệ điều hành Android1.1.1 Giới thiệu về Android

Android là hệ điều hành di động phổ biến nhất thế giới, phát triển bởi Google.Được xây dựng trên nền tảng Linux, Android được thiết kế chủ yếu cho cácthiết bị di động như điện thoại thông minh và máy tính bảng Với tính mở vàkhả năng tùy biến cao, Android đã thu hút được một cộng đồng nhà phát triểnrộng lớn và đa dạng.

1.1.2 Lịch sử phát triển

Android được công ty Android Inc phát triển và sau đó được Google mua lạivào năm 2005 Phiên bản đầu tiên của hệ điều hành này, Android 1.0, đượcphát hành vào năm 2008 Kể từ đó, Android đã trải qua nhiều phiên bản nângcấp, với mỗi phiên bản thường được đặt tên theo các món tráng miệng theothứ tự bảng chữ cái.

1.1.3 Kiến trúc của Android

1 Linux Kernel: Cung cấp các dịch vụ hệ thống cơ bản như bảo mật,quản lý bộ nhớ, quản lý tiến trình, ngăn xếp mạng và driver thiết bị

2 Libraries: Bao gồm các thư viện C/C++ như libc, media framework,graphics, và SQLite.

3 Android Runtime (ART): Máy ảo chạy các ứng dụng Android.

4 Application Framework: Cung cấp các dịch vụ cấp cao để phát triểnứng dụng như quản lý hoạt động (Activity Manager), hệ thống thông báo(Notification Manager), và hệ thống xem (View System).

5 Applications: Các ứng dụng được cài đặt sẵn như điện thoại, email, vàtrình duyệt web.

Trang 13

- Model (DAL - Data Access Layer): Models trong các ứng dụng dựa trênMVC là những thành phần có nhiệm vụ lưu trữ thông tin, trạng thái của cácđối tượng, thông thường nó là một lớp được ánh xạ từ một bảng trong CSDL.Lấy ví dụ, chúng ta có lớp Product được sử dụng để mô tả dữ liệu từ bảngProducts trong SQL, bao gồm ProductID, OrderDate

- Views (Web Website): Views, nó chính là các thành phần chịu trách nhiệmhiển thị các thông tin lên cho người dùng thông qua giao diện Thông thường,các thông tin cần hiển thị được lấy từ thành phần Models Ví dụ, đối tượngProduct có một "Edit" view bao gồm các text boxes, các dropdowns vàcheckboxes để chỉnh sửa các thuộc tính của sản phẩm; có một "Display" viewgồm 2 dòng, cột dòng là ProductID, dòng sau là OrderDate để xem thôngtin về sản phẩm.

Trang 14

- Controllers (Core): Controllers trong các ứng dụng kiêu MVC chịu tráchnhiệm xử lý các tác động về mặt giao diện, các thao tác đối với models, vàcuối cùng là chọn một view thích hợp để hiển thị ra màn hình Trong kiến trúcMVC, view chỉ có tác dụng hiển thị giao diện mà thôi, còn điều kiển dòngnhập xuất của người dùng vẫn do Controllers đảm trách.

- Sau khi hoàn thành việc thu thập, cập nhật thông tin, Model sẽ truyềnnhững thông tin cần thiết về phần Controller.

- Lúc này, phần Controller sẽ quyết định chọn thành phần nào trong phầnView để hiện dữ liệu ra cho người dùng.

Trang 15

- Phần View khi làm nhiệm vụ hiện thông tin cho người dùng cũng cóthể truy cập các thông tin hiển thị từ Model, hoặc gửi thông tin hiển thị tớiModel Trường hợp này xảy ra khi Model chứa các thông tin có thể dùngđể hiện trực tiếp, ví dụ một danh sách khách hàng, hoặc một danh sách cácemail trong mailbox Khi phần View hiện thông tin, nó có thể báo cho phầnModel biết nó đang hiện phần nào của thông tin, ví dụ như “Đang hiệnthông tin khách hàng từ 20 đến 40" Những thông tin loại này không cầnthiết phải gửi qua trung gian Controller

1.2.2 Ưu điểm và nhược điểm của mô hình MVC Ưu điểm

- Đầu tiên, nhắc tới ưu điểm mô hình MVC thì đó là băng thông(Bandwidth) nhẹ vì không sử dụng viewstate nên khá tiết kiệm băng thông.Việc giảm băng thông giúp website hoạt động ổn định hơn.

- Kiểm tra đơn giản và dễ dàng, kiểm tra lỗi phần mềm trước khi bàngiao lại cho người dùng.

- Một lợi thế chính của MVC là nó tách biệt các phần Model, Controllervà View với nhau.

- Sử dụng mô hình MVC chức năng Controller có vai trò quan trọng vàtối ưu trên các nền tảng ngôn ngữ khác nhau

- Ta có thể dễ dàng duy trì ứng dụng vì chúng được tách biệt với nhau.- Có thể chia nhiều developer làm việc cùng một lúc Công việc của cácdeveloper sẽ không ảnh hưởng đến nhau.

- Hỗ trợ TTD (test-driven development) Chúng ta có thể tạo một ứngdụng với unit test và viết các won test case.

- Phiên bản mới nhất của MVC hỗ trợ trợ thiết kế responsive websitemặc định và các mẫu cho mobile Chúng ta có thể tạo công cụ View của riêngmình với cú pháp đơn giản hơn nhiều so với công cụ truyền thống.

 Nhược điểm

Trang 16

- Có thể tạo ra sự phức tạp ban đầu, đặc biệt đối với các ứng dụngnhỏ hoặc lập trình viên mới.

- MVC đa phần phù hợp với công ty chuyên về website hoặc cácdự án lớn thì mô hình này phù hợp hơn so với với các dự án nhỏ, lẻvì khá là cồng kềnh và mất thời gian

- Khó triển khai

1.2.3 Lợi điểm của mô hình MVC

- Quy trình phát triển nhanh hơn: MVC hỗ trợ phát việc phát triển nhanhchóng và song song Nếu một mô hình MVC được dùng để phát triển bấtkỳ ứng dụng web cụ thể nào, một lập trình viên có thể làm việc trên Viewvà một developer khác có thể làm việc với Controller để tạo logic nghiệpvụ cho ứng dụng web đó.Do đó, ứng dụng mô hình MVC có thể được hoànthành nhanh hơn ba lần so với các ứng dụng mô hình khác.

- Khả năng cung cấp nhiều chế độ view: Trong mô hình MVC, bạn cóthể tạo nhiều View cho chỉ một mô hình Ngày nay, nhu cầu có thêm nhiềucách mới để truy cập ứng dụng và đang ngày càng tăng Do đó, việc sửdụng MVC để phát triển chắc chắn là một giải pháp tuyệt vời Hơn nữa, vớiphương pháp này, việc nhân bản code rất hạn chế Vì nó tách biệt dữ liệuvà logic nghiệp vụ khỏi màn hình.

- Các sửa đổi không ảnh hưởng đến toàn bộ mô hình: Đối với bất kỳ ứngdụng web nào, người dùng có xu hướng thay đổi thường xuyên Bạn có thểquan sát thông qua những thay đổi thường xuyên về màu sắc, font chữ, bốcục màn hình Hay là thêm hỗ trợ thiết bị mới cho điện thoại hay máy tínhbảng…Việc thêm một kiểu view mới trong MVC rất đơn giản Vì phầnModel không phụ thuộc vào phần View Do đó, bất kỳ thay đổi nào trongModel sẽ không ảnh hưởng đến toàn bộ kiến trúc.

Trang 17

1.3 Công nghệ sử dụng trong dự án1.3.1 Giới thiệu về ngôn ngữ kotlin

Kotlin là một ngôn ngữ lập trình hiện đại, tĩnh và mã nguồn mở, được pháttriển bởi JetBrains Kotlin được thiết kế để tương thích với Java, giúp các nhàphát triển Java dễ dàng chuyển đổi và sử dụng Google đã chính thức côngnhận Kotlin là ngôn ngữ chính thức cho phát triển ứng dụng Android vào năm2017 Kotlin được giới thiệu lần đầu vào năm 2011 và phiên bản 1.0 ra mắtvào tháng 2 năm 2016 Sự hỗ trợ chính thức từ Google tại hội nghị Google I/O 2017 đã thúc đẩy sự phổ biến của Kotlin trong cộng đồng phát triểnAndroid.

Kotlin có cú pháp ngắn gọn và dễ hiểu, giúp giảm thiểu số dòng mã cần viếtso với Java Nó cũng giảm thiểu các lỗi NullPointerException bằng cách sửdụng hệ thống kiểu dữ liệu an toàn với null Kotlin tương thích hoàn toàn vớiJava, cho phép sử dụng thư viện Java hiện có và tích hợp với mã Java mộtcách dễ dàng Ngoài ra, Kotlin còn cung cấp nhiều tính năng lập trình chứcnăng như lambda, higher-order functions, và lazy evaluation Một trongnhững tính năng nổi bật của Kotlin là các lớp dữ liệu (data classes), giúp tạora các lớp chỉ với các thuộc tính dữ liệu một cách dễ dàng mà không cần viếtnhiều mã boilerplate Kotlin cũng cho phép mở rộng các lớp mà không cần kếthừa chúng thông qua extension functions.

Đặc biệt, Kotlin hỗ trợ lập trình không đồng bộ và xử lý đa luồng một cáchhiệu quả và dễ hiểu nhờ vào coroutines Trong phát triển Android, Kotlin đãtrở thành lựa chọn phổ biến nhờ vào hiệu suất và năng suất cao, cú pháp ngắngọn và các tính năng tiên tiến giúp nhà phát triển viết mã nhanh hơn và ít lỗihơn Các tính năng an toàn về null và hệ thống kiểu mạnh giúp giảm thiểu lỗiruntime Android Studio cung cấp hỗ trợ mạnh mẽ cho Kotlin, bao gồm cảcác công cụ kiểm tra lỗi và gỡ lỗi Kotlin cũng hỗ trợ phát triển ứng dụng đanền tảng với Kotlin/JS cho phép biên dịch mã Kotlin sang JavaScript và

Trang 18

Kotlin/Native cho phép biên dịch mã Kotlin sang mã máy, hỗ trợ phát triểnứng dụng cho các nền tảng không phải JVM như iOS.

Tóm lại, Kotlin mang đến nhiều lợi ích cho các nhà phát triển nhờ vào cúpháp hiện đại, tính tương thích cao với Java, và sự hỗ trợ mạnh mẽ từ cáccông cụ phát triển, giúp Kotlin trở thành lựa chọn hàng đầu cho phát triển ứngdụng Android và các dự án phần mềm khác.

1.3.2 Giới thiệu về AndroidX

AndroidX là một bộ thư viện hỗ trợ phát triển ứng dụng Android, đượcGoogle giới thiệu như là sự kế thừa của thư viện hỗ trợ Android (AndroidSupport Library) AndroidX được tạo ra nhằm cung cấp các tính năng mới vàcải tiến để giúp các nhà phát triển xây dựng ứng dụng Android một cách hiệuquả, linh hoạt và dễ bảo trì hơn AndroidX được phát triển với mục tiêu cảithiện tính nhất quán, khả năng tương thích ngược và tốc độ phát triển.

Một trong những thay đổi lớn của AndroidX so với các thư viện hỗ trợ trướcđó là cách tổ chức và quản lý các thư viện Các thành phần của AndroidXđược đóng gói trong các namespace (không gian tên) riêng biệt, giúp quản lývà cập nhật dễ dàng hơn

AndroidX cung cấp một loạt các thư viện quan trọng cho việc phát triển ứngdụng Android, bao gồm nhưng không giới hạn ở:

1 Jetpack Components: Các thư viện như LiveData, ViewModel, Room,Navigation, và WorkManager giúp giải quyết các thách thức phổ biến trongphát triển ứng dụng như quản lý vòng đời, lưu trữ dữ liệu, điều hướng vàquản lý công việc nền.

2 UI Components: Các thành phần giao diện người dùng nhưRecyclerView, CardView, ConstraintLayout, và nhiều thư viện khác giúpxây dựng giao diện người dùng phức tạp và hiệu quả.

3 Architecture Components: Các thư viện giúp xây dựng các ứng dụng cókiến trúc rõ ràng và dễ bảo trì, bao gồm Data Binding, Paging, vàLifecycle.

Trang 19

4 Testing: Các công cụ và thư viện hỗ trợ kiểm thử như Espresso, JUnit,và UIAutomator giúp đảm bảo chất lượng ứng dụng.

5 Compatibility: Các thư viện giúp đảm bảo ứng dụng hoạt động tốt trênnhiều phiên bản Android khác nhau, giảm thiểu sự cố tương thích.

AndroidX là một bước tiến lớn trong phát triển ứng dụng Android, cung cấpcác công cụ và thư viện hiện đại, linh hoạt và dễ sử dụng, giúp các nhà pháttriển xây dựng các ứng dụng chất lượng cao, dễ bảo trì và có khả năng tươngthích cao trên nhiều thiết bị và phiên bản Android khác nhau.

1.3.3 Giới thiệu về FireBase

Firebase là một nền tảng phát triển ứng dụng di động và web được Googlecung cấp, mang đến một loạt các dịch vụ và công cụ mạnh mẽ giúp các nhàphát triển xây dựng, cải tiến và mở rộng ứng dụng một cách nhanh chóng vàdễ dàng Firebase bắt đầu là một công ty khởi nghiệp vào năm 2011, tập trungvào việc cung cấp dịch vụ đồng bộ dữ liệu thời gian thực Google đã mua lạiFirebase vào năm 2014 và từ đó mở rộng nó thành một nền tảng toàn diện vớinhiều dịch vụ khác nhau.

Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây – cloud.Kèm theo đó là hệ thống máy chủ cực kỳ mạnh mẽ của Google Chức năngchính là giúp người dùng lập trình ứng dụng bằng cách đơn giản hóa các thaotác với cơ sở dữ liệu

Firebase cũng cung cấp danh sách đầy đủ các sản phẩm để hỗ trợ cácDeveloper trong quá trình phát triển Hai tùy chọn cơ sở dữ liệu là Firestorevà Realtime Database của Firebase Tương tự như vậy, Firebase cho phép bạnthực hiện lưu trữ Cloud Media dễ dàng Nó cũng cho phép phát triển ứngdụng không cần máy chủ thông qua việc tích hợp Cloud Functions.

Firebase bao gồm toàn bộ chu trình phát triển ứng dụng Nền tảng này chứacác tính năng để xây dựng, phát hành và giám sát các ứng dụng Ngoài ra, làbước cuối cùng của chu trình phát triển ứng dụng, nó cung cấp các công cụ để

Trang 20

thu hút người dùng và giữ họ sử dụng nó Đây cũng là ưu điểm của Firebaseđược đánh giá khá cao.

1.3.4 Giới thiệu về Room Database

Room Database là một thư viện cơ sở dữ liệu được cung cấp bởi Googletrong Android Jetpack Nó cung cấp một cách thuận tiện để làm việc với cơsở dữ liệu SQLite trong ứng dụng Android Room giúp đơn giản hóa việcquản lý cơ sở dữ liệu bằng cách cung cấp một lớp trừu tượng lập trình (API)trên SQLite và loại bỏ một số công việc lặp đi lặp lại như mở và đóng cơ sởdữ liệu, quản lý phiên và xử lý lỗi.

Các thành phần chính của Room Database:

- Entity: Là một phần tử cơ bản trong Room Database, đại diện cho mộtbảng trong cơ sở dữ liệu Mỗi Entity tương ứng với một bảng trong cơ sởdữ liệu và mỗi trường trong Entity tương ứng với một cột trong bảng đó.

- DAO (Data Access Object): Là một giao diện (interface) định nghĩa cácphương thức để truy cập và thao tác với dữ liệu trong cơ sở dữ liệu Cácphương thức trong DAO thường được đánh dấu bằng các annotation như@Insert, @Update, @Delete, và @Query.

- Database: Là một lớp trừu tượng mô tả cơ sở dữ liệu Nó kế thừa từ lớpRoom Database và cung cấp một phương thức trừu tượng để trả về DAOtương ứng Lớp Database cũng chứa các thông tin cấu hình như phiên bảncủa cơ sở dữ liệu và các điều kiện cần thiết cho việc tạo cơ sở dữ liệu.Lợi ích của việc sử dụng Room Database:

- Dễ sử dụng: Room cung cấp một API dễ sử dụng và hiệu quả cho việclàm việc với cơ sở dữ liệu SQLite trong ứng dụng Android.

- An toàn và kiểm soát: Room giúp tránh các lỗi phổ biến trong việc làmviệc với SQLite như lỗi syntax, lỗi kiểm soát phiên, và lỗi truy cập khôngđồng bộ.

- Hiệu suất cao: Room sử dụng các công nghệ tối ưu hóa để tăng hiệusuất và giảm thiểu tác động đến hiệu suất của ứng dụng.

Trang 21

- Hỗ trợ LiveData và RxJava: Room hỗ trợ tích hợp với các công nghệquan sát dữ liệu như LiveData và RxJava, giúp dễ dàng làm việc với dữliệu thời gian thực.

- Tích hợp Jetpack: Room được tích hợp chặt chẽ với các thành phầnkhác của Android Jetpack như LiveData, ViewModel, và Paging, giúp dễdàng tích hợp và sử dụng trong các ứng dụng Android mới.

1.4 Giới thiệu về Android Studio1.4.1 Android Studio là gì ?

Android Studio là một môi trường tích hợp phát triển (IntegratedDevelopment Environment – IDE) được phát triển bởi Google dành cho việcphát triển ứng dụng trên nền tảng Android Nó cung cấp một loạt các công cụvà tính năng để giúp nhà phát triển xây dựng và triển khai ứng dụng Androidmột cách dễ dàng.

Công cụ này cung cấp một giao diện trực quan và các trình biên dịch, trình gỡlỗi, trình tạo giao diện người dùng, trình quản lý phiên bản và nhiều công cụkhác Nó hỗ trợ viết code trong ngôn ngữ Java hoặc Kotlin và tích hợp sẵncác thư viện và công cụ phát triển Android.

Một trong những tính năng quan trọng của công cụ này là khả năng sử dụngGradle, một hệ thống quản lý dự án mạnh mẽ Gradle cho phép bạn quản lýphụ thuộc, xây dựng, kiểm thử và đóng gói ứng dụng Android một cách linhhoạt và hiệu quả.

1.4.2 Ưu điểm của Android Studio

Với sự phát triển của công nghệ thông tin, có rất nhiều môi trường giúp nhàphát triển có thể phát triển các ứng dụng trên nền tảng Android nhưng nó vẫnkhông thể thay thế Android Studio Vậy ưu điểm của nó là gì mà lại đượcngười sử dụng lựa chọn?

- Đây là môi trường phát triển phần mềm chính thức của Google, đâycũng chính là chủ sở hữu của hệ điều hành Android.

Trang 22

- Công cụ này cung cấp một loạt các công cụ phát triển và tính năng hỗtrợ cho quá trình phát triển ứng dụng Android Điều này bao gồm trình biêndịch, trình gỡ lỗi, trình quản lý dự án, thiết kế giao diện và nhiều tính năngkhác để tăng năng suất và hiệu quả của nhà phát triển.

- Giao diện người dùng thân thiện và dễ sử dụng, giúp tăng hiệu suất vàgiảm thời gian cần thiết để phát triển ứng dụng.

- Hỗ trợ bởi một số tài liệu tham khảo và hướng dẫn phong phú Có sẵncác tài liệu chính thức từ Google, cùng với các diễn đàn lập trình viênAndroid và các nguồn tài liệu trực tuyến khác để giúp nhà phát triển tìm hiểuvà giải quyết các vấn đề phát triển.

- Công cụ này được hỗ trợ thông qua các khóa học đào tạo về lập trìnhAndroid cơ bản và nâng cao Các khóa học này giúp nhà phát triển nắm vữngcác khái niệm và kỹ năng cần thiết để phát triển ứng dụng Android chấtlượng.

1.4.3 Nhược điểm của Android Studio

- Đây là công cụ chiếm lượng lớn dữ liệu trong không gian bộ nhớ máytính nếu được cài đặt

- Việc kiểm tra hoạt động thông qua giả lập gây đơ,lag, giật máy và tiêutốn pin

1.4.4 Các tính năng của Android Studio

Sở dĩ công cụ này được sử dụng phổ biến cũng là nhờ những tính năng ưuviệt của nó Dưới đây là một số tính năng mà công cụ này mang tới cho nhàphát triển:

- Bố cục ứng dụng trực quan, giao diện thân thiện với người sử dụng.Các nhà phát triển có thể thao tác nhanh chóng bằng các thao tác kéo thả, điềunày giúp việc phát triển ứng dụng đơn giản và toàn diện hơn

Trang 23

- Chạy ứng dụng tức thì hỗ trợ các thay đổi thực hiện trong quá trìnhphát triển Người sử dụng có thể chạy thử ngay lập tức mà không mất thêmthời gian xây dựng APK và cài đặt

- Trình mô phỏng ứng dụng nhanh chóng, hỗ trợ mô phỏng hiển thịgiống hệt một chiếc điện thoại Android để nhà phát triển có thể kiểm tra ứngdụng trông như thế nào trong các thiết bị cài đặt

- Chỉnh sửa mã code nhanh chóng nhờ các mã gợi ý trong thư viện nhằmtăng tốc độ viết mã cũng như độ chính xác.

- Instant Run giúp nhà phát triển thay đổi các ứng dụng đang chạy màkhông cần thêm các thao tác xây dựng APK mới

- Hỗ trợ kết nối Firebase giúp tạo các bản cập nhật trực tiếp và cung cấpkết nối cơ sở dữ liệu gốc được cập nhật liên tục

- Có nhiều mẫu có sẵn giúp lập trình viên tạo mới ứng dụng đơn giảndựa vào công cụ wizard.

- Tích hợp tính năng dò và sửa lỗi nhanh chóng

- Hỗ trợ tích hợp Maven và sử dụng kho lưu trữ Maven để quản lý cácthư viện và phụ thuộc của dự án.

1.5 Kết luận chương 1

Trong chương 1, em đã trình bày về việc khảo sát, môi trường thực hiện vàcác nghiên cứu về công nghệ sử dụng trong dự án: khái niệm, cách hoạt động,ưu điểm, nhược điểm, ứng dụng.

Trang 24

CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG

2.1 Mô hình Use Case2.1.1 Xác định các Actor

Dựa vào yêu cầu, ta có các Actor sau: Quản trị viên, Khách hàng.2.1.2 Xác định các Use Case

Các UC ứng với từng actor.

- Quản trị viên(admin): Đăng nhập, đăng ký, quên mật khẩu, tạo tàikhoản, quản lý người dùng, quản lý sản phẩm, quản lý danh mục, quản lý đơnhàng, thống kê.

- Khách hang: Đăng nhập, đăng ký, quên mật khẩu, tạo tài khoản, quảnlý giỏ hàng, quản lý đơn hàng, tìm kiếm sản phẩm, xem sản phẩm, đặt hàng,theo dõi đơn hàng, thanh toán trực tuyến.

2.2 Xây dựng biểu đồ Use Case2.2.1 Biểu đồ Use Case tổng quátSơ đồ UC tổng quát được mô tả hình 2.1.

Trang 25

Hình 2.3 Biểu đồ use case tổng quát

2.2.2 Đặc tả Use Case2.2.2.1 UC tạo tài khoảna) Biểu đồ UC

Hình 2.4 Biểu đồ use case tạo tài khoản

Trang 26

2 Khách hàng nhập thông tin trên form đăng ký gồm tên tài khoản,email, mật khẩu rồi kích vào nút đăng ký Hệ thống sẽ xác thựcthông tin và lưu lại thông tin vào bảng user trong cơ sở dữ liệu

3 UC kết thúc.Luồng rẽ nhánh:

1 Tại bước 2 nếu thông tin nhập vào form không thỏa mãn ví dụnhư email đã được đăng ký hoặc username đã tồn tại hoặc nhậpthông tin mật khẩu lại không chính xác thì hệ thống sẽ báo lỗi UCkết thúc.

2 Tại thời điểm kích nút đăng ký mà client không kết nối đượcserver hoặc server không kết nối được cơ sở sở dữ liệu thì hệ thốngsẽ xuất hiện thống báo lỗi và UC sẽ kết thúc.

Yêu cầu đặc biệt: Không có.Tiền điều kiện: Không có.Hậu điều kiện: Không có.Điểm mở rộng: Không có

c) Biểu đồ trình tự

Hình 2.5 Biểu đồ trình tự tạo tài khoản

Trang 27

2.2.2.2 UC đăng nhậpa) Biểu đồ UC

Hình 2.6 Biểu đồ use case đăng nhập

3 UC kết thúc.Luồng rẽ nhánh:

1 Tại bước 2 nếu thông tin nhập vào form không chính xác thì hệthống sẽ báo lỗi UC kết thúc.

2 Tại thời điểm kích nút đăng nhập mà client không kết nối đượcserver hoặc server không kết nối được cơ sở sở dữ liệu thì hệ thốngsẽ xuất hiện thống báo lỗi và UC sẽ kết thúc.

Yêu cầu đặc biệt: Không có.Tiền điều kiện: Không có.Hậu điều kiện: Không có.Điểm mở rộng: Không có c) Biểu đồ trình tự

Trang 28

Hình 2.7 Biểu đồ trình tự đăng nhập

2.2.2.3 UC quên mật khẩua) Biểu đồ UC

Hình 2.8 Biểu đồ use case quên mật khẩu

Trang 29

2 Khách hàng hoặc admin nhập thông tin email vào màn hình quênmật khẩu Client sẽ gọi API quên mật khẩu từ Server.

3 Server sẽ gửi mail tới email dùng để quên mật khẩu Sau đó sẽclick vào đường link trong email để đặt lại mật khẩu

4 UC kết thúc.Luồng rẽ nhánh:

Yêu cầu đặc biệt: Không có.Tiền điều kiện: Không có.Hậu điều kiện: Không có.Điểm mở rộng: Không có c) Biểu đồ trình tự

Hình 2.9 Biểu đồ trình tự quên mật khẩu

2.2.2.4 UC xem sản phẩma) Biểu đồ UC

Trang 30

Hình 2.10 Biểu đồ use case xem sản phẩm

Yêu cầu đặc biệt: Không có.Tiền điều kiện: Không có.Hậu điều kiện: Không có.Điểm mở rộng: Không có c) Biểu đồ trình tự

Trang 31

Hình 2.11 Biểu đồ trình tự xem sản phẩm

2.2.2.5 UC tìm kiếm sản phẩma) Biểu đồ UC

Hình 2.12 Biểu đồ use case tìm kiếm sản phẩm

Trang 32

1 Tại thời điểm kích nút tìm kiếm mà client không kết nối được server hoặcserver không kết nối được cơ sở sở dữ liệu thì hệ thống sẽ xuất hiện thống báolỗi và UC sẽ kết thúc.

Yêu cầu đặc biệt: Không có.Tiền điều kiện: Không có.Hậu điều kiện: Không có.Điểm mở rộng: Không có

c) Biểu đồ trình tự

Hình 2.13 Biểu đồ trình tự tìm kiếm sản phẩm

2.2.2.6 UC quản lý giỏ hànga) Biểu đồ UC

Hình 2.14 Biểu đồ use case quản lý giỏ hàng

b) Đặc tả UC

Trang 33

UC quản lý giỏ hàng cho phép khách hàng thêm sản phẩm vào giỏ hàng,thêm số lượng sản phẩm, giảm số lượng sản phẩm.

5 UC kết thúc.Luồng rẽ nhánh:

1 Tại bước 2, nếu sản phẩm đã có trong giỏ hàng, hệ thống sẽ hiển thị thôngbáo sản phẩm đã có trong giỏ hàng.

2 Tại bước 3, nếu chưa có sản phẩm nào trong giỏ hàng, hệ thống sẽ hiển thịlên một trang có nội dung chưa có sản phẩm nào trong giỏ hàng

Yêu cầu đặc biệt: Không cóTiền điều kiện: Không cóHậu điều kiện: Không cóĐiều kiện mở rộng: Không cóc) Biểu đồ trình tự

Trang 35

2 Hệ thống sẽ lấy thông tin từ bảng order để hiển thị lên màn hình.3 UC kết thúc.

Yêu cầu đặc biệt: Không có

Tiền điều kiện: Khách hàng đăng nhập vào hệ thốngHậu điều kiện: Không có

Điều kiện mở rộng: Không cóc) Biểu đồ trình tự

Hình 2.17 Biểu đồ trình tự quản lý đơn hàng khách hàng

2.2.2.8 UC thống kêa) Biểu đồ UC

Ngày đăng: 20/06/2024, 22:22

Xem thêm:

w