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

Đồ Án môn học thực tập chuyên môn 1 Đề tài nghiên cứu và xây dựng Ứng dụng quản lý lịch sinh hoạt và làm việc trên nền tảng android

65 1 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

Thông tin cơ bản

Định dạng
Số trang 65
Dung lượng 486,4 KB

Nội dung

Đặc biệt, trong thời đại công nghệ4.0, khi mà mọi thứ đều gắn liền với các thiết bị thông minh, nhu cầu sử dụng ứngdụng di động để quản lý lịch trình và hoạt động cá nhân đang ngày càng

Trang 1

TRƯỜNG ĐẠI HỌC KIẾN TRÚC HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN

-*** -ĐỒ ÁN MÔN HỌC THỰC TẬP CHUYÊN MÔN 1

ĐỀ TÀI: NGHIÊN CỨU VÀ XÂY DỰNG ỨNG DỤNG QUẢN LÝ LỊCH SINH HOẠT VÀ LÀM VIỆC TRÊN NỀN TẢNG ANDROID

Nhóm sinh viên thực hiện: Trương Thịnh Phát

Định Đại NhânNguyễn Việt AnhPhùng Tiến Đạt

Giảng viên hướng dẫn: Ths Phạm Trọng Tuấn

Hà Nội, 10-2024

Trang 2

MỤC LỤC

MỤC LỤC 2

LỜI NÓI ĐẦU 5

DANH MỤC HÌNH ẢNH 6

DANH MỤC BẢNG BIỂU 7

I GIỚI THIỆU CHUNG 9

1.1 Lý do chọn đề tài 9

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

1.3 Phạm vi nghiên cứu 10

1.4 Phương pháp nghiên cứu và triển khai 11

1.4.1 Nghiên cứu lý thuyết 11

1.4.2 Phân tích yêu cầu 11

1.4.3 Thiết kế giao diện người dùng (UI/UX) 11

1.4.4 Triển khai mã nguồn 11

1.4.5 Kiểm thử ứng dụng 12

1.4.6 Đánh giá và cải tiến 12

1.5 Cấu trúc báo cáo 12

II CƠ SỞ LÝ THUYẾT 15

2.1 Tổng quan về ứng dụng quản lý lịch sinh hoạt và làm việc 15

2.2 Tổng quan về nền tảng Android 17

2.2.1 Giới thiệu về nền tảng Android 17

2.2.2 Giao diện và ứng dụng Android 17

2.2.3 Ưu điểm và nhược điểm của hệ điều hành Android 18

2.3 Các công nghệ và công cụ sử dụng 19

2.3.1 Ngôn ngữ lập trình (Java) 19

2.3.1.1 Đặc điểm của Java 19

2.3.1.2 Cấu trúc của Java 20

2.3.1.3 Các thư viện và API phong phú 20

2.3.1.4 Ứng dụng của Java 21

2.3.1.5 Ưu điểm của Java 22

2.3.1.6 Hạn chế của Java 22

2.3.2 Môi trường phát triển (Android Studio, Visual Studio Code) 23

Trang 3

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

2.3.2.2 Yêu cầu hệ thống 24

2.3.2.3 Cách sử dụng Android Studio 24

2.3.2.4 Lợi ích của Android Studio 25

2.3.2.5 Hạn chế của Android Studio 25

2.3.3 Kiến trúc ứng dụng (MVC/MVVM) 25

2.3.4 SQLite cho lưu trữ dữ liệu 26

2.4 Lý thuyết về UX/UI cho ứng dụng di động 27

2.4.1 UX (Trải nghiệm người dùng) 27

2.4.2 UI (Giao diện người dùng) 28

2.4.3 Nguyên tắc thiết kế UX/UI 29

2.4.4 Xu hướng thiết kế UX/UI hiện nay 30

III PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 30

3.1 Phân tích yêu cầu 30

3.1.1 Yêu cầu chức năng 30

3.1.2 Yêu cầu phi chức năng 33

3.2 Thiết kế hệ thống 35

3.2.1 Thiết kế kiến trúc hệ thống 35

3.2.2 Thiết kế cơ sở dữ liệu 35

3.2.3 Sơ đồ luồng dữ liệu (DFD) 37

3.2.4 Sơ đồ hoạt động (Activity Diagram) 38

3.2.5 Sơ đồ lớp (Class Diagram) 39

3.3 Thiết kế giao diện 40

3.3.1 Giao diện quản lý lịch sinh hoạt (lịch công việc, lịch học tập) 40

3.3.2 Giao diện hiển thị và nhắc nhở các sự kiện 41

3.3.3 Giao diện cài đặt và các chức năng khác 42

IV TRIỂN KHAI ỨNG DỤNG 43

4.1 Môi trường phát triển 43

4.1.1 Cài đặt Android Studio hoặc Visual Studio Code 43

4.1.2 Cài đặt và cấu hình SDK, Gradle 45

4.2 Các bước triển khai 48

4.2.1 Xây dựng các chức năng chính 48

4.2.1.1 Chức năng thêm hoạt động 48

Trang 4

4.2.1.2 Chức năng sửa hoạt động 49

4.2.1.3 Chức năng xoá hoạt động 50

4.2.1.4 Chức năng đánh giá hoạt động 51

4.2.1.5 Chức năng theo dõi hoạt động 52

4.2.2 Xây dựng cơ sở dữ liệu và kết nối với ứng dụng 54

4.3 Kiểm thử 55

4.3.1 Phương pháp kiểm thử 55

4.3.2 Kết quả kiểm thử 56

4.3.3 Khắc phục lỗi và cải thiện hiệu suất 57

V ĐÁNH GIÁ VÀ KẾT LUẬN 59

5.1 Đánh giá kết quả đạt được 59

5.2 Hạn chế và khó khăn gặp phải 60

5.3 Hướng phát triển trong tương lai 62

VI PHỤ LỤC 64

6.1 Mã nguồn chính của ứng dụng 64

6.2 Hình ảnh giao diện ứng dụng 64

6.3 Tài liệu kiểm thử 64

VII TÀI LIỆU THAM KHẢO 64

Trang 5

LỜI NÓI ĐẦU

Trong bối cảnh cuộc sống hiện đại với nhịp độ nhanh chóng, việc quản lý thờigian và tổ chức các hoạt động hàng ngày trở thành một yếu tố then chốt giúp nângcao hiệu quả công việc và chất lượng cuộc sống Đặc biệt, trong thời đại công nghệ4.0, khi mà mọi thứ đều gắn liền với các thiết bị thông minh, nhu cầu sử dụng ứngdụng di động để quản lý lịch trình và hoạt động cá nhân đang ngày càng gia tăng.Nhận thức được điều này, nhóm chúng tôi đã quyết định thực hiện đồ án môn thựctập chuyển môn 1 với đề tài "Nghiên cứu và xây dựng ứng dụng quản lý lịch sinhhoạt và làm việc trên nền tảng Android."

Mục tiêu chính của ứng dụng là cung cấp cho người dùng một công cụ tiện ích,cho phép họ dễ dàng lập kế hoạch, theo dõi và đánh giá hiệu suất thực hiện các hoạtđộng trong cuộc sống hàng ngày Ứng dụng không chỉ giúp người dùng sắp xếp lịchtrình một cách hợp lý mà còn cung cấp các chức năng theo dõi và đánh giá, từ đó giúpcải thiện năng suất làm việc và quản lý thời gian hiệu quả hơn

Trong báo cáo này, chúng tôi sẽ trình bày chi tiết quy trình phát triển ứngdụng, bao gồm việc phân tích yêu cầu, thiết kế hệ thống, xây dựng cơ sở dữ liệu vàcài đặt các chức năng chính Chúng tôi cũng sẽ chia sẻ các phương pháp kiểm thử mànhóm đã áp dụng để đảm bảo ứng dụng hoạt động ổn định và hiệu quả, cũng nhưđánh giá kết quả đạt được và những khó khăn mà nhóm đã phải đối mặt trong quátrình thực hiện dự án

Hy vọng rằng sản phẩm mà nhóm chúng tôi đã phát triển sẽ không chỉ đáp ứngđược nhu cầu hiện tại mà còn là nguồn tài liệu tham khảo quý giá cho các nghiên cứu

và phát triển ứng dụng trong tương lai Chúng tôi xin chân thành cảm ơn sự hướngdẫn và hỗ trợ của các thầy cô, cũng như những người đã góp phần vào sự thành côngcủa đồ án này

Trang 6

DANH MỤC HÌNH ẢNH

Hình 3.1 Thiết kế kiến trúc hệ thống 35

Hình 3.2 Sơ đồ luồng dữ liệu (DFD) 37

Hình 3.3 Sơ đồ hoạt động (Activity Diagram) 38

Hình 3.4 Sơ đồ lớp (Class Diagram) 39

Hình 3.5: Màn hình quản lý lịch sinh hoạt và làm việc 40

Hình 3.6: Màn hình quản lý thời gian 41

Hình 3.7: Màn hình tạo lịch sinh hoạt và làm việc 42

Hình 3.8: Màn hình thêm thời gian cho lịch sinh hoạt và làm việc 42

Hình 6.1: Màn hình chính 64

Trang 7

DANH MỤC BẢNG BIỂU

Bảng 3.1 ACTIVITIES 36 Bảng 3.2 RATINGS 36 Bảng 3.3 TRACKEDACTIVITIES 37

Trang 8

DANH MỤC VIẾT TẮT

1 SQL Structured Query Language Ngôn ngữ truy vấn có cấu trúc

2 API Application Programming

Interface Giao diện lập trình ứng dụng

Trang 9

I GIỚI THIỆU CHUNG 1.1 Lý do chọn đề tài

Nhu cầu thực tiễn cao: Trong cuộc sống hiện đại, việc quản lý thời gian hiệu

quả rất quan trọng, giúp người dùng sắp xếp lịch trình, tránh bỏ sót công việc

Phổ biến và dễ tiếp cận: Android là hệ điều hành phổ biến, cho phép ứng

dụng dễ dàng tiếp cận đông đảo người dùng

Phát triển kỹ năng lập trình: Đề tài tạo cơ hội thực hành lập trình Android,

quản lý dữ liệu và tối ưu hóa ứng dụng

Xu hướng cá nhân hóa: Ứng dụng quản lý lịch phù hợp xu hướng cá nhân

hóa, giúp nâng cao trải nghiệm người dùng

Khả năng mở rộng: Ứng dụng có thể phát triển thêm các tính năng như đồng

bộ hóa, phân tích lịch trình và tích hợp AI trong tương lai

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

Phát triển ứng dụng quản lý thời gian hiệu quả: Giúp người dùng tạo, sắp

xếp, và nhắc nhở lịch trình công việc, sự kiện, và hoạt động cá nhân một cách dễdàng

Nâng cao trải nghiệm người dùng: Thiết kế giao diện thân thiện, dễ sử dụng,

hỗ trợ người dùng quản lý thời gian nhanh chóng và hiệu quả trên thiết bị di động

Cung cấp tính năng đồng bộ và nhắc nhở thông minh: Đồng bộ hóa lịch

với các ứng dụng khác (như Google Calendar), tích hợp thông báo để đảm bảo ngườidùng không bỏ lỡ sự kiện quan trọng

Trang 10

Tạo nền tảng mở rộng tính năng: Ứng dụng có khả năng phát triển thêm các

chức năng nâng cao như phân tích thói quen sử dụng, đề xuất lịch trình hợp lý và tíchhợp AI

Nâng cao kỹ năng lập trình Android: Tạo cơ hội cho người phát triển thực

hành các kiến thức về lập trình Android, xử lý dữ liệu, thiết kế kiến trúc phần mềm vàtối ưu hóa hiệu suất ứng dụng

1.3 Phạm vi nghiên cứu

Nền tảng Android: Tập trung phát triển ứng dụng trên hệ điều hành Android,

đảm bảo ứng dụng tương thích với các phiên bản Android phổ biến và các loại thiết

bị khác nhau

Chức năng quản lý lịch và nhắc nhở: Nghiên cứu cách tạo, cập nhật, và hiển

thị các sự kiện, công việc Tích hợp các chức năng nhắc nhở sự kiện theo thời gianhoặc địa điểm

Đồng bộ dữ liệu: Đảm bảo khả năng đồng bộ hóa lịch trình với các ứng dụng

khác như Google Calendar, để người dùng có thể quản lý lịch từ nhiều nguồn

Giao diện người dùng (UI/UX): Tập trung vào thiết kế giao diện thân thiện,

dễ sử dụng, phù hợp với màn hình thiết bị di động và tuân theo tiêu chuẩn MaterialDesign

Bảo mật và lưu trữ dữ liệu: Tìm hiểu cách lưu trữ dữ liệu an toàn, có thể trên

cơ sở dữ liệu nội bộ hoặc dịch vụ lưu trữ đám mây Đảm bảo bảo mật thông tin ngườidùng và quyền riêng tư

Phát triển tính năng mở rộng: Đề xuất các hướng phát triển tính năng mở

rộng, như gợi ý lịch trình thông minh hoặc tích hợp AI

Trang 11

1.4 Phương pháp nghiên cứu và triển khai

1.4.1 Nghiên cứu lý thuyết

Tìm hiểu công nghệ: Nghiên cứu các công nghệ và công cụ phát triển

Android như Java/Kotlin, Android Studio, Firebase (để đồng bộ dữ liệu)

Tham khảo ứng dụng tương tự: Phân tích các ứng dụng quản lý lịch

phổ biến (như Google Calendar) để hiểu về các tính năng cơ bản và cách tối ưugiao diện người dùng

Xác định kiến trúc phần mềm: Lựa chọn mô hình kiến trúc phù hợp,

như MVVM, giúp duy trì và phát triển mã dễ dàng

1.4.2 Phân tích yêu cầu

Thu thập yêu cầu từ người dùng mục tiêu thông qua khảo sát hoặcphỏng vấn

Xác định các tính năng chính như tạo lịch, nhắc nhở, đồng bộ hóa, vàquản lý dữ liệu

1.4.3 Thiết kế giao diện người dùng (UI/UX)

Thiết kế wireframe và prototype cho các màn hình chính của ứng dụng,bao gồm trang lịch, danh sách công việc, và giao diện tạo sự kiện

Sử dụng Material Design để đảm bảo giao diện thống nhất, thân thiện và

dễ sử dụng

1.4.4 Triển khai mã nguồn

Lập trình giao diện (Frontend): Sử dụng XML cho giao diện và kết

hợp với Kotlin/Java để xử lý tương tác người dùng

Trang 12

Xây dựng logic xử lý (Backend): Phát triển các chức năng chính như

tạo, chỉnh sửa, xóa và nhắc nhở sự kiện, quản lý trạng thái công việc

Tích hợp dịch vụ đồng bộ hóa và nhắc nhở: Sử dụng Firebase hoặc

API Google Calendar để đồng bộ dữ liệu; tích hợp hệ thống nhắc nhở củaAndroid

1.4.5 Kiểm thử ứng dụng

Kiểm thử chức năng: Đảm bảo các chức năng chính hoạt động đúng

(tạo sự kiện, nhắc nhở, đồng bộ hóa)

Kiểm thử giao diện: Kiểm tra tính thân thiện của giao diện trên nhiều

thiết bị Android khác nhau

Kiểm thử hiệu suất: Đảm bảo ứng dụng hoạt động mượt mà, không

tiêu tốn quá nhiều tài nguyên và bộ nhớ

1.4.6 Đánh giá và cải tiến

Thu thập phản hồi từ người dùng thử nghiệm, từ đó tối ưu hóa giao diện

và cải thiện các tính năng

Đánh giá kết quả, xem xét các tính năng mới có thể thêm vào cho cácphiên bản tương lai của ứng dụng

1.5 Cấu trúc báo cáo

Báo cáo được chia thành các phần chính như sau:

Lời nói đầu

Trang 13

Phần này giới thiệu lý do thực hiện đề tài, các mục tiêu và phạm vinghiên cứu của đồ án, nêu rõ lý do chọn đề tài cũng như tầm quan trọng và tínhthực tiễn của đề tài đối với sinh viên và người dùng.

Giới thiệu chung

Cung cấp tổng quan về đề tài, bao gồm mục tiêu của ứng dụng, các tínhnăng chính và những lợi ích mà ứng dụng mang lại cho người dùng Ngoài ra,trình bày các công nghệ và phương pháp mà nhóm sử dụng để xây dựng ứngdụng quản lý lịch sinh hoạt và làm việc

Cơ sở lý thuyết và các công nghệ sử dụng

Giới thiệu và mô tả về các công nghệ, công cụ, ngôn ngữ lập trình và thưviện mà nhóm sử dụng trong quá trình phát triển ứng dụng Phần này bao gồm:

○ Tổng quan về nền tảng Android

○ Các công cụ phát triển như Android Studio, ngôn ngữ lập trình(Java, Kotlin)

○ Các thư viện hỗ trợ cho phát triển ứng dụng Android

Phân tích yêu cầu

Xác định và mô tả chi tiết các yêu cầu chức năng và phi chức năng củaứng dụng Phần này trình bày các yêu cầu từ phía người dùng, các chức năngcần có của ứng dụng để đáp ứng nhu cầu quản lý lịch sinh hoạt và làm việc

Thiết kế hệ thống

Cung cấp chi tiết về cách thiết kế giao diện người dùng (UI) và trảinghiệm người dùng (UX) của ứng dụng Phần này bao gồm:

Trang 14

Trình bày quy trình triển khai và phát triển ứng dụng, từ việc xây dựng

cơ sở dữ liệu, các mô-đun chức năng đến tích hợp và hoàn thiện ứng dụng.Phần này cũng bao gồm mô tả về việc kiểm thử các chức năng của ứng dụng

Đánh giá và kết quả đạt được

Phân tích các kết quả đạt được so với mục tiêu ban đầu Đánh giá tínhhiệu quả, tính ổn định và trải nghiệm người dùng của ứng dụng thông qua cácthử nghiệm và phản hồi từ người dùng

Kết luận và hướng phát triển

Tổng kết lại quá trình thực hiện đồ án, những khó khăn đã gặp và cácgiải pháp đã áp dụng Đưa ra những đề xuất cải tiến và hướng phát triển trongtương lai để nâng cao tính năng của ứng dụng và mở rộng phạm vi ứng dụng

Trang 15

Danh sách các tài liệu, bài báo, website hoặc nguồn kiến thức mà nhóm

sử dụng để hoàn thành đồ án

II CƠ SỞ LÝ THUYẾT 2.1 Tổng quan về ứng dụng quản lý lịch sinh hoạt và làm việc

Ứng dụng quản lý lịch sinh hoạt và làm việc trên nền tảng Android là một công

cụ hỗ trợ người dùng trong việc tổ chức, sắp xếp và theo dõi lịch trình cá nhân, côngviệc hàng ngày một cách hiệu quả và khoa học Ứng dụng này được thiết kế với mụctiêu giúp người dùng tối ưu hóa thời gian, nhắc nhở các sự kiện quan trọng, đồng thờitạo một trải nghiệm tiện lợi và thân thiện

Trang 16

○ Đồng bộ lịch trình với các ứng dụng lịch khác như Google Calendar,giúp quản lý lịch trình từ nhiều nguồn khác nhau.

○ Lưu trữ dữ liệu trên đám mây để dễ dàng truy cập và sao lưu từ nhiềuthiết bị Android khác nhau

Giao diện thân thiện, dễ sử dụng:

○ Giao diện ứng dụng được thiết kế đơn giản, tuân theo các nguyên tắcMaterial Design, giúp người dùng dễ dàng tương tác

○ Có chế độ hiển thị ngày, tuần, và tháng để phù hợp với nhu cầu xem lịchtrình linh hoạt

Phân tích và báo cáo thời gian:

○ Cung cấp số liệu thống kê và phân tích về thời gian dành cho từng loạicông việc, giúp người dùng theo dõi và điều chỉnh thời gian hợp lý

Lợi ích của ứng dụng:

○ Tối ưu hóa quản lý thời gian: Người dùng có thể dễ dàng sắp xếp, theo dõi và

quản lý thời gian cá nhân, đảm bảo không bỏ sót các sự kiện, công việc quantrọng

○ Trải nghiệm liền mạch: Với khả năng đồng bộ hóa, ứng dụng giúp người

dùng quản lý lịch trình mọi lúc, mọi nơi

○ Phù hợp với nhiều đối tượng: Ứng dụng hữu ích cho người đi làm, học sinh,

sinh viên và bất kỳ ai cần sắp xếp lịch trình sinh hoạt, làm việc

Công nghệ sử dụng:

Trang 17

Ứng dụng được phát triển trên nền tảng Android sử dụng ngôn ngữ lập trìnhKotlin hoặc Java Các công nghệ và công cụ hỗ trợ bao gồm:

○ Firebase hoặc Google Calendar API cho việc đồng bộ và lưu trữ dữ liệu

○ Android Studio cho phát triển và kiểm thử ứng dụng

○ Kiến trúc MVVM để đảm bảo mã nguồn dễ bảo trì và mở rộng

2.2 Tổng quan về nền tảng Android

2.2.1 Giới thiệu về nền tảng Android

Android là hệ điều hành được phát triển bởi Tổng công ty Android, với

sự hỗ trợ tài chính từ Google Mãi đến năm 2005, được chính Google mua lại

và cho ra mắt vào năm 2007

Android là hệ điều hành nguồn mở dựa trên nền tảng Linux, chủ yếudành cho các thiết bị có màn hình cảm ứng như điện thoại, máy tính bảng

Với mã nguồn mở và giấy phép không có nhiều ràng buộc nên Androidngày càng trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới

Vào quý 3 năm 2012, Android chiếm 75% thị phần về điện thoại thôngminh trên toàn thế giới với con số tổng cộng khoảng 500 triệu thiết bị đã đượckích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày

2.2.2 Giao diện và ứng dụng Android

Giao diện:

○ Giao diện của Android sử dụng cảm ứng chạm, tác động trực tiếp lênmàn hình như vuốt, chạm, phóng to và thu lại để xử lý các đối tượngtrên màn hình

Trang 18

○ Sau khi khởi động các thiết bị Android màn hình chính sẽ hiển thị gồmnhiều biểu tượng (icon) và tiện ích (widget) Giao diện của Android chophép người dùng tự do sắp xếp hình dáng, biểu tượng, tiện ích tùy theo

○ Nhiều ứng dụng chạy ngầm làm chậm máy

○ Một số ứng dụng chưa được tối ưu hóa tốt

○ Chất lượng một số ứng dụng còn kém

Trang 19

1995 Java là một trong những ngôn ngữ lập trình phổ biến nhất thế giới, được

sử dụng rộng rãi trong phát triển ứng dụng doanh nghiệp, ứng dụng di động, hệthống nhúng, và nhiều lĩnh vực khác Đặc điểm nổi bật của Java là tính khảchuyển và khả năng chạy trên mọi nền tảng có Java Virtual Machine (JVM)

2.3.1.1 Đặc điểm của Java

Đa nền tảng (Platform Independence): Nhờ vào cơ chế “Write

Once, Run Anywhere” (WORA), Java cho phép chương trình chạy trênbất kỳ hệ điều hành nào có JVM Mã nguồn Java được biên dịch thànhbytecode, bytecode này có thể được JVM thực thi trên nhiều hệ điềuhành khác nhau như Windows, MacOS, Linux, và Android

Hướng đối tượng (Object-Oriented): Java hỗ trợ các đặc tính

hướng đối tượng như tính kế thừa, tính đa hình, tính đóng gói và tínhtrừu tượng Điều này giúp tổ chức mã rõ ràng và dễ bảo trì hơn

Bảo mật (Security): Java cung cấp nhiều tính năng bảo mật, như

kiểm tra mã và quản lý quyền truy cập, giúp bảo vệ ứng dụng khỏi cácmối đe dọa tiềm ẩn JVM có khả năng chạy mã trong sandbox (môitrường cách ly) và hạn chế truy cập vào hệ thống máy chủ, tăng cườngbảo mật

Trang 20

Quản lý bộ nhớ tự động: Java có cơ chế Garbage Collection tự

động, giúp thu hồi bộ nhớ không sử dụng và giảm thiểu lỗi quản lý bộnhớ

Đa luồng (Multithreading): Java hỗ trợ đa luồng, cho phép thực

thi nhiều tác vụ đồng thời trong cùng một chương trình, nâng cao hiệusuất và giảm thiểu thời gian xử lý

2.3.1.2 Cấu trúc của Java

Java có ba thành phần chính:

○ Java Development Kit (JDK): Bao gồm công cụ biên dịch, gỡ

lỗi và phát triển các chương trình Java JDK bao gồm cả JVM vàcác thư viện chuẩn

○ Java Virtual Machine (JVM): Là máy ảo giúp thực thi mã

bytecode của Java trên nhiều nền tảng khác nhau JVM đóng vaitrò là cầu nối giữa mã bytecode và hệ điều hành

○ Java Runtime Environment (JRE): Bao gồm JVM và các thư

viện cần thiết để chạy các ứng dụng Java JRE là phần mà ngườidùng cuối cần để chạy chương trình, không bao gồm các công cụphát triển như JDK

2.3.1.3 Các thư viện và API phong phú

Java cung cấp một bộ thư viện và API phong phú, cho phép pháttriển nhiều loại ứng dụng khác nhau Các thư viện phổ biến bao gồm:

Trang 21

○ Java Standard Library: Cung cấp các lớp và phương thức cơ

bản, hỗ trợ các chức năng như thao tác chuỗi, tính toán, xử lý file,mạng, và quản lý luồng

○ JavaFX: Thư viện giao diện đồ họa để phát triển ứng dụng máy

tính để bàn với giao diện phong phú

○ Java Servlet và JSP: Được sử dụng để phát triển các ứng dụng

web

○ Spring Framework: Một framework mạnh mẽ cho phát triển

ứng dụng doanh nghiệp, đặc biệt là các ứng dụng web và ứngdụng nền tảng đám mây

2.3.1.4 Ứng dụng của Java

Ứng dụng di động: Java là ngôn ngữ chính để phát triển ứng

dụng Android Các ứng dụng Android được viết bằng Java có thể chạytrên hầu hết các thiết bị di động phổ biến

Ứng dụng web: Java thường được sử dụng để xây dựng các ứng

dụng web doanh nghiệp với các công nghệ như Java Servlet, JSP và cácframework như Spring và Hibernate

Ứng dụng doanh nghiệp: Java phù hợp cho các ứng dụng doanh

nghiệp lớn nhờ vào khả năng bảo mật, hiệu năng và sự ổn định Nó được

sử dụng trong các hệ thống quản lý, hệ thống tài chính, và các ứng dụngquy mô lớn

Hệ thống nhúng và IoT: Với tính năng nhẹ và khả năng tối ưu

hóa, Java cũng được sử dụng trong các hệ thống nhúng, thiết bị IoT

Trang 22

2.3.1.5 Ưu điểm của Java

Khả chuyển cao: Java có thể chạy trên nhiều nền tảng mà không

cần thay đổi mã nguồn

Hiệu suất cao: Java đã cải thiện nhiều về hiệu suất trong những

năm qua, và nhờ JVM tối ưu hóa, các chương trình Java có thể chạy rấtnhanh

Bảo mật tốt: Java cung cấp các tính năng bảo mật mạnh mẽ và

liên tục được cập nhật để đối phó với các lỗ hổng bảo mật

Hỗ trợ mạnh mẽ từ cộng đồng: Với cộng đồng phát triển lớn và

tài liệu phong phú, Java có nhiều thư viện và công cụ hỗ trợ

2.3.1.6 Hạn chế của Java

Tiêu tốn tài nguyên: So với một số ngôn ngữ như C++, Java có

thể tiêu tốn tài nguyên bộ nhớ và thời gian khởi động lâu hơn, đặc biệtđối với các ứng dụng lớn

Không thân thiện với lập trình viên mới bắt đầu: Cú pháp của

Java có thể phức tạp đối với những người mới học lập trình so với cácngôn ngữ như Python

Thời gian thực thi chậm hơn ngôn ngữ biên dịch trực tiếp:

Java phụ thuộc vào JVM, nên thời gian thực thi có thể chậm hơn so vớicác ngôn ngữ như C++

Trang 23

2.3.2 Môi trường phát triển (Android Studio, Visual Studio Code)

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

Trình biên tập mã nguồn mạnh mẽ: Android Studio hỗ trợ

hoàn thiện mã (code completion), phân tích mã (code analysis), và địnhdạng mã (code formatting) Nó cung cấp các tính năng thông minh nhưnhận diện ngữ nghĩa, giúp lập trình viên dễ dàng viết mã và phát hiệnlỗi

Hỗ trợ Gradle: Android Studio sử dụng hệ thống quản lý dự án

Gradle, cho phép cấu hình dự án một cách linh hoạt Gradle giúp quản

lý thư viện phụ thuộc, tạo ra các bản build khác nhau cho các môitrường và cấu hình khác nhau

Trình giả lập Android: Android Studio tích hợp sẵn trình giả

lập Android, cho phép các nhà phát triển thử nghiệm ứng dụng trênnhiều thiết bị ảo với các kích thước màn hình và phiên bản Androidkhác nhau mà không cần thiết bị vật lý

Thiết kế giao diện người dùng (UI): Công cụ thiết kế giao diện

drag-and-drop giúp lập trình viên dễ dàng xây dựng giao diện ngườidùng Android Studio hỗ trợ nhiều công cụ và thư viện để tạo ra giaodiện đẹp và thân thiện

Hỗ trợ kiểm thử: Android Studio cung cấp các công cụ để viết

và thực hiện các bài kiểm thử tự động cho ứng dụng, bao gồm kiểm thửđơn vị (unit testing) và kiểm thử giao diện (UI testing)

Quản lý tài nguyên: Hỗ trợ quản lý tài nguyên như hình ảnh, âm

thanh, và các tệp XML, giúp tổ chức và tái sử dụng tài nguyên dễ dàng

Trang 24

Tích hợp với Firebase: Android Studio cho phép tích hợp dễ

dàng với Firebase, giúp thêm các dịch vụ như phân tích, xác thực, lưutrữ đám mây, và nhiều dịch vụ khác vào ứng dụng

2.3.2.2 Yêu cầu hệ thống

Để cài đặt và sử dụng Android Studio, máy tính của bạn cần đápứng một số yêu cầu tối thiểu, bao gồm:

○ Hệ điều hành: Windows, macOS, hoặc Linux.

○ Bộ xử lý: Tối thiểu 64-bit.

○ Bộ nhớ: Ít nhất 4 GB RAM (8 GB trở lên được khuyến nghị).

○ Không gian lưu trữ: Tối thiểu 2 GB không gian lưu trữ miễn phí

(có thể yêu cầu thêm khi cài đặt SDK và các công cụ khác)

2.3.2.3 Cách sử dụng Android Studio

Cài đặt: Tải về Android Studio từ trang web chính thức và làm

theo hướng dẫn cài đặt

Tạo dự án mới: Bắt đầu bằng việc tạo một dự án mới, chọn loại

ứng dụng và các cài đặt ban đầu

Phát triển và kiểm thử: Viết mã, thiết kế giao diện, chạy ứng

dụng trên trình giả lập hoặc thiết bị thật để kiểm thử

Xây dựng và phát hành: Khi ứng dụng hoàn thiện, bạn có thể

tạo file APK hoặc App Bundle để phát hành trên Google Play hoặc cácnền tảng phân phối khác

Trang 25

2.3.2.4 Lợi ích của Android Studio

Được hỗ trợ chính thức: Là IDE chính thức của Google cho

phát triển Android, Android Studio luôn được cập nhật và cải tiến liêntục với các tính năng mới và sửa lỗi

Tính năng phong phú: Tích hợp nhiều công cụ và tính năng

mạnh mẽ giúp phát triển ứng dụng hiệu quả và dễ dàng hơn

Cộng đồng lớn: Với một cộng đồng phát triển rộng lớn, có nhiều

tài liệu, hướng dẫn và ví dụ sẵn có, giúp lập trình viên giải quyết vấn đềnhanh chóng

2.3.2.5 Hạn chế của Android Studio

Yêu cầu hệ thống cao: Android Studio có thể tiêu tốn nhiều tài

nguyên hệ thống, điều này có thể gây khó khăn cho những máy tính cócấu hình thấp

Thời gian khởi động lâu: Do tính năng phong phú, Android

Studio có thể khởi động chậm hơn so với một số IDE khác

Học tập ban đầu: Đối với những lập trình viên mới bắt đầu, giao

diện và tính năng của Android Studio có thể gây nhầm lẫn

2.3.3 Kiến trúc ứng dụng (MVC/MVVM)

Trong quá trình phát triển ứng dụng "Quản lý lịch sinh hoạt và làmviệc", nhóm chúng tôi đã áp dụng mô hình kiến trúc Model-View-ViewModel(MVVM) Mô hình MVVM giúp tách biệt rõ ràng các thành phần của ứngdụng, từ đó cải thiện khả năng bảo trì, mở rộng và kiểm thử Dưới đây là mô tả

Trang 26

chi tiết về các thành phần trong mô hình MVVM được sử dụng trong ứngdụng:

 Model:

Model đại diện cho dữ liệu và các quy tắc nghiệp vụ của ứngdụng Trong ứng dụng này, Model bao gồm các lớp quản lý dữ liệu nhưActivity, TrackedActivity và Rating Các lớp này sẽ thực hiện các thaotác như thêm, sửa, xóa và truy vấn dữ liệu từ cơ sở dữ liệu

 View:

View là giao diện người dùng, nơi người dùng tương tác với ứngdụng Trong ứng dụng, View được xây dựng bằng các tệp XML trongthư mục res/layout, và các lớp Activity hoặc Fragment sẽ chịu tráchnhiệm hiển thị dữ liệu từ Model lên giao diện

 ViewModel:

ViewModel giữ vai trò trung gian giữa Model và View, giúpquản lý dữ liệu cho View ViewModel sẽ cung cấp dữ liệu từ Model choView và nhận các sự kiện từ View để cập nhật Model Điều này giúpView không cần phải biết chi tiết về Model, và ngược lại, Model khôngcần phải biết về View

2.3.4 SQLite cho lưu trữ dữ liệu

Tính nhẹ và dễ sử dụng

SQLite là một giải pháp lưu trữ dữ liệu lý tưởng cho các ứng dụng diđộng nhờ vào kích thước nhỏ gọn và việc tích hợp dễ dàng Không cần phải

Trang 27

thiết lập máy chủ hay cấu hình phức tạp, SQLite cho phép chúng tôi quản lý cơ

sở dữ liệu một cách nhanh chóng và hiệu quả

Lưu trữ dữ liệu offline

Với SQLite, người dùng có thể truy cập dữ liệu ngay cả khi không cókết nối internet Điều này là rất quan trọng cho ứng dụng "Quản lý lịch sinhhoạt và làm việc", nơi mà người dùng thường cần ghi chú và theo dõi các hoạtđộng mà không phải lúc nào cũng có internet

Tính năng và hiệu suất

SQLite hỗ trợ nhiều tính năng của SQL, bao gồm các phép toán nhưINSERT, UPDATE, DELETE, và SELECT, giúp chúng tôi thực hiện các thaotác trên dữ liệu một cách linh hoạt Hơn nữa, SQLite có hiệu suất tốt cho cácthao tác đọc và ghi, đặc biệt là trong môi trường di động

Cấu trúc cơ sở dữ liệu

Cơ sở dữ liệu của ứng dụng bao gồm ba bảng chính: Activities, Ratings,

và Tracked Activities Mỗi bảng được thiết kế để lưu trữ các thông tin cụ thểliên quan đến hoạt động, đánh giá và các hoạt động theo dõi của người dùng

Tương tác với cơ sở dữ liệu

Các tương tác với cơ sở dữ liệu được thực hiện thông qua lớp Database,nơi chứa các phương thức để thêm, sửa, xóa và truy vấn dữ liệu Điều này giúptách biệt logic truy cập dữ liệu khỏi phần giao diện người dùng và cải thiện khảnăng bảo trì

2.4 Lý thuyết về UX/UI cho ứng dụng di động

2.4.1 UX (Trải nghiệm người dùng)

Trang 28

UX đề cập đến tất cả các khía cạnh của trải nghiệm người dùng khitương tác với sản phẩm hoặc dịch vụ Đó là cảm giác, cảm xúc, và sự hài lòng

mà người dùng trải qua trong suốt quá trình sử dụng ứng dụng

Yếu tố chính của UX:

○ Nghiên cứu người dùng: Hiểu nhu cầu, mong muốn và hành vi của

người dùng thông qua các phương pháp như khảo sát, phỏng vấn và thửnghiệm người dùng

○ Thiết kế thông tin: Cấu trúc và tổ chức thông tin trong ứng dụng một

cách hợp lý và dễ dàng cho người dùng truy cập Sử dụng các mô hìnhnhư bản đồ trang (site map) và wireframe để phác thảo cấu trúc ứngdụng

○ Dòng trải nghiệm: Thiết kế hành trình của người dùng, từ lúc họ bắt

đầu sử dụng ứng dụng cho đến khi họ hoàn thành một mục tiêu cụ thể.Cần đảm bảo rằng các bước trong hành trình này là mượt mà và dễ hiểu

○ Kiểm thử người dùng: Tiến hành các bài kiểm thử để đánh giá cách

người dùng tương tác với ứng dụng Nhận phản hồi và điều chỉnh thiết

kế dựa trên kết quả kiểm thử

2.4.2 UI (Giao diện người dùng)

UI là phần trực quan của ứng dụng mà người dùng tương tác Nó baogồm các yếu tố như bố cục, màu sắc, font chữ, và các thành phần giao diện nhưnút, thanh điều hướng và biểu tượng

Yếu tố chính của UI:

Trang 29

○ Bố cục (Lay)out: Thiết kế bố cục hợp lý, rõ ràng và dễ sử dụng, giúp

người dùng dễ dàng tìm thấy thông tin và thao tác với ứng dụng Bố cụcnên tối ưu hóa cho kích thước màn hình của thiết bị di động

○ Màu sắc: Lựa chọn bảng màu phù hợp với thương hiệu và tạo cảm xúc

tích cực cho người dùng Màu sắc cũng cần hỗ trợ khả năng đọc và phânbiệt giữa các thành phần trong giao diện

○ Font chữ: Sử dụng font chữ dễ đọc và phù hợp với nội dung Cần chú ý

đến kích thước và khoảng cách giữa các ký tự để cải thiện khả năng đọctrên màn hình nhỏ

○ Các thành phần giao diện: Thiết kế các nút, thanh điều hướng và biểu

tượng một cách rõ ràng và dễ nhận diện Các thành phần này cần tươngthích với các nguyên tắc thiết kế của nền tảng (Android, iOS)

2.4.3 Nguyên tắc thiết kế UX/UI

Tính đơn giản (Simplicity): Giữ cho giao diện và trải nghiệm người

dùng đơn giản, tránh các yếu tố thừa thãi có thể gây rối cho người dùng

Tính nhất quán (Consistency): Sử dụng các yếu tố thiết kế đồng nhất

trong toàn bộ ứng dụng để người dùng dễ dàng làm quen và sử dụng

Tính khả dụng (Usability): Đảm bảo rằng ứng dụng dễ sử dụng, giúp

người dùng hoàn thành mục tiêu một cách nhanh chóng và hiệu quả

Tính khả thi (Feasibility): Thiết kế phải có thể thực hiện được trong

phạm vi kỹ thuật và công nghệ hiện có

Trang 30

Phản hồi (Feedback): Cung cấp phản hồi rõ ràng cho người dùng về

hành động của họ, chẳng hạn như thông báo khi một thao tác đã thành cônghay thất bại

2.4.4 Xu hướng thiết kế UX/UI hiện nay

Thiết kế tối giản (Minimalism): Tập trung vào nội dung chính và loại

bỏ các yếu tố không cần thiết, giúp người dùng dễ dàng tiếp cận thông tin

Thiết kế thân thiện với cảm ứng (Touch-friendly Design): Tối ưu

hóa giao diện cho các thao tác cảm ứng, như cử chỉ vuốt, chạm và nhấn lâu

Thiết kế đáp ứng (Responsive Design): Đảm bảo ứng dụng hoạt động

tốt trên nhiều kích thước màn hình khác nhau và các thiết bị di động

Thiết kế theo xu hướng dark mode: Dark mode đang trở thành một xu

hướng phổ biến, giúp giảm mỏi mắt cho người dùng và tiết kiệm pin cho cácthiết bị màn hình OLED

III PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 3.1 Phân tích yêu cầu

3.1.1 Yêu cầu chức năng

Quản lý lịch và sự kiện:

○ Thêm, chỉnh sửa và xóa sự kiện: Người dùng có thể dễ dàng thêm,

chỉnh sửa hoặc xóa các sự kiện trong lịch của họ

○ Tạo lịch đa dạng: Cho phép người dùng tạo nhiều lịch khác nhau (ví

dụ: lịch cá nhân, lịch công việc) để phân loại sự kiện

Trang 31

○ Nhắc nhở và thông báo: Cung cấp chức năng nhắc nhở cho người

dùng về các sự kiện sắp diễn ra thông qua thông báo đẩy hoặc âm thanh

○ Xem lịch theo nhiều chế độ: Hiển thị lịch theo dạng ngày, tuần, tháng,

giúp người dùng dễ dàng theo dõi và lập kế hoạch

Quản lý công việc và nhiệm vụ:

○ Tạo và quản lý công việc: Người dùng có thể thêm, chỉnh sửa và xóa

các nhiệm vụ hoặc công việc cần thực hiện

○ Phân loại công việc: Cho phép người dùng phân loại công việc theo dự

án, ưu tiên hoặc tình trạng (chưa hoàn thành, đang thực hiện, đã hoànthành)

○ Theo dõi tiến độ: Cung cấp chức năng theo dõi tiến độ của các công

việc đã giao và hoàn thành

○ Ghi chú và bình luận: Cho phép người dùng thêm ghi chú hoặc bình

luận vào các nhiệm vụ để có thể lưu lại thông tin quan trọng

Tích hợp và đồng bộ hóa:

○ Đồng bộ hóa với lịch khác: Cung cấp khả năng đồng bộ hóa với các

dịch vụ lịch khác như Google Calendar, Outlook Calendar để ngườidùng có thể dễ dàng truy cập thông tin lịch của họ

○ Chia sẻ lịch và công việc: Cho phép người dùng chia sẻ lịch hoặc

nhiệm vụ với người khác để cùng nhau làm việc hiệu quả hơn

Cá nhân hóa và tùy chỉnh:

Trang 32

○ Tùy chỉnh giao diện: Người dùng có thể thay đổi giao diện của ứng

dụng, bao gồm chủ đề màu sắc, kiểu chữ và bố cục

○ Tùy chỉnh nhắc nhở: Cho phép người dùng tùy chỉnh cách và thời gian

nhận thông báo nhắc nhở cho các sự kiện hoặc công việc

Báo cáo và phân tích:

○ Thống kê sử dụng: Cung cấp báo cáo về số lượng sự kiện, công việc đã

hoàn thành, và thời gian làm việc để người dùng có thể theo dõi hiệusuất cá nhân

○ Đánh giá và phản hồi: Cho phép người dùng đánh giá hiệu quả của các

công việc và sự kiện, từ đó có thể rút ra kinh nghiệm cho các kế hoạchtương lai

Bảo mật và quyền riêng tư:

○ Đăng nhập và bảo mật: Cung cấp chức năng đăng nhập để bảo vệ dữ

liệu cá nhân của người dùng

○ Quản lý quyền truy cập: Cho phép người dùng quyết định ai có thể

xem hoặc chỉnh sửa thông tin lịch và công việc của họ

Hỗ trợ và hướng dẫn:

○ Hỗ trợ người dùng: Cung cấp tài liệu hướng dẫn sử dụng và các câu

hỏi thường gặp để người dùng dễ dàng tìm hiểu cách sử dụng ứng dụng

○ Chức năng tìm kiếm: Cho phép người dùng tìm kiếm nhanh chóng các

sự kiện hoặc công việc trong ứng dụng

Ngày đăng: 02/12/2024, 16:56

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w