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 5 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

Tiêu đề 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
Tác giả Trương Thịnh Phát, Định Đại Nhân, Nguyễn Việt Anh, Phùng Tiến Đạt
Người hướng dẫn Ths. Phạm Trọng Tuấn
Trường học Trường Đại Học Kiến Trúc Hà Nội
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 65
Dung lượng 486,4 KB

Cấu trúc

  • 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)
        • 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)
        • 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)

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

GIỚI THIỆU CHUNG

Lý do chọn đề tài

Trong cuộc sống hiện đại, quản lý thời gian hiệu quả là rất quan trọng, giúp người dùng tổ chức lịch trình một cách hợp lý và tránh bỏ lỡ 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.

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 dễ 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.

Nâng cao trải nghiệm người dùng bằng cách thiết kế giao diện thân thiện và dễ sử dụng, giúp người dùng quản lý thời gian một cách nhanh chóng và hiệu quả trên thiết bị di động.

Cung cấp tính năng đồng bộ hóa thông minh với các ứng dụng như Google Calendar và tích hợp thông báo, giúp người dùng không bỏ lỡ những sự kiện quan trọng.

Tạo nền tảng mở rộng tính năng giúp ứng dụng phát triển các chức năng nâng cao, bao gồm phân tích thói quen sử dụng, đề xuất lịch trình hợp lý và tích hợp trí tuệ nhân tạo (AI).

Nâng cao kỹ năng lập trình Android giúp người phát triển thực hành kiến thức về lập trình, 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, từ đó mở ra nhiều cơ hội nghề nghiệp hấp dẫn.

Phạm vi nghiên cứu

Nền tảng Android là môi trường chính để phát triển ứng dụng, với mục tiêu đảm bảo tính tương thích của ứng dụng trên các phiên bản Android phổ biến và đa dạng thiết bị.

Chức năng quản lý lịch và nhắc nhở cho phép người dùng tạo, cập nhật và hiển thị các sự kiện, công việc một cách dễ dàng Tính năng nhắc nhở sự kiện theo thời gian hoặc địa điểm giúp người dùng không bỏ lỡ bất kỳ hoạt động quan trọng nào Đồng thời, khả năng đồng bộ dữ liệu với các ứng dụng khác như Google Calendar đảm bảo người dùng có thể quản lý lịch từ nhiều nguồn khác nhau, nâng cao hiệu quả trong việc sắp xếp thời gian.

Giao diện người dùng (UI/UX) cần được thiết kế để thân thiện và dễ sử dụng, đảm bảo phù hợp với màn hình thiết bị di động và tuân thủ các tiêu chuẩn của Material Design.

Bảo mật và lưu trữ dữ liệu là yếu tố quan trọng trong việc bảo vệ thông tin người dùng Bạn có thể lựa chọn lưu trữ dữ liệu trên cơ sở dữ liệu nội bộ hoặc sử dụng dịch vụ lưu trữ đám mây Đảm bảo rằng tất cả thông tin cá nhân được bảo vệ an toàn và quyền riêng tư của người dùng được tôn trọng.

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.

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

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).

Phân tích các ứng dụng quản lý lịch phổ biến như Google Calendar giúp hiểu rõ các tính năng cơ bản và cách tối ưu hóa giao diện người dùng, từ đó cải thiện trải nghiệm sử dụng và tăng hiệu quả quản lý thời gian.

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.

Thu thập yêu cầu từ người dùng mục tiêu thông qua khảo sát hoặc phỏ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.

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.

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ủa Android.

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 giúp tối ưu hóa giao diện và cải thiện các tính năng của ứng dụng Đánh giá kết quả cho phép xem xét các tính năng mới có thể được bổ sung trong các phiên bản tương lai.

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

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

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

Ứng dụng quản lý lịch sinh hoạt và làm việc mang đến cái nhìn tổng quan về mục tiêu, các tính năng chính và lợi ích cho người dùng Nó giúp người dùng tổ chức thời gian hiệu quả hơn, nâng cao năng suất và giảm căng thẳng Nhóm phát triển đã áp dụng các công nghệ tiên tiến và phương pháp hiện đại để xây dựng ứng dụng, đảm bảo tính năng thân thiện và dễ sử dụng.

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

Trong quá trình phát triển ứng dụng, nhóm chúng tôi sử dụng nhiều công nghệ, công cụ, ngôn ngữ lập trình và thư viện khác nhau Những công nghệ này không chỉ giúp tối ưu hóa quy trình phát triển mà còn nâng cao hiệu suất và tính năng của ứng dụng Chúng tôi sẽ giới thiệu chi tiết về từng công nghệ và công cụ mà nhóm đã áp dụng, nhằm cung cấp cái nhìn tổng quan về phương pháp phát triển của mình.

○ 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.

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 là rất quan trọng Phần này sẽ trình bày các yêu cầu từ phía người dùng, bao gồm các chức năng cần thiết để ứng dụng có thể đáp ứng nhu cầu quản lý lịch sinh hoạt và làm việc hiệu quả.

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

○ Mô tả kiến trúc hệ thống.

○ Sơ đồ luồng dữ liệu (DFD), sơ đồ lớp, sơ đồ hoạt động và mô hình dữ liệu.

○ Thiết kế giao diện người dùng với các mô phỏng màn hình của ứng dụng.

Quy trình triển khai và phát triển ứng dụng bao gồm các bước từ xây dựng cơ sở dữ liệu, phát triển các mô-đun chức năng cho đến việc tích hợp và hoàn thiện ứng dụng Ngoài ra, phần này còn mô tả quy trình kiểm thử các chức năng của ứng dụng nhằm đảm bảo chất lượng Cuối cùng, sẽ có đánh giá về kết quả đạt được trong quá trình phát triển ứng dụng.

Phân tích kết quả đạt được so với mục tiêu ban đầu là cần thiết để đánh giá hiệu quả và tính ổn định của ứng dụng Thông qua các thử nghiệm và phản hồi từ người dùng, chúng ta có thể hiểu rõ hơn về trải nghiệm người dùng, từ đó cải thiện ứng dụng một cách tối ưu.

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

Trong quá trình thực hiện đồ án, chúng tôi đã gặp nhiều khó khăn và đã áp dụng các giải pháp hiệu quả để vượt qua Để nâng cao tính năng của ứng dụng và mở rộng phạm vi ứng dụng trong tương lai, chúng tôi đề xuất một số cải tiến và hướng phát triển cụ thể.

Các tài liệu, dữ liệu tham khảo, sơ đồ, hoặc hình ảnh hỗ trợ cho các phần trong báo cáo.

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.

CƠ SỞ LÝ THUYẾT

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 Android giúp người dùng tổ chức và theo dõi lịch trình cá nhân và công việc hàng ngày một cách hiệu quả Với mục tiêu tối ưu hóa thời gian và nhắc nhở các sự kiện quan trọng, ứng dụng mang đến trải nghiệm tiện lợi và thân thiện cho người sử dụng.

Các tính năng chính của ứng dụng:

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

○ Cho phép người dùng tạo, chỉnh sửa, và xóa các sự kiện theo ngày, tuần, tháng.

○ Hỗ trợ người dùng phân loại các sự kiện, công việc theo từng mục đích (như công việc, cá nhân, giải trí, học tập).

○ Thiết lập các thông báo nhắc nhở theo thời gian, địa điểm hoặc mức độ quan trọng để người dùng không bỏ lỡ các sự kiện.

○ Có khả năng lặp lại nhắc nhở cho các sự kiện quan trọng diễn ra thường xuyên (hàng ngày, hàng tuần, hàng tháng). Đồng bộ hóa dữ liệu:

○ Đồ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ều thiế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ắc Material 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ịch trì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 chi tiết về thời gian dành cho từng loại công việc, giúp người dùng theo dõi và điều chỉnh thời gian một cách hợp lý.

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

Tối ưu hóa quản lý thời gian giúp người dùng sắp xếp, theo dõi và quản lý thời gian cá nhân một cách hiệu quả, đảm bảo không bỏ lỡ các sự kiện và công việc quan trọ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.

Ứng dụng này phù hợp với đa dạng đối tượng, bao gồm người đi làm, học sinh, sinh viên và bất kỳ ai cần tổ chức lịch trình sinh hoạt và làm việc một cách hiệu quả.

Ứng dụng được phát triển trên nền tảng Android với ngôn ngữ lập trình Kotlin hoặc Java, sử dụng các công nghệ và công cụ hỗ trợ tiên tiến.

○ 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.

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à nhận được sự hỗ trợ tài chính từ Google Năm 2005, Google đã mua lại công ty này và chính thức ra mắt Android vào năm 2007.

Android là hệ điều hành mã nguồn mở được phát triển dựa trên nền tảng Linux, chủ yếu phục vụ cho các thiết bị màn hình cảm ứng như điện thoại và 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 Android ngà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 dẫn đầu thị trường smartphone toàn cầu với 75% thị phần, tương đương khoảng 500 triệu thiết bị đã được kí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 Android cho phép người dùng tương tác trực tiếp với màn hình thông qua các cử chỉ cảm ứng như vuốt, chạm, phóng to và thu nhỏ, giúp xử lý các đối tượng một cách dễ dàng và hiệu quả.

Sau khi khởi động, màn hình chính của thiết bị Android sẽ hiển thị nhiều biểu tượng và tiện ích Giao diện Android cho phép người dùng tự do sắp xếp hình dáng, biểu tượng và tiện ích theo sở thích cá nhân.

Các ứng dụng Android được xây dựng bằng ngôn ngữ Java và sử dụng Bộ phát triển phần mềm Android (SDK) Bộ phát triển này bao gồm các công cụ gỡ lỗi và thư viện phần mềm, cung cấp hỗ trợ tối đa cho nhu cầu của các thiết bị.

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

○ Kho ứng dụng đa dạng

○ Có thể mở rộng bộ nhớ bằng thẻ nhớ

○ Khả năng tùy biến cao có thể chỉnh sửa mà không có sự can thiệp hay cấm cản từ Google

○ Người dùng ưa chuộng nhiều

○ 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

○ Dễ bị virus xâm nhập

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

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

Java là một ngôn ngữ lập trình đa nền tảng, hướng đối tượng, được phát triển bởi Sun Microsystems (nay thuộc Oracle) và ra mắt lần đầu vào năm

Java, ra mắt vào năm 1995, là một trong những ngôn ngữ lập trình phổ biến nhất toàn cầu, được ứng dụng rộng rãi trong phát triển ứng dụng doanh nghiệp, ứng dụng di động và hệ thống nhúng Điểm nổi bật của Java là tính khả chuyển, cho phép 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

Java với tính năng "Viết một lần, chạy mọi nơi" (WORA) cho phép chương trình hoạt động trên mọi hệ điều hành có JVM Mã nguồn Java được biên dịch thành bytecode, có thể được JVM thực thi trên nhiều hệ điều hành khác nhau như Windows, MacOS, Linux và Android.

Java hỗ trợ các đặc tính hướng đối tượng như kế thừa, đa hình, đóng gói và trừu tượng, giúp tổ chức mã hiệu quả và dễ bảo trì.

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ác mối đe dọa tiềm ẩn Với khả năng chạy mã trong môi trường cách ly (sandbox), JVM hạn chế truy cập vào hệ thống máy chủ, từ đó tăng cường bảo mật cho ứng dụng.

Java sở hữu cơ chế quản lý bộ nhớ tự động thông qua Garbage Collection, giúp thu hồi bộ nhớ không còn sử dụng và giảm thiểu các lỗi liên quan đến quản lý bộ nhớ Bên cạnh đó, Java cũng hỗ trợ đa luồng, cho phép thực hiện nhiều tác vụ đồng thời trong một chương trình, từ đó nâng cao hiệu suất và rút ngắn thời gian xử lý.

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ột máy ảo cho phép thực thi mã bytecode của Java trên nhiều nền tảng khác nhau Nó đóng vai trò quan trọng như một cầu nối giữa mã bytecode và hệ điều hành, giúp đảm bảo tính tương thích và hiệu suất khi chạy ứng dụng Java.

Java Runtime Environment (JRE) bao gồm Java Virtual Machine (JVM) và các thư viện cần thiết để chạy ứng dụng Java JRE là thành phần mà người dùng cuối cần để thực thi chương trình Java, nhưng không bao gồm các công cụ phát triển như Java Development Kit (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át triển nhiều loại ứng dụng khác nhau Các thư viện phổ biến bao gồm:

Thư viện chuẩn Java cung cấp các lớp và phương thức cơ bản, hỗ trợ nhiều chức năng quan trọng như thao tác chuỗi, tính toán, xử lý tệp, quản lý mạng và điều khiển 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à ứng dụ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ạy trê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ác framework 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ụng quy 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.

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.

Java đã có những cải tiến đáng kể về hiệu suất trong những năm qua Nhờ vào việc tối ưu hóa của JVM, các chương trình Java hiện có khả năng chạy nhanh chóng và hiệu quả hơn bao giờ hết.

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ợ.

Java có thể tiêu tốn nhiều tài nguyên hơn so với một số ngôn ngữ lập trình như C++, đặc biệt là về bộ nhớ và thời gian khởi động, điều này đặc biệt rõ ràng trong 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ác ngô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ới các ngôn ngữ như C++.

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

Android Studio là một trình biên tập mã nguồn mạnh mẽ, cung cấp các tính năng như hoàn thiện mã, phân tích mã và định dạng mã Với khả năng nhận diện ngữ nghĩa thông minh, công cụ này giúp lập trình viên dễ dàng viết mã và phát hiện lỗi hiệu quả.

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

Gradle cung cấp khả năng cấu hình dự án linh hoạt, cho phép người dùng quản lý thư viện phụ thuộc một cách hiệu quả Ngoài ra, Gradle còn hỗ trợ tạo ra các bản build khác nhau phù hợp với các môi trường và cấu hình đa dạng.

Trình giả lập Android trong Android Studio cho phép các nhà phát triển thử nghiệm ứng dụng trên nhiều thiết bị ảo với kích thước màn hình và phiên bản Android đa dạng, giúp tiết kiệm chi phí và thời gian mà không cần sử dụng thiết bị vật lý.

Thiết kế giao diện người dùng (UI) là một yếu tố quan trọng trong phát triển ứng dụng, và việc sử dụng công cụ thiết kế giao diện drag-and-drop giúp lập trình viên dễ dàng tạo ra giao diện hấp dẫn Android Studio cung cấp nhiều công cụ và thư viện hỗ trợ, cho phép xây dựng giao diện đẹp mắt và thân thiện với người dùng.

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

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

UX bao gồm mọi khía cạnh của trải nghiệm người dùng khi tương tác với sản phẩm hoặc dịch vụ, tập trung vào cảm giác, cảm xúc và sự hài lòng mà người dùng cảm nhận 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 là quá trình quan trọng giúp hiểu rõ nhu cầu, mong muốn và hành vi của người dùng Các phương pháp như khảo sát, phỏng vấn và thử nghiệm người dùng được áp dụng để thu thập thông tin chi tiết, từ đó cải thiện sản phẩm và dịch vụ.

Thiết kế thông tin là quá trình cấu trúc và tổ chức thông tin trong ứng dụng một cách hợp lý, giúp người dùng dễ dàng truy cập Việc sử dụng các mô hình như bản đồ trang (site map) và wireframe là rất quan trọng để phác thảo cấu trúc ứng dụng một cách hiệu quả.

Dòng trải nghiệm là quá trình thiết kế hành trình của người dùng, bắt đầu từ khi họ sử dụng ứng dụng cho đến khi hoàn thành một mục tiêu cụ thể Để tối ưu hóa trải nghiệm người dùng, cần đảm bảo rằng các bước trong hành trình này diễn ra một cách mượt mà và dễ hiểu.

Kiểm thử người dùng là quá trình thực hiện các bài kiểm tra nhằm đánh giá cách người dùng tương tác với ứng dụng Qua việc thu thập phản hồi từ người dùng, chúng ta có thể điều chỉnh thiết kế ứng dụng để cải thiện trải nghiệm người dùng dựa trên kết quả kiểm thử.

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

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, bao gồm các yếu tố quan trọng 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:

Bố cục của ứng dụng cần được thiết kế hợp lý, rõ ràng và dễ sử dụng, nhằm giúp người dùng dễ dàng tìm kiếm thông tin và thực hiện các thao tác Đặc biệt, bố cục nên được tối ưu hóa cho kích thước màn hình của thiết bị di động để mang lại trải nghiệm tốt nhất cho người dùng.

Lựa chọn bảng màu phù hợp với thương hiệu không chỉ tạo cảm xúc tích cực cho người dùng mà còn nâng cao khả năng đọc và phân biệt các thành phần trong giao diện.

Sử dụng font chữ dễ đọc và phù hợp với nội dung là rất quan trọng Cần chú ý đến kích thước và khoảng cách giữa các ký tự để nâng cao khả năng đọc, đặc biệt trên màn hình nhỏ.

Các thành phần giao diện cần được thiết kế rõ ràng và dễ nhận diện, bao gồm nút, thanh điều hướng và biểu tượng Đặc biệt, các thành phần này phải tương thích với các nguyên tắc thiết kế của nền tảng như Android và iOS để đảm bảo trải nghiệm người dùng tốt nhất.

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ó.

Phản hồi rõ ràng là rất quan trọng để người dùng hiểu kết quả hành động của họ, như thông báo thành công hoặc thất bại sau mỗi thao tác.

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 đang ngày càng phổ biến, mang lại lợi ích cho người dùng bằng cách giảm mỏi mắt và tiết kiệm pin cho các thiết bị sử dụng màn hình OLED.

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

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

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.

○ 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àn thà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 các dịch vụ lịch khác như Google Calendar và Outlook Calendar cho phép người dùng dễ dàng truy cập thông tin lịch của mình.

○ 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:

○ 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:

Báo cáo thống kê sử dụng cung cấp thông tin chi tiết về số lượng sự kiện và công việc đã hoàn thành, cùng với thời gian làm việc, giúp người dùng dễ dàng theo dõi và đánh giá hiệu suất cá nhân của mình.

Đánh giá và phản hồi là yếu tố quan trọng giúp người dùng đánh giá hiệu quả của các công việc và sự kiện, từ đó rút ra bài học kinh nghiệm quý giá cho các kế hoạch trong tươ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 hiệu quả, chúng tôi cung cấp tài liệu hướng dẫn sử dụng chi tiết và danh sách các câu hỏi thường gặp Điều này giúp người dùng dễ dàng tìm hiểu và nắm bắt cách sử dụng ứng dụng một cách nhanh chóng và thuận tiện.

○ 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.

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

○ Thời gian phản hồi: Ứng dụng phải có thời gian phản hồi nhanh (dưới

2 giây) cho các hành động của người dùng như thêm, chỉnh sửa, hoặc xóa sự kiện và công việc.

Để đảm bảo hiệu suất tối ưu, ứng dụng cần hoạt động mượt mà mà không tiêu tốn quá nhiều tài nguyên hệ thống như RAM, CPU và pin Điều này giúp thiết bị không bị chậm hoặc nóng khi sử dụng, mang lại trải nghiệm tốt nhất cho người dùng.

Giao diện người dùng của ứng dụng cần được thiết kế thân thiện và dễ hiểu, với bố trí hợp lý, giúp người dùng dễ dàng sử dụng mà không cần quá nhiều hướng dẫn.

Ứng dụng cần hỗ trợ nhiều ngôn ngữ để phục vụ người dùng từ các quốc gia và khu vực khác nhau, đảm bảo tính linh hoạt và tiếp cận rộng rãi Điều này không chỉ nâng cao trải nghiệm người dùng mà còn tăng độ tin cậy của ứng dụng trong mắt khách hàng toàn cầu.

○ Tính ổn định: Ứng dụng cần đảm bảo không gặp lỗi hoặc sự cố khi hoạt động, giảm thiểu thời gian ngừng hoạt động (downtime).

○ Khôi phục sau lỗi: Cần có cơ chế khôi phục dữ liệu và trạng thái của ứng dụng trong trường hợp xảy ra sự cố hoặc lỗi bất ngờ.

Để bảo vệ dữ liệu người dùng, cần áp dụng các biện pháp mã hóa và an toàn nhằm đảm bảo an toàn cho dữ liệu cá nhân và lịch sử hoạt động của họ.

Để đảm bảo an toàn thông tin, cần thiết lập cơ chế xác thực người dùng hiệu quả và quản lý quyền truy cập chặt chẽ, nhằm chỉ cho phép những người có thẩm quyền xem hoặc chỉnh sửa dữ liệu.

○ Hỗ trợ nhiều phiên bản Android: Ứng dụng cần hoạt động tốt trên nhiều phiên bản Android khác nhau, từ các phiên bản cũ đến mới nhất.

○ Tương thích với nhiều thiết bị: Đảm bảo rằng ứng dụng có thể chạy trên các thiết bị có kích thước màn hình khác nhau (smartphone, tablet).

Khả năng mở rộng là yếu tố quan trọng trong thiết kế ứng dụng, cho phép tích hợp các tính năng mới mà không cần viết lại toàn bộ mã nguồn Việc này không chỉ tiết kiệm thời gian và chi phí phát triển, mà còn đảm bảo rằng ứng dụng có thể thích ứng với nhu cầu thay đổi của người dùng trong tương lai.

Để nâng cao hiệu quả làm việc, việc tích hợp với các dịch vụ bên ngoài như Google Calendar, dịch vụ nhắc nhở và các ứng dụng quản lý công việc khác là rất cần thiết Sự hỗ trợ này giúp người dùng dễ dàng quản lý thời gian và công việc một cách hiệu quả hơn.

Mã nguồn của ứng dụng cần được tổ chức và viết một cách dễ bảo trì, giúp lập trình viên khác dễ dàng hiểu và sửa chữa khi cần thiết.

Ứng dụng cần phải được cập nhật và nâng cấp một cách dễ dàng để khắc phục lỗi và cải thiện chức năng, đồng thời đảm bảo không làm gián đoạn trải nghiệm của người dùng.

Để nâng cao trải nghiệm người dùng, ứng dụng cần tích hợp tính năng tìm kiếm hiệu quả, cho phép người dùng nhanh chóng và chính xác tìm thấy các sự kiện hoặc nhiệm vụ mà họ đang cần.

Thiết kế hệ thống

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

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

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

Kiểu Ràng buộc Khoá chính/Khoá phụ (PK/FK)

1 ID INTEGER NOT NULL PK Khoá chính, ID của hoạt động

2 From TEXT NOT NULL Điểm xuất phát của hoạt động

3 To TEXT NOT NULL Điểm đến của hoạt động

4 Activity TEXT NOT NULL Tên hoặc mô tả hoạt động

Kiểu Ràng buộc Khoá chính/Khoá phụ (PK/FK)

1 Date TEXT NOT NULL PK Khoá chính, ngày đánh giá

2 Rating INTEGER NOT NULL Đánh giá cho ngày tương ứng

Kiểu Ràng buộc Khoá chính/Khoá phụ

1 ID INTEGER NOT NULL PK Khoá chính, ID của hoạt động theo dõi

2 Title TEXT NOT NULL Tiêu đề của hoạt động theo dõi

3 Color TEXT NOT NULL Mã màu của hoạt động

4 Tags TEXT Nhãn cho hoạt động, có thể lưu dưới dạng chuỗi

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

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

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

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

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

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

Thiết kế giao diện

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)

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

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

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

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

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

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

TRIỂN KHAI ỨNG DỤNG

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

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

Bước 1: Tải xuống Android Studio

○ Truy cập trang web chính thức:

Mở trình duyệt và truy cập vào trang web Android Studio.

○ Chọn phiên bản phù hợp:

Nhấn vào nút Tải xuống Android Studio để nhận phiên bản mới nhất Trang web sẽ tự động nhận diện hệ điều hành của bạn và cung cấp liên kết tải về phù hợp.

Bước 2: Cài đặt Android Studio Đối với Windows:

Mở tệp exe đã tải xuống và chọn Run.

Chọn I Agree để đồng ý với điều khoản và điều kiện.

Chọn cài đặt mặc định hoặc tùy chỉnh Nên giữ cài đặt mặc định cho việc cài đặt nhanh chóng.

Android Studio sẽ tự động tải xuống và cài đặt Android SDK. Bạn có thể chọn phiên bản SDK mà bạn muốn cài đặt.

○ Chờ hoàn tất cài đặt:

Nhấn Next và chờ đợi quá trình cài đặt hoàn tất.

Sau khi cài đặt xong, nhấn Finish để hoàn tất quá trình. Đối với macOS:

Mở tệp dmg đã tải xuống.

○ Kéo Android Studio vào thư mục Applications:

Kéo biểu tượng Android Studio vào thư mục Applications.

Mở thư mục Applications và nhấp đúp vào Android Studio.

Chọn I Agree để đồng ý với điều khoản và điều kiện.

Giữ nguyên cài đặt mặc định và nhấn Next.

○ Chờ hoàn tất cài đặt:

Android Studio sẽ tự động tải xuống và cài đặt Android SDK. Chờ quá trình này hoàn tất.

Nhấn Finish để hoàn tất.

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

Khi bạn cài đặt Android Studio, Android SDK thường được cài đặt tự động Tuy nhiên, bạn có thể kiểm tra và cấu hình lại nếu cần.

Trên màn hình chính của Android Studio, nhấp vào Configure (Cấu hình) và chọn SDK Manager.

Bạn cũng có thể truy cập SDK Manager từ menu File > Settings (trên Windows) hoặc Android Studio > Preferences (trên macOS).

○ Kiểm tra cài đặt SDK:

Trong tab SDK Platforms, bạn có thể xem danh sách các phiên bản Android SDK đã được cài đặt Để cài đặt thêm một phiên bản SDK, hãy chọn ô bên cạnh phiên bản mong muốn và nhấn Apply để tiến hành tải xuống và cài đặt.

○ Kiểm tra cài đặt SDK Tools:

Switch to the SDK Tools tab and ensure that essential tools such as Android SDK Build-Tools, Android Emulator, and Android SDK Platform-Tools are installed If any of these tools are missing, select them and click Apply.

Gradle là công cụ xây dựng tự động mà Android Studio sử dụng để quản lý các dự án Android.

Mở một dự án trong Android Studio (hoặc tạo một dự án mới).

Trong cửa sổ Project, mở tệp build.gradle (Module: app) để kiểm tra cấu hình.

Open the gradle/wrapper/gradle-wrapper.properties file Ensure that the Gradle wrapper version specified in the distributionUrl property is the latest version or meets the project's requirements.

Sao chép mã: distributionUrl=https\://services.gradle.org/distributions/gradle-

Thay bằng phiên bản Gradle mong muốn (bạn có thể kiểm tra trang Gradle Releases để biết phiên bản mới nhất).

○ Cấu hình dự án Gradle:

Mở tệp build.gradle (Project) để cấu hình toàn bộ dự án, nơi bạn có thể thêm các thư viện và plugin cần thiết cho dự án của mình.

Sao chép mã buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:' }

} o Đồng bộ hóa Gradle: Đồng bộ hóa dự án:

Sau khi chỉnh sửa tệp build.gradle, bạn sẽ nhận được thông báo ở đầu cửa sổ Android Studio, yêu cầu bạn thực hiện việc đồng bộ hóa dự án.

Nhấn Sync Now để áp dụng các thay đổi.

Nếu trong quá trình đồng bộ hóa xuất hiện lỗi, Android Studio sẽ hiển thị chúng trong cửa sổ Build Để tiếp tục, bạn cần khắc phục những lỗi này.

Các bước triển khai

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

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

Mục đích: Cho phép người dùng thêm hoạt động vào một ngày cụ thể.

○ Sử dụng phương thức addActivity để chèn một hoạt động vào bảng tương ứng với ngày tháng.

○ Nếu bảng cho ngày đó chưa tồn tại, checkTable sẽ tạo bảng mới với tên là ngày tháng cụ thể.

@RequiresApi(api = Build.VERSION_CODES.O) public void addActivity(Activity act, String date) { checkTable(date);

String insert = "INSERT INTO "+date+" (ID, From, To, Activity) VALUES " +

"('"+act.getID()+"', '"+act.getFromToString()+"', '"+ act.getToToString()+"', '"+act.getActivity()+"');"; db.execSQL(insert);

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

Mục đích: Cho phép người dùng cập nhật thông tin của hoạt động.

○ Sử dụng phương thức updateActivity để cập nhật thời gian bắt đầu, thời gian kết thúc, và tên của hoạt động.

○ Dựa vào activity_id để xác định và cập nhật hoạt động trong cơ sở dữ liệu.

○ Mã lệnh: public void updateActivity(Activity activity, String date){

String update = "UPDATE "+date+" SET From '"+activity.getFromToString()+

"', TO = '"+activity.getToToString()+"', Activity '"+activity.getActivity()+

SQLiteDatabase db = this.getWritableDatabase(); db.execSQL(update);

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

Mục đích: Loại bỏ một hoạt động khỏi danh sách.

○ Phương thức deleteActivity sẽ xóa hoạt động có ID tương ứng khỏi bảng theo ngày.

○ Mã lệnh: public void deleteActivity(int ID, String date) {

String delete = "DELETE FROM "+date+" WHERE ID '"+ID+"';";

SQLiteDatabase db = this.getWritableDatabase(); db.execSQL(delete);

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

Mục đích: Lưu trữ đánh giá của người dùng về các hoạt động đã thực hiện.

○ Phương thức setRating sẽ kiểm tra sự tồn tại của bảng Ratings. Nếu chưa có, bảng sẽ được tạo thông qua checkRatingTable.

○ Mỗi ngày chỉ lưu một giá trị đánh giá, nếu đã tồn tại, phương thức này sẽ cập nhật thay vì thêm mới.

○ Mã lệnh: public void setRating(int rating, String date) { checkRatingTable(); boolean exists = false; for (String[] row : getAllRatings()) { if (row[0].equals(date)) { exists = true; break;

String statement; if (exists) { statement = "UPDATE Ratings SET Rating = '"+rating+"' WHERE Date = '"+date+"';";

} else { statement = "INSERT INTO Ratings (Date, Rating) VALUES ('"+date+"', '"+rating+"');";

○ Phương thức bổ sung: getRating để lấy điểm đánh giá của một ngày cụ thể từ bảng Ratings.

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

Mục đích: Lưu lại danh sách các hoạt động đã thực hiện và cho phép người dùng quản lý, theo dõi.

○ Phương thức addTrackedActivity sẽ thêm một hoạt động đã hoàn thành vào bảng Tracked Activities.

○ Trước đó, checkTrackedActivitiesTable sẽ kiểm tra và tạo bảng Tracked Activities nếu chưa tồn tại.

○ Mã lệnh: public void addTrackedActivity(TrackedActivity act) { checkTrackedActivitiesTable();

String insert = "INSERT INTO Tracked Activities " +

"(ID, Title, Color, Tags) VALUES " +

"('"+act.getID()+"', '"+act.getTitle()+"', '"+act.getColorCode()+"', '"

+act.getTagsToString()+"');"; db.execSQL(insert);

○ Phương thức bổ sung: updateTrackedActivity để chỉnh sửa các thông tin của hoạt động theo dõi. deleteTrackedActivity để xóa hoạt động theo dõi dựa trênID.

4.2.2 Xây dựng cơ sở dữ liệu và kết nối với ứng dụng Ứng dụng sử dụng cơ sở dữ liệu SQLite với ba bảng chính: Activities, Ratings, và TrackedActivities.

● Bảng Activities: Lưu thông tin về các hoạt động, gồm ID, thời gian bắt đầu, thời gian kết thúc, và tên hoạt động.

● Bảng Ratings: Lưu đánh giá của người dùng cho từng ngày, giúp theo dõi mức độ hoàn thành.

● Bảng TrackedActivities: Lưu các hoạt động thường xuyên, với

ID, tiêu đề, màu sắc, và các thẻ liên quan.

Kết nối với cơ sở dữ liệu

Lớp Database trong ứng dụng mở rộng từ SQLiteOpenHelper để tạo và quản lý các bảng trên Các phương thức chính bao gồm:

● Thêm mới và cập nhật hoạt động: Phương thức addActivity và updateActivity để thêm và cập nhật dữ liệu vào bảng Activities.

● Đánh giá hoạt động: Phương thức setRating để đặt mức đánh giá cho từng ngày.

Theo dõi hoạt động thường xuyên là rất quan trọng, bao gồm việc quản lý thông qua các phương thức thêm, sửa và xóa trong bảng TrackedActivities Kết nối và thao tác với SQLite cho phép ứng dụng lưu trữ dữ liệu cục bộ một cách hiệu quả, từ đó nâng cao hiệu suất và sự tiện dụng cho người dùng.

Kiểm thử

Kiểm thử chức năng (Functional Testing):

Mỗi chức năng chính như quản lý, đánh giá và theo dõi hoạt động đều được kiểm thử kỹ lưỡng để đảm bảo đáp ứng đúng các yêu cầu đã đề ra.

○ Các trường hợp kiểm thử bao gồm thêm, sửa, xóa hoạt động, lưu đánh giá, và quản lý các hoạt động lặp lại.

Kiểm thử giao diện người dùng (UI Testing):

○ Kiểm thử nhằm đảm bảo giao diện thân thiện, dễ sử dụng và tương thích trên các thiết bị Android với các kích thước màn hình khác nhau.

○ Kiểm tra cách hiển thị và thao tác với các thành phần giao diện như các nút chức năng, bảng, danh sách hoạt động.

Kiểm thử hiệu năng (Performance Testing):

○ Đánh giá hiệu năng ứng dụng khi xử lý nhiều dữ liệu để đảm bảo phản hồi nhanh và mượt mà.

○ Kiểm tra hiệu quả sử dụng tài nguyên như bộ nhớ và pin, đặc biệt trong các tác vụ nền như truy xuất dữ liệu và cập nhật.

Kiểm thử khả năng phục hồi (Recovery Testing):

○ Kiểm thử khả năng khôi phục và hoạt động ổn định khi ứng dụng gặp sự cố bất ngờ như mất kết nối hoặc mất dữ liệu.

Kiểm thử tích hợp (Integration Testing):

Kiểm tra sự tương tác giữa các thành phần là rất quan trọng, đặc biệt là giữa các module cơ sở dữ liệu và giao diện người dùng Điều này đảm bảo rằng các thành phần hoạt động nhịp nhàng và dữ liệu được xử lý một cách chính xác.

Sau khi tiến hành kiểm thử ứng dụng, các kết quả thu được như sau:

○ Chức năng quản lý hoạt động (thêm, sửa, xóa) hoạt động chính xác, cho phép người dùng thêm và điều chỉnh hoạt động theo ngày.

○ Chức năng đánh giá hoạt động hoạt động ổn định, lưu trữ và cập nhật đúng điểm đánh giá theo ngày.

○ Chức năng theo dõi các hoạt động thường xuyên cho phép thêm, chỉnh sửa, và xóa các hoạt động định kỳ mà không gặp lỗi.

Kiểm thử giao diện người dùng:

○ Giao diện hiển thị đúng trên các kích thước màn hình khác nhau, đảm bảo người dùng dễ thao tác và truy cập các tính năng chính.

○ Các thành phần giao diện như nút, biểu tượng, và danh sách hoạt động phản hồi nhanh và đúng chức năng khi tương tác.

○ Ứng dụng xử lý dữ liệu với hiệu suất cao, kể cả khi lưu trữ một lượng lớn hoạt động mà không ảnh hưởng đến thời gian phản hồi.

○ Việc tiêu thụ tài nguyên như bộ nhớ và pin được tối ưu, đảm bảo ứng dụng hoạt động mượt mà trong thời gian dài.

Kiểm thử khả năng phục hồi:

Ứng dụng được thiết kế với khả năng phục hồi mạnh mẽ khi xảy ra sự cố như mất kết nối hoặc thoát đột ngột, giúp bảo vệ dữ liệu và ngăn chặn tình trạng mất mát thông tin.

Các thành phần của ứng dụng hoạt động hài hòa, đặc biệt là sự phối hợp giữa cơ sở dữ liệu và giao diện người dùng Trong quá trình kiểm thử tích hợp, không có lỗi dữ liệu nào được phát hiện.

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

Trong quá trình phát triển và kiểm thử ứng dụng, nhiều lỗi và vấn đề hiệu suất đã được phát hiện và khắc phục nhằm đảm bảo ứng dụng hoạt động tối ưu và mượt mà Các giải pháp cải thiện hiệu suất bao gồm việc tối ưu hóa mã nguồn, điều chỉnh cấu hình hệ thống và nâng cao quy trình kiểm thử.

Lỗi giao diện đã được khắc phục, đảm bảo sự hiển thị và phản hồi đồng nhất trên các kích thước màn hình khác nhau, từ đó nâng cao trải nghiệm người dùng.

Lỗi dữ liệu, bao gồm trùng lặp và sai sót trong cập nhật thông tin, đã được khắc phục thông qua việc kiểm tra kỹ lưỡng các câu lệnh.

SQL và bảo đảm các thao tác thêm, sửa, xóa dữ liệu diễn ra chính xác.

Để ngăn chặn lỗi định dạng ngày và thời gian do người dùng nhập sai, chúng tôi đã bổ sung các cơ chế kiểm tra và gợi ý định dạng chuẩn.

Tối ưu hóa truy xuất cơ sở dữ liệu là quá trình cải thiện các truy vấn SQL nhằm giảm thời gian xử lý, đặc biệt khi xử lý khối lượng lớn dữ liệu Việc này không chỉ giúp giảm tải cho bộ nhớ mà còn tăng tốc độ truy xuất dữ liệu, mang lại hiệu quả cao hơn trong công việc đánh giá.

Giảm thiểu tiêu thụ bộ nhớ là một yếu tố quan trọng trong việc tối ưu hóa hiệu suất ứng dụng Bằng cách quản lý các đối tượng không cần thiết và dọn dẹp tài nguyên khi không sử dụng, ứng dụng có thể giảm thiểu tiêu hao bộ nhớ, từ đó tránh được lỗi tràn bộ nhớ.

Cải thiện hiệu suất xử lý nền giúp nâng cao tốc độ phản hồi của ứng dụng bằng cách chuyển các tác vụ như đồng bộ dữ liệu và lưu trữ thông tin sang chế độ xử lý nền, mang lại trải nghiệm người dùng mượt mà hơn.

Nâng cao trải nghiệm người dùng:

○ Các thao tác nhấn, kéo, và cuộn được tối ưu để đảm bảo phản hồi nhanh, mang lại trải nghiệm mượt mà.

○ Tích hợp thông báo lỗi và xác nhận thao tác giúp người dùng nắm bắt rõ trạng thái của hệ thống và tránh thao tác không mong muốn.

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

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

Sau quá trình phát triển và kiểm thử ứng dụng "Quản lý lịch sinh hoạt và làm việc", nhóm phát triển đã ghi nhận nhiều kết quả tích cực, thể hiện rõ rệt qua các khía cạnh như hiệu suất hoạt động, tính năng thân thiện với người dùng, và khả năng đáp ứng nhu cầu quản lý thời gian hiệu quả.

Hoàn thiện chức năng chính:

Tất cả các chức năng chính của ứng dụng, bao gồm quản lý, đánh giá và theo dõi hoạt động, đã được triển khai thành công và hoạt động ổn định Người dùng có thể dễ dàng thêm, sửa, xóa hoạt động và đánh giá hiệu suất công việc của mình một cách hiệu quả.

Giao diện người dùng của ứng dụng được thiết kế trực quan và thân thiện, giúp người dùng dễ dàng thao tác mà không gặp khó khăn Phản hồi từ người dùng cho thấy ứng dụng đáp ứng tốt nhu cầu và mong đợi của họ.

Ứng dụng đã được tối ưu hóa cho thiết bị di động, giúp giảm thiểu tiêu thụ tài nguyên và tăng cường thời gian phản hồi Các biện pháp khắc phục lỗi và cải thiện hiệu suất đã đảm bảo ứng dụng hoạt động mượt mà, ngay cả khi xử lý khối lượng dữ liệu lớn.

Hệ thống được thiết kế với kiến trúc linh hoạt, giúp mở rộng các tính năng trong tương lai một cách dễ dàng Các bảng cơ sở dữ liệu được xây dựng có khả năng mở rộng, cho phép bổ sung thông tin và chức năng mới mà không gặp phải bất kỳ trở ngại nào.

Phản hồi từ người dùng:

Nhóm phát triển đã thu thập phản hồi từ người dùng thông qua khảo sát và thử nghiệm, cho thấy ứng dụng đã đáp ứng tốt nhu cầu quản lý thời gian và hoạt động hàng ngày của họ Phản hồi tích cực này chứng tỏ rằng dự án đã đạt được mục tiêu đề ra.

Nhóm đã hoàn thành dự án đúng tiến độ và đạt được các mục tiêu ban đầu Ứng dụng không chỉ hoạt động hiệu quả mà còn có tiềm năng mở rộng với nhiều tính năng mới trong tương lai.

Các kết quả đạt được không chỉ chứng minh năng lực của nhóm phát triển mà còn mở ra hướng đi mới cho việc cải tiến ứng dụng trong tương lai, nhằm phục vụ người dùng tốt hơn.

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

Trong quá trình phát triển ứng dụng "Quản lý lịch sinh hoạt và làm việc", nhóm phát triển đã đối mặt với một số hạn chế và khó khăn Một số điểm đáng chú ý bao gồm việc tối ưu hóa tính năng, đảm bảo trải nghiệm người dùng mượt mà, và xử lý các vấn đề kỹ thuật phát sinh.

Hạn chế về thời gian:

Thời gian phát triển dự án hạn chế đã ảnh hưởng đến việc hoàn thiện các tính năng và quy trình kiểm thử Kết quả là một số chức năng chưa được tối ưu hóa hoàn toàn, gây tác động tiêu cực đến trải nghiệm người dùng.

Khó khăn trong việc thiết kế giao diện:

Thiết kế giao diện người dùng trực quan và hấp dẫn là một thách thức lớn Nhóm đã phải đối mặt với khó khăn trong việc tạo ra một giao diện vừa đẹp mắt vừa thân thiện với người sử dụng, đặc biệt là khi cần đảm bảo tính tương thích với nhiều kích thước màn hình khác nhau.

Quản lý cơ sở dữ liệu:

Trong quá trình xây dựng và quản lý cơ sở dữ liệu, nhóm đã gặp phải một số vấn đề liên quan đến truy vấn dữ liệu Các lỗi SQL phát sinh đã yêu cầu thời gian để xử lý và tìm ra các giải pháp phù hợp.

Khó khăn trong việc thu thập phản hồi từ người dùng:

Việc thu thập và phân tích phản hồi từ người dùng gặp nhiều khó khăn do thời gian hạn chế và số lượng người tham gia thử nghiệm không đủ lớn Điều này khiến nhóm không thể hiểu rõ nhu cầu và mong đợi của người dùng.

Vấn đề tương thích với các phiên bản Android khác nhau:

Sự đa dạng của các phiên bản Android có thể gây ra tình trạng một số chức năng không hoạt động đúng như mong đợi trên các thiết bị khác nhau Để khắc phục vấn đề này, nhóm đã tiến hành kiểm thử trên nhiều loại thiết bị, điều này dẫn đến việc tăng khối lượng công việc và thời gian kiểm thử.

Khó khăn trong việc duy trì động lực nhóm:

Trong quá trình phát triển dự án, một số thành viên trong nhóm đã gặp khó khăn trong việc duy trì động lực làm việc do áp lực từ việc học tập và các công việc khác, ảnh hưởng đến tiến độ hoàn thành dự án.

Mặc dù đối mặt với nhiều thách thức, nhóm phát triển không ngừng nỗ lực tìm kiếm giải pháp để cải thiện ứng dụng Những bài học từ những khó khăn này sẽ trở thành kinh nghiệm quý giá cho các dự án tương lai.

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

Để cải thiện chất lượng và tính năng của ứng dụng "Quản lý lịch sinh hoạt và làm việc", nhóm phát triển đã đề ra một số hướng đi cho tương lai.

Mở rộng các tính năng:

Tích hợp các chức năng mới như nhắc nhở thông minh, phân tích hiệu suất và gợi ý lịch trình dựa trên thói quen người dùng sẽ giúp tối ưu hóa thời gian và nâng cao hiệu suất làm việc.

Cải thiện giao diện người dùng:

Đầu tư vào việc cải thiện giao diện người dùng là rất quan trọng, giúp nó trở nên trực quan và dễ sử dụng hơn Bằng cách tạo ra các mẫu giao diện tùy chỉnh, chúng ta có thể nâng cao khả năng tương tác của ứng dụng với người dùng, mang lại trải nghiệm tốt hơn cho họ.

Tăng cường hiệu suất ứng dụng:

Tối ưu hóa mã nguồn và cơ sở dữ liệu là rất quan trọng để cải thiện tốc độ tải ứng dụng và khả năng xử lý dữ liệu Điều này không chỉ nâng cao trải nghiệm người dùng mà còn đặc biệt có lợi cho những thiết bị có cấu hình thấp.

Tích hợp công nghệ mới:

Khám phá và áp dụng công nghệ trí tuệ nhân tạo (AI) giúp dự đoán thói quen và sở thích của người dùng, từ đó cung cấp gợi ý phù hợp với nhu cầu của họ.

Phát triển phiên bản đa nền tảng:

Mở rộng khả năng của ứng dụng để hỗ trợ nhiều nền tảng như iOS và web không chỉ giúp tăng cường tính khả dụng mà còn mở rộng đối tượng người dùng, từ đó nâng cao sự phổ biến của ứng dụng.

Tăng cường khả năng bảo mật:

Để bảo vệ dữ liệu của người dùng trước những mối đe dọa ngày càng gia tăng, cần nâng cao các biện pháp bảo mật Điều này không chỉ giúp đảm bảo an toàn thông tin mà còn tạo dựng lòng tin từ phía người dùng, từ đó nâng cao uy tín của ứng dụng.

Tạo cộng đồng người dùng:

Phát triển một cộng đồng người dùng thông qua các diễn đàn và mạng xã hội là cách hiệu quả để người dùng chia sẻ kinh nghiệm, ý tưởng và phản hồi về ứng dụng Việc này không chỉ tạo ra một không gian giao lưu cho người dùng mà còn cung cấp thông tin phản hồi quý giá cho nhóm phát triển, từ đó giúp cải thiện sản phẩm một cách hiệu quả.

Thực hiện các khảo sát người dùng thường xuyên:

Thực hiện các khảo sát định kỳ giúp nắm bắt nhu cầu và mong đợi của người dùng, từ đó điều chỉnh sản phẩm một cách phù hợp để đáp ứng tốt hơn yêu cầu của khách hàng.

Nhóm phát triển tập trung vào việc nâng cao chất lượng ứng dụng và đáp ứng nhu cầu người dùng, nhằm tạo ra một sản phẩm hữu ích và bền vững cho tương lai.

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

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w