TỔNG QUAN VỀ ĐỀ TÀI
Giới thiệu chung
▪ Tên đề tài bằng tiếng việt: Xây dựng ứng dụng chia sẻ trích dẫn hay mỗi ngày trên nền tảng Android.
▪ Tên đề tài bằng tiếng anh: Build apps to share good quotes every day on Android.
▪ Thời gian thực hiện: 2 tháng (26/04/2021 – 27/06/2021).
▪ Môi trường phát triển: Android Studio phiên bản 4.4.1.
▪ Ngôn ngữ lập trình: Java.
▪ Lưu trữ Cơ sở dữ liệu: Firebase.
▪ Nền tảng phát triển: Hệ điều hành Android 5.0 (Lollipop) API 21 trở lên.
▪ Thiết bị điện tử được cài đặt: Điện thoại di động thông minh.
▪ Đối tượng sử dụng: Bất kỳ ai.
Đặt vấn đề
Với sự bùng nổ của công nghiệp hiện đại, đặc biệt trong lĩnh vực công nghệ thông tin và giải trí, các thiết bị nghe nhìn như điện thoại, máy tính bảng và laptop ngày càng trở nên phổ biến Những phương tiện này không chỉ vượt trội về tính năng tiện dụng mà còn thu hút người dùng mạnh mẽ hơn so với các trang sách báo truyền thống.
Nhiều người trẻ hiện nay không có thói quen đọc sách, thay vào đó, họ thường dành thời gian cho những hoạt động vô bổ như lướt mạng xã hội Facebook và xem video TikTok Những thói quen này khiến họ quên đi mục tiêu và ước mơ cá nhân của mình.
Trong thời đại tiêu dùng hiện đại, giới trẻ thường bị phân tâm bởi các phương tiện truyền thông, dẫn đến tâm lý ưa chuộng sự đơn giản, nhanh chóng và tiện lợi Điều này khiến việc đọc sách trở nên ít được coi trọng hơn.
Nhiều người, bao gồm cả bản thân tôi, thường ngại đọc nhiều chữ và thường viện lý do bận rộn với các vấn đề của tuổi trưởng thành như tình yêu, công việc làm thêm hay bài tập lớn, dẫn đến việc ít dành thời gian cho việc đọc sách.
Những người khao khát phát triển bản thân thường dành thời gian đọc sách để tìm nguồn cảm hứng Những câu chữ trong sách không chỉ truyền lửa mà còn mang lại những ý nghĩa sâu sắc, giúp họ nhận ra giá trị của sự thay đổi và tiến bộ.
Nhiều người thường đánh dấu những câu viết tâm đắc trong sách hoặc ghi chép lại để tìm lại sức mạnh ý chí khi cần Tuy nhiên, do bận rộn với công việc và cuộc sống, họ ít khi xem lại những ghi chú này, dẫn đến việc quên đi những giá trị quý báu từ sách và những bài học tự rút ra Việc không đọc lại thường xuyên khiến họ không nhớ được những lời khuyên, châm ngôn sống và triết lý về cuộc sống, từ đó không thể áp dụng vào những tình huống cụ thể trong cuộc sống.
Các ứng dụng trích dẫn đa phần là ứng dụng chỉnh sửa và đi kèm với ghép ảnh.
Lý do chọn đề tài
Với ý muốn tận dụng sự phát triển, sự thuận tiện của khoa học công nghệ, kỹ thuật điện tử như hiện nay để có thể:
▪ Tạo thói quen văn hóa đọc trong người trẻ nói riêng và mọi người dân nói chung.
▪ Giúp tập trung sự chú ý vào những thứ tích cực hữu ích thay vì bị xao lãng một
▪ Dung nạp những suy nghĩ, ý niệm tích cực, lạc quan hàng ngày hàng giờ, cả trước khi đi vào giấc ngủ hay ngay sau khi thức dậy.
Nơi đây là điểm đến lý tưởng khi bạn cảm thấy bế tắc, cần sự động viên, khích lệ và an ủi Nó giúp định hướng, trấn an tinh thần, cổ vũ ý chí, sức mạnh, sự tự tin, niềm hy vọng và sự dũng cảm trong bạn.
▪ Nhắc nhở bản thân sống tích cực, lạc quan, tự tin, mạnh mẽ hơn trong cuộc sống.
▪ Tự đọc lên những câu chữ như đang tự mình nhắn nhủ chính mình.
Tạo sự tương tác giữa mọi người để thúc đẩy tinh thần thi đua, xếp hạng thành tích và đưa ra các thử thách giúp người dùng phát triển bản thân, từ đó trở thành phiên bản tốt hơn của chính mình.
Với những lý do nêu trên, tôi đã quyết định chọn đề tài "Xây dựng ứng dụng chia sẻ trích dẫn hay mỗi ngày trên nền tảng Android" cho đồ án tốt nghiệp của mình.
Mục tiêu của đề tài
Xây dựng ứng dụng trên nền tảng Android giúp kết nối những người có cùng sở thích, tạo ra một cộng đồng chung để chia sẻ những câu nói, quyển sách và bài học ý nghĩa trong cuộc sống.
Cụ thể, ứng dụng “Chia sẻ trích dẫn hay” này cung cấp cho người dùng những tính năng như:
▪ Ghi lại các câu trích dẫn tâm đắc.
Ghi lại những câu trích dẫn ấn tượng từ các cuốn sách đã đọc hoặc tóm tắt các ý chính một cách hấp dẫn sẽ kích thích sự tò mò của độc giả, khiến họ muốn tìm đọc lại những tác phẩm đó Hãy tạo ra những đoạn văn ngắn gọn nhưng đầy sức hút, giúp người đọc cảm nhận được giá trị và thông điệp sâu sắc của từng cuốn sách.
Nhận những câu trích dẫn ngắn yêu thích hàng ngày để tiếp thêm động lực, sức mạnh và sự tự tin, giúp bạn bắt đầu một ngày mới tràn đầy năng lượng và tinh thần phấn chấn.
▪ Chia sẻ được những câu trích dẫn hay cho bạn bè, mọi người.
Mỗi ngày, chúng tôi cung cấp những câu trích dẫn mới liên quan đến các chủ đề, tác giả, sách và cảm xúc mà bạn yêu thích.
▪ Và không chỉ là một ứng dụng đọc không mà còn là một ứng dụng để giải trí, duy trì thói quen đọc.
Nội dung nghiên cứu
Để đạt được những mục tiêu ở trên em cần nghiên cứu, tìm hiểu những nội dung sau:
▪ Tìm hiểu về công cụ phát triển ứng dụng Android Studio.
▪ Nghiên cứu về nền tảng Firebase.
▪ Khảo sát, phân tích yêu cầu hệ thống.
▪ Thiết kế, xây dựng cấu trúc dữ liệu.
▪ Tìm kiếm các thư viện hỗ trợ
Phạm vi của đề tài
Đề tài này tập trung vào việc phát triển một ứng dụng mạng xã hội nhỏ, cho phép người dùng thực hiện các chức năng cơ bản như đăng bài viết, bình luận, bày tỏ cảm xúc và nhắn tin qua lại trên các thiết bị di động thông minh sử dụng hệ điều hành Android.
PHÂN TÍCH – THIẾT KẾ HỆ THỐNG
Mô tả hệ thống chia sẻ trích dẫn hay
Một nhóm người dùng đang phát triển một ứng dụng nhằm quản lý và lưu trữ các trích dẫn yêu thích của họ Ứng dụng này cho phép người dùng ghi lại những câu nói và lời khuyên hữu ích, giúp họ dễ dàng truy cập và đọc lại khi cần thiết.
Do vậy hệ thống cần phải cho phép ghi và lưu nhận các trích dẫn và thông báo lại các câu nói hay đó với người dùng.
Hệ thống chia sẻ trích dẫn là phần mềm giúp ghi lại và lưu trữ các phiên viết trích dẫn, đồng thời thông báo thường xuyên cho người dùng, chủ yếu phục vụ nhu cầu của người dùng cá nhân.
Hệ thống chia sẻ trích dẫn có một kho lưu trữ đám mây Firebase để lưu dữ liệu chung của mọi người dùng.
Hệ thống ứng dụng cho phép người dùng đã đăng ký tài khoản thực hiện tất cả các giao dịch bằng cách sử dụng địa chỉ email của họ làm tên đăng nhập.
Người dùng cần đăng ký tài khoản bằng email cá nhân và mật khẩu để truy cập ứng dụng Thông tin email và mật khẩu sẽ được mã hóa và gửi đến hệ thống lưu trữ thông tin Firebase để xác nhận.
Hệ thống tự động gửi thư xác nhận sau khi người dùng đăng ký thành công Người dùng có thể thực hiện nhiều giao dịch sau khi đăng nhập Tài khoản sẽ tự động duy trì trạng thái đăng nhập trên máy tính cho đến khi người dùng chọn đăng xuất.
Người dùng chỉ có thể sử dụng ứng dụng trên thiết bị điện thoại di động thông minh hệ điều hành Android.
Người dùng cần có khả năng xem lại các câu trích dẫn cá nhân của mình và được thông báo về các bài viết mới cũng như tin nhắn đến.
Người dùng phải có khả năng chia sẻ bài viết của mình cho mọi người, bạn bè.
Người dùng phải có khả năng bày tỏ cảm xúc với bài viết của người dùng khác.
Người dùng phải có thể bình luận với bài viết của người dùng khác.
Người dùng phải có khả năng tìm kiếm các trích dẫn, các tác giả, các bạn bè.
Người dùng có thể hủy bỏ bài viết bằng cách chạm ‘Hủy’.
Nếu mật khẩu của người dùng không hợp lệ, hệ thống Firebase sẽ yêu cầu họ nhập lại Trong trường hợp người dùng quên mật khẩu, họ có thể khôi phục bằng cách nhận thư xác nhận vào email đã đăng ký.
Hệ thống cần cung cấp cho người dùng danh sách các bài viết cá nhân đã lưu thành công, bao gồm thông tin về ngày tháng, thời gian, chủ đề và số lượt thích.
Mỗi người dùng trong hệ thống được lưu trữ thông tin bao gồm Mã người dùng và địa chỉ Email Mỗi email chỉ có thể liên kết với một tài khoản duy nhất, và mỗi tài khoản chỉ thuộc về một người dùng.
Hệ thống hiển thị tất cả các trích dẫn của mọi người về các lĩnh vực chủ đề.
Hệ thống sẽ có thể hiển thị 2 ngôn ngữ chính là tiếng việt và tiếng anh.
Người dùng có thể sửa đổi tên, mật khẩu, ảnh đại diện của mình.
Xác định đối tượng (tác nhân) tương tác với hệ thống
Ứng dụng này được thiết kế dành cho mọi cá nhân mong muốn hoàn thiện bản thân thông qua việc đọc những trích dẫn ngắn ý nghĩa Những thông điệp này không chỉ nhắc nhở mà còn khơi dậy sự nhận thức và tỉnh ngộ về những giá trị sống xung quanh chúng ta.
Dựa vào bản mô tả hệ thống trên, ta xác định được đối tượng sau:
• Firebase: Là hệ thống quản lý thông tin lưu giữ trên Firebase.
Người dùng, hay còn gọi là người đọc, là những cá nhân sử dụng hệ thống để ghi chú và nhận thông báo về các ghi chú của họ hoặc những trích dẫn thú vị được đăng tải bởi người khác.
Xác định yêu cầu chức năng
2.3.1 Xác định các chức năng chi tiết và gom nhóm các chức năng
Trên cơ sở khảo sát các bài toán thực tế, ứng dụng sẽ có các chức năng chính sau:
Nhóm chức năng Quản lý tài khoản:
Người dùng mới có thể đăng ký và tạo tài khoản cá nhân để quản lý và theo dõi nhu cầu sử dụng ứng dụng một cách hiệu quả hơn.
• Đăng nhập: Nếu người dùng đã có tài khoản thì có thể đăng nhập vào để sử dụng các chức năng khác nhau của ứng dụng.
Khi người dùng muốn chuyển đổi tài khoản đăng nhập hoặc đăng ký tài khoản mới, họ có thể thực hiện thao tác đăng xuất Việc này cũng giúp người dùng không cần duy trì trạng thái đăng nhập trên ứng dụng, từ đó bảo vệ dữ liệu cá nhân một cách an toàn hơn.
Người dùng có khả năng xem danh sách những người đăng ký khác đang sử dụng ứng dụng, từ đó có thể nhắn tin trò chuyện và kết nối với nhau Điều này giúp họ tạo ra những nhóm chat nhỏ riêng, tăng cường sự giao lưu và tương tác trong cộng đồng.
• Tìm kiếm chung: Cho phép người dùng tìm kiếm các người dùng, bài viết khác bằng tên hoặc email cá nhân.
• Đổi mật khẩu: Cho phép người dùng thay đổi mật khẩu đăng nhập vào hệ thống.
Nhóm chức năng Quản lý bài viết chung:
• Xem bài viết chung: Người dùng có thể xem được tất cả các bài viết của những người dùng khác.
• Bày tỏ cảm xúc: Người dùng có thể chạm vào nút thích để thêm số lượt thích cho bài viết mà mình ấn tượng.
• Xem những người thích: Cho phép người dùng xem thông tin về những người đã thích bài viết.
• Bình luận bài viết: Cho phép người dùng viết nhận xét, bày tỏ quan điểm, cảm nhận của mình về bài viết.
• Xem bình luận: Cho phép người dùng xem, đọc các dòng viết nhận xét của người khác về bài viết đó.
• Chia sẻ bài viết: Cho phép người dùng chia sẻ bài viết sang các ứng dụng hay nền tảng khác như email, tin nhắn, …
Nhóm chức năng Quản lý bài viết cá nhân:
• Xem bài viết cá nhân: Cho phép người dùng xem các bài mình đã viết
• Tạo bài viết: Cho phép người dùng viết bài và đăng tải cho mọi người dùng khác đọc bài viết đó.
• Xóa bài viết: Cho phép người dùng xóa những bài mình đã viết.
• Sửa bài viết: Cho phép người dùng chỉnh sửa, thêm bớt chữ, hình ảnh đăng tải.
Nhóm chức năng Quản lý hồ sơ cá nhân:
• Đổi biệt danh hiển thị: Cho phép người dùng chỉnh sửa, thay đổi tên hiển thị của mình với những người dùng khác.
• Đổi ảnh đại diện: Cho phép người dùng thay đổi hình ảnh nhận diện của cá nhân.
• Đổi ảnh bìa: Cho phép người dùng chỉnh sửa ảnh nền cá nhân mình bắt mắt hơn.
• Đổi số điện thoại: Cho phép người dùng thay đổi thông tin liên hệ trực tiếp.
• Xem thông tin cá nhân: Cho phép người dùng xem lại những bài viết của mình, số lượt thích, lượt người bình luận về bài viết.
Nhóm chức năng Quản lý tin nhắn (hay Quản lý chat):
• Viết tin nhắn: Cho phép người viết tin nhắn riêng cho mỗi người hoặc nhắn chung cho tất cả mọi người trong nhóm.
• Xem tin nhắn: Người dùng đọc được các tin nhắn gửi đến và đã gửi đi.
• Xem danh sách nhắn tin: Người dùng có thể xem danh sách những người mình đã nhắn tin.
• Xóa tin nhắn: Cho phép người dùng xóa đi tin mình đã gửi.
• Khóa người dùng khác: Cho phép người dùng chặn tin nhắn từ những người dùng khác.
Nhóm chức năng Quản lý nhóm tin nhắn:
• Tạo nhóm chat: Người dùng có thể tạo một nhóm nhắn tin để trò chuyện chung với những thành viên trong nhóm.
• Xem danh sách nhóm: Xem danh sách các nhóm người dùng đã lập ra hay được mời tham gia vào.
• Xem danh sách thành viên: Cho phép người dùng xem được những người có mặt trong nhóm chat.
• Thêm thành viên: Cho phép người dùng thêm các thành viên vào nhóm tin nhắn
• Sửa nhóm: Cho phép người dùng sửa mô tả nhóm và tên nhóm.
• Xóa nhóm: Cho phép người dùng xóa nhóm.
• Rời nhóm: Người dùng có thể thoát khỏi nhóm và không nhận tin nhắn của nhóm.
2.3.2 Xây dựng biểu đồ phân rã chức năng
Dựa trên các chức năng chi tiết đã được xác định, tôi tiến hành xây dựng biểu đồ phân rã chức năng cho hệ thống như hình dưới đây.
Hình 2 - 1 Sơ đồ phân rã chức năng.
Xây dựng các mô hình luồng dữ liệu
Hình 2 - 2 Ký hiệu sử dụng.
Hình 2 - 3 Cách truy xuất dữ liệu.
2.4.2 Lập sơ đồ luồng dữ liệu
Hình 2 - 4 Biểu đồ luồng dữ liệu mức ngữ cảnh (mức 0).
Hình 2 - 5 Biểu đồ luồng dữ liệu mức đỉnh (mức 1).
Hình 2 - 6 Mức dưới đỉnh (mức 2) của chức năng Quản lý tài khoản.
Hình 2 - 7 Mức dưới đỉnh (mức 2) của chức năng Quản lý bài viết chung.
Hình 2 - 8 Mức dưới đỉnh (mức 2) của chức năng Quản lý bài viết cá nhân.
Hình 2 - 9 Mức dưới đỉnh (mức 2) của chức năng Quản lý hồ sơ cá nhân.
Hình 2 - 10 Mức dưới đỉnh (mức 2) của chức năng Quản lý tin nhắn.
Hình 2 - 11 Mức dưới đỉnh (mức 2) của chức năng Quản lý tin nhắn nhóm.
Thiết kế các Bảng dữ liệu của hệ thống
❖ Bảng người dùng: Lưu trữ thông tin của các người dùng trong hệ thống Bảng 2
- 1 Thiết kế cấu trúc bảng người dùng.
STT Thuộc tính Kiểu dữ liệu Mô tả
1 name String Tên biệt danh người dùng
2 email String Hòm thư điện tử đã đăng ký của người dùng
3 search String Tìm kiếm người dùng
4 phone String Số điện thoại người dùng
5 image String Ảnh đại diện người dùng
6 cover String Ảnh bìa người dùng
7 uid String Mã người dùng
8 onlineStatus String Trạng thái sử dụng
9 typingTo String Trạng thái nhập liệu
10 isBlocked Boolean Người dùng có bị chặn hay không
❖ Bảng bài viết: Lưu trữ thông tin của các bài viết trong hệ thống Bảng 2 - 2 Thiết kế cấu trúc bảng bài viết.
STT Thuộc tính Kiểu dữ liệu Mô tả
1 pId String Mã bài viết
2 pTitle String Tiêu đề bài viết
3 pDescr String Mô tả bài viết
4 pLikes String Số lượt thích bài viết
5 pComments String Số lượt bình luận bài viết
6 pImage String Ảnh bài viết
7 pTime String Thời gian viết bài
8 uid String Mã người dùng
9 uEmail String Hòm thư điện tử người dùng
10 uDp String Ảnh đại diện người dùng
11 uName String Tên biệt danh người dùng
❖ Bảng tin nhắn: Lưu trữ thông tin các tin nhắn trong hệ thống Bảng 2 - 3 Thiết kế cấu trúc bảng tin nhắn
STT Thuộc tính Kiểu dữ liệu Mô tả
1 message String Nội dung tin nhắn
2 receiver String Mã người nhận
3 sender String Mã người gửi
4 timeStamp String Mốc thời gian nhắn tin
5 type String Kiểu tin nhắn
6 isSeen Boolean Đã xem tin nhắn hay chưa
❖ Bảng danh sách nhắn tin: Lưu trữ mã người dùng trên hệ thống Firebase.
Bảng 2 - 4 Thiết kế cấu trúc bảng danh sách nhắn tin.
STT Thuộc tính Kiểu dữ liệu Mô tả
1 Id String Mã người dùng
❖ Bảng bình luận: Lưu trữ thông tin các bình buận trong hệ thống Bảng 2 - 5 Thiết kế cấu trúc bảng bình luận.
STT Thuộc tính Kiểu dữ liệu Mô tả
1 cId String Mã bình luận
2 comment String Nội dung bình luận
3 timesStamp String Mốc thời gian bình luận
4 uid String Mốc thời gian
5 uEmail String Hòm thư điện tử của người dùng
6 uDp String Ảnh đại diện người dùng
7 uName String Tên biệt danh người dùng
❖ Bảng nhóm tin nhắn: Lưu trữ thông tin các nhóm nhắn tin trong hệ thống.
Bảng 2 - 6 Thiết kế cấu trúc các nhóm nhắn tin.
STT Thuộc tính Kiểu dữ liệu Mô tả
2 groupTitle String Tiêu đề nhóm
3 groupDescription String Mô tả nhóm
4 groupIcon String Biểu tượng nhóm
5 timeStamp String Mốc thời gian tạo nhóm
6 createdBy String Được tạo bởi người dùng
7 uId String Mã người dùng
8 messages String Mã tin nhắn trong nhóm
❖ Bảng tin nhắn nhóm: Lưu trữ thông tin các tin nhắn trong nhóm trong hệ thống
Bảng 2 - 7 Thiết kế cấu trúc bảng tin nhắn nhóm.
STT Thuộc tính Kiểu dữ liệu Mô tả
1 message String Nội dung tin nhắn nhóm
2 sender String Người gửi tin nhắn
3 timeStamp String Mốc thời gian gửi tin nhắn lên nhóm
4 type String Kiểu tin nhắn
2.6 Xây dựng biểu đồ quan hệ thực thể
Hình 2 - 12 Ký hiệu sử dụng trong biểu đồ quan hệ thực thể
2.6.2 Lập biểu đồ quan hệ thực thể
Hình 2 - 13 Lược đồ quan hệ thực thể
2.6.3 Mối liên kết trong biểu đồ quan hệ thực thể
Quan hệ thực thể giữa Các bài viết và Các người dùng:
• Nhiều người dùng không viết một bài viết nào hoặc viết nhiều bài viết.
• Nhiều bài viết được viết bởi một người dùng hoặc nhiều người dùng Quan hệ thực thể giữa Các bài viết và Các bình luận:
• Nhiều bài viết có nhiều bình luận hoặc nhiều bài viết không có bình luận.
• Nhiều bình luận được có trong một bài viết hoặc nhiều bài viết Quan hệ thực thể giữa Các bình luận và Các người dùng:
• Nhiều người dùng bình luận nhiều hoặc nhiều người dùng không bình luận.
• Nhiều bình luận được bình luận bởi một người hoặc bởi nhiều người.
Quan hệ thực thể giữa Các người dùng và Danh sách nhắn tin:
• Một người dùng xem một danh sách nhắn tin
• Một danh sách nhắn tin được xem bởi một người dùng Quan hệ thực thể giữa Các người dùng và Các tin nhắn:
• Nhiều người dùng viết nhiều tin nhắn hoặc không viết tin nhắn nào.
• Nhiều tin nhắn được viết bởi một người dùng hoặc nhiều người dùng.
Quan hệ thực thể giữa Các tin nhắn và Danh sách nhắn tin:
• Một danh sách nhắn tin chứa một hoặc nhiều tin nhắn.
• Nhiều tin nhắn phải thuộc một danh sách nhắn tin.
Quan hệ thực thể giữa Các người dùng và Danh sách nhóm tin nhắn:
• Một người dùng xem một danh sách nhóm tin nhắn.
• Một danh sách nhóm tin nhắn được xem bởi một người dùng.
Quan hệ thực thể giữa Các người dùng và Tin nhắn nhóm:
• Nhiều người dùng viết nhiều tin nhắn nhóm hoặc không viết tin nhắn nhóm nào.
• Nhiều tin nhắn nhóm được viết bởi một người dùng hoặc nhiều người dùng.
Quan hệ thực thể giữa Tin nhắn nhóm và Danh sách nhóm tin nhắn:
• Một danh sách nhóm tin nhắn chứa một hoặc nhiều tin nhắn nhóm.
• Nhiều tin nhắn nhóm phải thuộc một danh sách nhóm tin nhắn.
Xác định các yêu cầu phi chức năng
▪ Tin nhắn phải cập nhật theo thời gian thực
▪ Tương tác giữa người dùng với hệ thống không nên vượt quá 3s
▪ Có thể hoạt động ổn định trên các dòng điện thoại khác nhau
▪ Thời gian xử lý nhanh
▪ Dễ sử dụng với những giao diện đồ họa thân thiện phù hợp với người dùng
CƠ SỞ LÝ THUYẾT
Hệ điều hành Android
Android là hệ điều hành được phát triển trên nền tảng Linux, chuyên dụng cho các thiết bị di động với màn hình cảm ứng, bao gồm smartphone và tablet.
Ban đầu, Android được phát triển bởi Android, Inc với sự hỗ trợ tài chính từ Google và sau này được chính Google mua lại vào năm 2005.
Android được ra mắt vào năm 2007, đánh dấu sự thành lập của Liên minh thiết bị cầm tay mở, bao gồm các công ty phần cứng, phần mềm và viễn thông nhằm thúc đẩy tiêu chuẩn mở cho thiết bị di động Chiếc điện thoại đầu tiên sử dụng hệ điều hành Android đã được bán ra vào năm 2008.
Hình 3 - 1 Biểu tượng của hệ điều hành Android
Android là hệ điều hành mã nguồn mở được Google phát hành dưới Giấy phép Apache, cho phép các nhà phát triển thiết bị, mạng di động và lập trình viên tự do điều chỉnh và phân phối hệ điều hành này mà không bị ràng buộc nhiều.
Android sở hữu một cộng đồng lập trình viên đông đảo, chuyên phát triển các sửa đổi Tính đến tháng 10 năm 2012, đã có khoảng 700.000 ứng dụng trên nền tảng Android, với tổng số lượt tải từ Google Play, cửa hàng ứng dụng chính của Android, ước tính đạt khoảng 25 tỷ lượt.
Android đã trở thành nền tảng điện thoại thông minh phổ biến nhất thế giới, vượt qua Symbian OS vào quý 4 năm 2010 Nền tảng này được các công ty công nghệ ưa chuộng nhờ vào tính năng nhẹ, khả năng tùy biến cao và chi phí thấp, giúp họ tiết kiệm thời gian và nguồn lực thay vì phát triển một hệ điều hành từ đầu cho các thiết bị công nghệ cao.
Mặc dù Android được thiết kế chủ yếu cho điện thoại và máy tính bảng, nhưng nó đã mở rộng ra nhiều thiết bị khác như TV, máy chơi game và các thiết bị điện tử khác Tính chất mở của Android khuyến khích một cộng đồng lập trình viên đông đảo sử dụng mã nguồn mở để phát triển các dự án cộng đồng, từ đó mang đến những tính năng cao cấp cho người dùng yêu thích khám phá và cho phép Android hoạt động trên những thiết bị ban đầu sử dụng hệ điều hành khác.
Tính đến quý 2 năm 2017, Android chiếm 87,7% thị phần điện thoại thông minh toàn cầu với 2 tỷ thiết bị được kích hoạt và 1,3 triệu lượt kích hoạt mỗi ngày Sự thành công này đã biến hệ điều hành trở thành mục tiêu trong các vụ kiện liên quan đến bằng sáng chế, góp phần vào "cuộc chiến điện thoại thông minh" giữa các công ty công nghệ.
3.1.2 Kiến trúc của hệ điều hành Android
Android sử dụng hạt nhân dựa trên nhân Linux phiên bản 2.6 Kể từ phiên bản Android 4.0 Ice Cream Sandwich trở đi, hệ điều hành này đã chuyển sang phiên bản 3.x Android bao gồm middleware, thư viện và API được viết bằng C, trong khi phần mềm ứng dụng hoạt động trên nền tảng ứng dụng với các thư viện tương thích với Java dựa trên Apache Harmony.
Android sử dụng máy ảo Dalvik với trình biên dịch động để thực thi 'mã dex' (Dalvik Executable), thường được biên dịch từ Java bytecode Kiến trúc phần cứng chính của Android là ARM, nhưng cũng hỗ trợ x86 thông qua dự án Android x86, và Google TV sử dụng phiên bản x86 đặc biệt của Android.
Hình 3 - 2 Kiến trúc của hệ điều hành Android
Nhân Linux trên Android đã trải qua nhiều thay đổi kiến trúc so với phiên bản gốc, khiến việc chuyển đổi các ứng dụng hoặc thư viện Linux sang Android trở nên khó khăn Android không tích hợp X Window System và cũng không hỗ trợ các thư viện GNU chuẩn Tuy nhiên, các ứng dụng C đơn giản và SDL vẫn có thể được hỗ trợ thông qua việc chèn các đoạn shim Java và sử dụng JNI, như trong trường hợp chuyển Jagged Alliance 2 sang Android.
3.1.3 Ưu nhược điểm của hệ điều hành Android a) Ưu điểm
Hệ điều hành mã nguồn mở cho phép người dùng tùy chỉnh linh hoạt, dễ dàng chỉnh sửa mà không bị can thiệp hay hạn chế từ Google.
Android được nhiều hãng điện thoại và thiết bị công nghệ lựa chọn nhờ vào sự đa dạng sản phẩm và mức giá hợp lý, từ bình dân đến cao cấp.
+ Kho ứng dụng Google Play Store đồ sộ.
+ Thân thiện và dễ sử dụng.
+ Khả năng đa nhiệm, chạy cùng lúc nhiều ứng dụng cao b) Nhược điểm
Phần mềm mã nguồn mở dễ bị tổn thương trước phần mềm độc hại và virus, vì nhiều ứng dụng không được kiểm soát có thể chứa chất lượng kém hoặc lỗ hổng bảo mật.
- Kho ứng dụng quá nhiều dẫn đến khó kiểm soát chất lượng, thiếu các ứng dụng thật sự tốt.
Sự phân mảnh lớn trong hệ sinh thái Android thể hiện rõ qua sự xuất hiện của những thiết bị xuất sắc như Galaxy S5, Galaxy Note 4 và Xperia Z3, nhưng vẫn tồn tại nhiều sản phẩm giá rẻ bình thường khác.
Khi một phiên bản hệ điều hành mới ra mắt, không phải tất cả các thiết bị đều nhận được cập nhật tự động Điều này có thể khiến người dùng phải thường xuyên mua sắm thiết bị mới để trải nghiệm tính năng mới.
Ngôn ngữ lập trình Java
Java được phát triển bởi James Gosling và nhóm của ông tại Sun Microsystems vào năm 1991, ban đầu mang tên Oak Ngôn ngữ này được thiết kế để thay thế C++ với các tính năng tương tự như Objective C Cần phân biệt Java với JavaScript, vì hai ngôn ngữ này chỉ giống nhau về tên gọi và cú pháp Sun Microsystems hiện đang giữ bản quyền và tiếp tục phát triển Java, với phiên bản JDK 1.6.24 được phát hành vào tháng 4 năm 2011.
Java là ngôn ngữ lập trình hướng đối tượng nên nó cũng có 4 đặc điểm chung của các ngôn ngữ hướng đối tượng:
Tính trừu tượng là quá trình xác định và phân nhóm các thuộc tính cùng hành động liên quan đến một thực thể cụ thể, đồng thời xem xét mối quan hệ của chúng với ứng dụng đang được phát triển.
Tính đa hình (Polymorphism) cho phép một phương thức hoạt động khác nhau trên nhiều loại đối tượng khác nhau Khi cùng một phương thức được áp dụng cho các đối tượng thuộc các lớp khác nhau, nó sẽ mang lại những kết quả khác nhau Điều này xảy ra vì phương thức này có cùng số lượng tham số.
▪ Tính kế thừa (Inheritance): Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại.
▪ Tính đóng gói (Encapsulation): Là tiến trình che giấu việc thực thi những chi tiết của một đối tượng đối với người sử dụng đối tượng ấy.
Bên cạnh đó Java còn có một số đặc tính khác:
Java có tính năng độc lập nền tảng (Write Once, Run Anywhere), nghĩa là khi được biên dịch, Java không chuyển đổi thành mã máy cụ thể như C hay C++, mà thay vào đó tạo ra mã byte code chạy trên máy ảo Java (JVM) Điều này cho phép bất kỳ thiết bị nào cài đặt JVM đều có khả năng thực thi các chương trình Java.
Hình 3 - 3 Quá trình biên dịch qua máy ảo JVM
Học Java dễ hơn nhiều so với C/C++, đặc biệt nếu bạn đã quen với các ngôn ngữ lập trình hướng đối tượng Java đơn giản hơn C/C++ nhờ vào việc loại bỏ tính đa kế thừa và phép toán con trỏ, giúp quá trình học tập trở nên thuận lợi hơn.
Java cung cấp khả năng bảo mật mạnh mẽ nhờ vào các thuật toán mã hóa tiên tiến, bao gồm mã hóa một chiều (one way hashing) và mã hóa công cộng (public key).
Java hỗ trợ tính năng đa luồng, cho phép lập trình viên viết chương trình thực thi nhiều tác vụ đồng thời Tính năng này đặc biệt hữu ích trong lập trình game, giúp cải thiện hiệu suất và trải nghiệm người dùng.
▪ Hiệu suất cao: Nhờ vào trình thu gom rác (garbage collection), giải phóng bộ nhớ đối với các đối tượng không được dùng đến.
▪ Linh hoạt: Java được xem là linh hoạt hơn C/C ++ vì nó được thiết kế để thích ứng với nhiều môi trường phát triển.
Firebase
Firebase là nền tảng lý tưởng cho phát triển ứng dụng di động và web, cung cấp các API mạnh mẽ và đơn giản mà không cần sử dụng backend hay server Nền tảng này giúp lập trình viên tiết kiệm thời gian trong việc triển khai và mở rộng quy mô ứng dụng của họ.
Firebase là dịch vụ cơ sở dữ liệu dựa trên nền tảng đám mây của Google, cung cấp hệ thống máy chủ mạnh mẽ Nó giúp lập trình viên dễ dàng phát triển ứng dụng bằng cách đơn giản hóa các thao tác liên quan đến cơ sở dữ liệu.
Firebase là dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây – cloud.
Firebase, với hệ thống máy chủ mạnh mẽ của Google, giúp người dùng lập trình ứng dụng dễ dàng thông qua các giao diện lập trình ứng dụng (API) đơn giản, nhằm tăng lượng người dùng và lợi nhuận Dịch vụ này nổi bật với tính năng đa năng và bảo mật cao, hỗ trợ cả hai nền tảng Android và iOS Chính vì vậy, nhiều lập trình viên lựa chọn Firebase làm nền tảng đầu tiên để phát triển ứng dụng cho hàng triệu người dùng toàn cầu.
Firebase được phát triển từ Envolve, một công ty khởi nghiệp do James Tamplin và Andrew Lee thành lập vào năm 2011 Envolve đã cung cấp cho các nhà phát triển một API giúp tích hợp chức năng trò chuyện trực tuyến vào trang web của họ.
Sau khi ra mắt dịch vụ trò chuyện, Tamplin và Lee phát hiện rằng nó được sử dụng không chỉ cho tin nhắn mà còn để chuyển dữ liệu ứng dụng Các nhà phát triển đã tận dụng Envolve để đồng bộ hóa dữ liệu như trạng thái trò chơi giữa người dùng trong thời gian thực Do đó, Tamplin và Lee đã quyết định tách biệt hệ thống trò chuyện khỏi kiến trúc thời gian thực hỗ trợ nó.
Họ thành lập Firebase như một công ty riêng biệt vào tháng 9 năm 2011 và ra mắt công chúng vào tháng 4 năm 2012.
Hình 3 - 4 Biểu tượng của Firebase
Firebase đã ra mắt sản phẩm đầu tiên của mình, đó là Cơ sở dữ liệu thời gian thực, một API cho phép đồng bộ hóa dữ liệu ứng dụng trên các nền tảng iOS, Android và Web, đồng thời lưu trữ dữ liệu trên đám mây của Firebase Sản phẩm này hỗ trợ các nhà phát triển phần mềm trong việc xây dựng các ứng dụng cộng tác và hoạt động theo thời gian thực.
3.3.3 Cách thức hoạt động của Firebase
Sau khi Google mua lại và phát triển, Firebase hiện nay bao gồm các hoạt động như:
Khi bạn đăng ký tài khoản trên Firebase để phát triển ứng dụng, bạn sẽ có ngay một cơ sở dữ liệu thời gian thực dưới dạng JSON, được đồng bộ hóa liên tục với tất cả các kết nối client Đối với các ứng dụng đa nền tảng, mọi client đều truy cập cùng một cơ sở dữ liệu, tự động cập nhật dữ liệu mới nhất khi lập trình viên phát triển Tất cả dữ liệu này được truyền qua kết nối an toàn SSL với chứng nhận 2048 bit, đảm bảo tính bảo mật.
Khi mất kết nối mạng, dữ liệu sẽ được lưu trữ cục bộ, và mọi thay đổi sẽ tự động được cập nhật lên Server của Firebase Đồng thời, các dữ liệu cũ hơn ở local cũng sẽ được tự động đồng bộ hóa để đảm bảo luôn có phiên bản mới nhất.
Firebase Authentication cung cấp quy trình xác thực người dùng qua các nền tảng như Email, Facebook, Twitter, GitHub và Google, đồng thời hỗ trợ xác thực nặc danh cho ứng dụng Hoạt động này giúp bảo vệ thông tin cá nhân của người dùng, đảm bảo an toàn và ngăn chặn việc đánh cắp tài khoản.
Hosting được cung cấp thông qua tiêu chuẩn công nghệ bảo mật SSL từ mạng CDN (Content Delivery Network), giúp lưu trữ và phân phối các bản sao của nội dung tĩnh trên website đến nhiều máy chủ PoP.
Mạng lưới máy chủ CDN phân bố rộng rãi trên toàn cầu, với các PoP (Points of Presence) giúp gửi dữ liệu đến người dùng cuối Khi người dùng truy cập website, CDN sẽ cung cấp bản sao nội dung từ máy chủ gần nhất, đảm bảo tốc độ truy cập nhanh chóng và hiệu quả.
Hoạt động này giúp lập trình viên tiết kiệm thời gian thiết kế, xây dựng và phát triển ứng dụng.
3.3.4 Ưu nhược điểm của Firebase a) Ưu điểm
Firebase cung cấp tính năng đăng nhập dễ dàng, giúp người dùng nhanh chóng tạo tài khoản và bắt đầu sử dụng Khi nhu cầu sử dụng gia tăng, tôi quyết định nâng cấp lên gói Blaze trả phí để tận hưởng nhiều tính năng nâng cao hơn.
Sự phát triển nhanh chóng của công nghệ yêu cầu các Developer, bao gồm cả Backend và Frontend, cần quyền truy cập vào Server và Host để xây dựng và duy trì cơ sở dữ liệu cũng như dịch vụ phụ trợ Tuy nhiên, điều này có thể dẫn đến lỗi và các vấn đề làm gián đoạn ứng dụng, từ đó gia tăng chi phí phát triển Việc sử dụng Firebase và Firestore giúp Frontend Developer quản lý hiệu quả hơn, giảm thiểu thời gian cần thiết để hoàn thành công việc.
Firebase cung cấp nhiều dịch vụ trong một nền tảng, bao gồm hai tùy chọn cơ sở dữ liệu là Firestore và Realtime Database Ngoài ra, Firebase cũng hỗ trợ lưu trữ Cloud Media một cách dễ dàng và cho phép phát triển ứng dụng không cần máy chủ thông qua tích hợp Cloud Functions.
Hình 3 - 5 Minh họa sự kết hợp của Firebase và Google Cloud Platform
Google, một trong những thương hiệu công nghệ hàng đầu và đáng tin cậy, đã biến Firebase thành nền tảng vững mạnh qua nhiều giai đoạn phát triển Nhờ vào sức mạnh của Google Cloud và các dịch vụ phong phú của Google, Firebase hiện nay là lựa chọn đáng tin cậy cho các nhà phát triển.
Android Studio
Android Studio là một môi trường phát triển tích hợp (IDE) chuyên nghiệp, hỗ trợ thiết kế và xây dựng ứng dụng di động trên nền tảng Android Được phát triển bởi Google và JetBrains, Android Studio thay thế các plugin Android trước đây dành cho Eclipse.
Android Studio là môi trường phát triển tích hợp (IDE) chính thức dành cho phát triển ứng dụng Android, dựa trên IntelliJ IDEA.
Trên nền tảng IntelliJ, Android Studio mang đến nhiều tính năng vượt trội giúp nâng cao hiệu suất phát triển ứng dụng Android, bao gồm trình soạn thảo mã và các công cụ phát triển mạnh mẽ.
• Một hệ thống xây dựng Gradle linh hoạt.
• Trình mô phỏng nhanh và tính năng phong phú.
• Một môi trường hợp nhất nơi bạn có thể phát triển cho tất cả các thiết bị Android.Đồ án tốt nghiệp chuyên ngành khoa học máy tính
• Instant Run để đẩy các thay đổi vào ứng dụng đang chạy của bạn mà không cần xây dựng một APK mới.
• Mẫu mã và tích hợp GitHub để giúp bạn xây dựng các tính năng ứng dụng phổ biến và nhập mã mẫu
• Các công cụ và khuôn khổ thử nghiệm mở rộng.
• Lint công cụ để bắt hiệu suất, khả năng sử dụng, tương thích phiên bản, và các vấn đề khác.
• Tích hợp hỗ trợ Google Cloud Platform, giúp dễ dàng tích hợp Google Cloud Messaging và App Engine.
XÂY DỰNG VÀ PHÁT TRIỂN ỨNG DỤNG
Thiết kế giao diện
Phong cách Material Design là sự phát triển nâng cao của Flat Design, nổi bật trong thời gian gần đây Khác với thiết kế phẳng truyền thống mang lại cảm giác "phẳng lì", Material Design sử dụng các lớp Flat xếp chồng lên nhau để tạo ra chiều sâu và điểm nhấn cho giao diện.
Material Design tập trung vào đường nét đơn giản và sử dụng gam màu đậm, nổi bật Thiết kế này thường tích hợp các yếu tố đồ họa 3D với hiệu ứng ‘nổi lên’ trên giao diện, tạo cảm giác sinh động và thu hút người dùng.
Thiết kế này tích hợp các chuyển động tự nhiên, như sự xuất hiện của các nút và menu trên màn hình, nhằm mang đến cho người dùng trải nghiệm mới mẻ, thú vị và gần gũi với thực tế.
Một số đặc điểm có thể dùng để ‘nhận dạng’ Material Design là:
• Thường sử dụng những gam màu nổi bật, tuy nhiên vẫn cần thống nhất một mảng màu chủ đạo
• Các biểu tượng (icon) phẳng, theo phong cách tối giản và dễ hiểu
• Giao diện phẳng, ít hoặc không có hiệu ứng chuyển màu hay đổ bóng
• Tận dụng nhiều khoảng trắng, giúp không gian giao diện khá thoáng và dễ chịu.
• Hiệu ứng chuyển động tự nhiên, mượt mà, dễ để hình dung
• Tránh đi sự nhàm chán: Nhờ có các màu sắc vui vẻ và sinh động hơn, hiệu ứng chuyển động lôi cuốn hơn.
Android Studio còn có thể tạo ra các biểu tượng cho các loại kích cỡ màn hình một cách nhanh chóng và đơn giản với tính năng Image Asset.
Firebase Realtime Database
Hình 4 - 1 Cơ sở dữ liệu dạng JSON
Hình 4 - 2 Các model ánh xạ tương ứng
Hình 4 - 3 Dữ liệu của Các tin nhắn trong cơ sở dữ liệu
Hình 4 - 4 Dữ liệu của Danh sách nhóm tin nhắn trong cơ sở dữ liệu
Hình 4 - 5 Dữ liệu của Các bài viết trong cơ sở dữ liệu
Hình 4 - 6 Dữ liệu của Các người dùng trong cơ sở dữ liệu
Hình 4 - 7 Quản lý người dùng với Firebase Authentication
Hình 4 - 8 Quản lý tài nguyên với Firebase Storage
Hình 4 - 9 Lấy dữ liệu tất cả người dùng
Hình 4 - 10 Cập nhật bài viết không ảnh
Hình 4 - 11 Cấp quyền truy cập vào máy ảnh và kho lưu trữ
Hình 4 - 12 Xóa ảnh trong bài viết
Thiết kế giao diện ứng dụng
4.3.1 Giao diện đăng ký, đăng nhập Đây là màn hình hiển thị đầu tiên khi chọn vào ứng dụng.
Người dùng có 2 tùy chọn:
• Đăng ký: nếu người dùng chưa có tài khoản truy cập ứng dụng.
• Đăng nhập: nếu người dùng đã có tài khoản
Hình 4 - 13 Giao diện đăng ký, đăng nhập
Tại chức năng đăng ký, người dùng nhập hòm thư điện tử (email) và mật khẩu dùng để đăng nhập vào ứng dụng.
Nếu người dùng muốn quay trở lại màn hình hiển thị ban đầu chọn mũi tên trên trái để quay trở lại.
Nếu người dùng đã có tài khoản thì chạm dòng chữ “Đã có tài khoản? Đăng nhập” để chuyển sang màn hình đăng nhập.
Tại màn hình đăng nhập người dùng nhập email và mật khẩu đã đăng ký để truy cập vào ứng dụng.
Nếu người dùng quên mật khẩu có thể chạm vào dòng chữ “Quên mật khẩu?Khôi phục” để reset lại mật khẩu
Có thể chuyển qua màn hình đăng ký nếu chưa có tài khoản ứng dụng.
Hình 4 - 15 Giao diện chức năng đăng nhập
4.3.2 Giao diện trang chủ Đây là nơi hiển thị đầu tiên sau khi đăng nhập vào ứng dụng Tại trang chủ sẽ hiển thị các bài viết trích dẫn hay của mọi người dùng ứng dụng này đăng.
Tại trang chủ cũng sẽ có các nút tạo bài viết, tìm kiếm, đăng xuất.
Người dùng có thể thả thích, bình luận, chia sẻ bài viết tại đây.
Hình 4 - 16 Giao diện trang chủ
4.3.3 Giao diện trang cá nhân Đây là trang cá nhân của người dùng, tại đây người dùng có thể đặt tên hiển thị, cài ảnh đại diện, ảnh bìa và xem lại được các bài viết mình đã đăng.
Ngoài ra, người dùng còn có thể sửa đổi mật khẩu, tạo bài viết mới hoặc thêm số điện thoại cá nhân.
Hình 4 - 17 Giao diện trang cá nhân
4.3.4 Giao diện các người dùng Đây là nơi hiển thị tất cả người dùng đăng ký sử dụng ứng dụng.
Tại đây, người dùng có thể chọn xem hồ sơ cá nhân người dùng khác hoặc gửi tin nhắn
Hình 4 - 18 Giao diện Các người dùng
Sau khi nhấn vào nhắn tin với người dùng mong muốn, giao diện sẽ hiển thị trang nhắn tin Tại đây, người dùng có thể dễ dàng gửi tin nhắn, chia sẻ ảnh, cũng như xem ngày giờ và thời gian gửi tin nhắn, giúp việc theo dõi các cuộc trò chuyện trở nên thuận tiện hơn.
Người dùng có thể xem được người kia có đang gõ hay đã đọc nhận được tin nhắn hay chưa
Ngoài ra, người dùng còn có thể xóa được tin đã nhắn gửi đi
Hình 4 - 19 Giao diện nhắn tin
4.3.6 Giao diện đăng bài viết
Người dùng có thể tạo bài viết bằng cách nhấn vào biểu tượng dấu cộng được khoanh tròn trên trang chủ hoặc trang cá nhân Khi nhấn vào biểu tượng này, một trang mới sẽ xuất hiện để người dùng thực hiện việc viết bài.
Người dùng có thể nhập tiêu đề bài viết, bao gồm tên tác giả, tựa đề sách hoặc nguồn tham khảo Bên cạnh đó, việc chèn ảnh minh họa sẽ giúp bài viết trở nên sinh động hơn Cuối cùng, người dùng cần điền nội dung chính của bài viết để hoàn thiện.
Hình 4 - 20 Giao diện đăng bài viết
4.3.7 Giao diện sửa thông tin cá nhân Đây là chức năng nằm trong trang hồ sơ cá nhân của người dùng.
Người dùng có thể chỉnh sửa thông tin cá nhân bằng cách nhấn vào biểu tượng cây bút màu xanh lá cây, sau đó các chức năng chỉnh sửa sẽ được hiển thị.
Hình 4 - 21 Giao diện sửa thông tin cá nhân
Kiểm thử và đánh giá hệ thống
4.4.1 Kiểm thử chức năng đăng ký, đăng nhập
Bảng 4 - 1 Kiểm thử chức năng đăng ký, đăng nhập
Trường hợp Kết quả mong đợi Kết quả thưc tế
Tại ô email và mật khẩu không Hiển thị thông báo: Đúng nhập gì cả
Email không hợp lệ Kích vào nút đăng ký, đăng nhập
Nhập email mà không có đuôi Hiển thị thông báo: Đúng
Email không hợp lệ Kích vào nút đăng ký, đăng nhập
Nhập email mà không nhập Hiển thị thông báo: Đúng mật khẩu
Mật khẩu dài tối thiểu 6 ký tự Kích vào nút đăng ký, đăng nhập
Nhập mật khẩu mà không nhập Hiển thị thông báo: Đúng email
Mật khẩu dài tối thiểu 6 ký tự Kích vào nút đăng ký, đăng nhập
Nhập đúng email, mật khẩu Hiển thị thông báo: Đúng nhập ít hơn 6 ký tự
Mật khẩu dài tối thiểu 6 ký tự Kích vào nút đăng ký, đăng nhập
Để đăng ký thành công, hãy nhập đúng địa chỉ email và mật khẩu Khi thông tin được xác nhận, bạn sẽ nhận được thông báo "Đúng mật khẩu" và "Đã đăng ký thành công" kèm theo tên email của bạn Sau đó, bạn chỉ cần nhấn nút đăng ký để hoàn tất quá trình và đăng nhập thành công.
Nhập email chưa đăng ký vào Hiển thị thông báo: Đúng trang đăng nhập
Xác thực thất bại Kích vào nút đăng ký, đăng nhập
Nhập một email đã đăng ký Hiển thị thông báo: Đúng vào trang đăng ký
4.4.2 Kiểm thử chức năng đăng bài viết
Bảng 4 - 2 Kiểm thử chức năng đăng bài viết
Trường hợp Kết quả mong đợi Kết quả thực tế
Không nhập tiêu đề, không Hiển thị thông báo: Đúng nhập nội dung mô tả, không
Nhập tiêu đề chèn ảnh
Nhập tiêu đề, không chèn ảnh, Hiển thị thông báo: Đúng không nhập nội dung mô tả
Nhập tiêu đề, nhập mô tả, Hiển thị thông báo: Đúng không chèn ảnh
Bài đăng đã được công bố
Nhập tiêu đề, nhập mô tả, chèn Hiển thị thông báo: Đúng ảnh Bài đăng đã được công bố
4.4.3 Kiểm thử chức năng sửa thông tin cá nhân
Bảng 4 - 3 Kiểm thử chức năng Sửa thông tin cá nhân
Trường hợp Kết quả mong đợi Kết quả thực tế
Chọn sửa ảnh đại diện, sửa ảnh Hiển thị thông báo: Đúng bìa, chọn máy ảnh hoặc chọn
Vui lòng cấp phép truy cập máy thư viện ảnh và kho lưu trữ
Chọn ảnh từ thư viện, chọn Hiển thị thông báo: Đúng ảnh từ máy ảnh xong Ảnh đã được cập nhật
Chọn sửa tên hiển thị và nhập Hiển thị thông báo: Đúng tên Đã cập nhật
Kích vào nút cập nhật
Chọn sửa số điện thoại và nhập Hiển thị thông báo: Đúng số điện thoại Đã cập nhật Kích vào nút cập nhật
Chọn đổi mật khẩu và nhập sai Hiển thị thông báo: Đúng mật khẩu hiện tại, nhập mật
Không hợp lệ khẩu mới
4.4.4 Kiểm thử chức năng tạo nhóm chat
Bảng 4 - 4 Kiểm thử chức năng tạo nhóm nhắn tin
Trường hợp Kết quả mong đợi Kết quả thực tế
Không nhập tiêu đề, không Hiển thị thông báo: Đúng nhập mô tả, không chèn ảnh
Nhập tiêu đề nhóm nhắn tin
Nhập tiêu đề, không nhập mô Hiển thị thông báo: Đúng tả, không chèn ảnh đại diện
Nhập mô tả nhóm nhắn tin
Nhập tiêu đề, nhập mô tả, Hiển thị thông báo: Đúng không chèn ảnh
Nhóm đã được tạo Kích vào nút tick
Nhập tiêu đề, nhập mô tả, chèn Hiển thị thông báo: Đúng ảnh Nhóm đã được tạo
4.4.5 Kiểm thử chức năng thích, bình luận, chia sẻ
Bảng 4 - 5 Kiểm thử chức năng thích, bình luận, chia sẻ
Trường hợp Kết quả mong đợi Kết quả thực tế
Kích vào nút thích Hiển thị thông báo: Đúng Đã thích
Kích vào nút bình luận, viết Hiển thị thông báo: Đúng bình luận, gửi bình luận
Bình luận đã được thêm
Kích vào nút chia sẻ, chọn nền Hiển thị thông báo: Đúng tảng chia sẻ, nhấn gửi Đã chia sẻ thành công
Qua việc phân tích các trường hợp kiểm thử ứng dụng thì em rút ra kết quả như nhau:
➢ Hệ thống chạy tương đối ổn định.
➢ Tất cả các chức năng mong muốn đều đúng đối với một ứng dụng xã hội nhỏ. ĐÁNH GIÁ – KẾT LUẬN
Sau thời gian thực hiện đồ án tốt nghiệp, em đã hoàn thành đồ án với đầy đủ các chức năng theo đề tài Quá trình thực hiện giúp em tiến bộ trong việc nghiên cứu lý thuyết, nâng cao kỹ năng lập trình, viết và trình bày báo cáo Đồ án hoàn thành đúng thời gian, tiến độ và đạt được các mục tiêu đề ra, với nhiều kết quả chính đã đạt được.
✓ Hiểu biết hơn về một số quy tắc trong thiết kế giao diện với Material Design.
✓ Sử dụng vận dụng được các kỹ thuật về cấu trúc dữ liệu trong lập trình Android.
✓ Có thêm sự hiểu biết về nền tảng Firebase và giải pháp lưu trữ đám mây.
✓ Phân tích thiết kế đối tượng theo hướng chuyên nghiệp hơn.
✓ Chương trình thực hiện được các yêu cầu đề ra của đề tài.
✓ Ứng dụng được xây dựng đã đáp ứng được các chức năng chính.
✓ Giao diện đơn giản, dễ sử dụng với người dùng.
Về báo cáo đồ án tốt nghiệp:
✓ Báo cáo trình bày theo đúng quy định, đầy đủ các nội dung liên quan tới đề tài từ nghiên cứu lý thuyết đến xây dựng chương trình.
✓ Các hình vẽ bảng biểu được đánh số ghi chú đầy đủ.
✓ Đáp ứng được yêu cầu của một Đồ án tốt nghiệp ngành Công nghệ Thông tin.
Bên cạnh những kết quả đạt được, chương trình vẫn còn một số hạn chế như:
➢ Giao diện chưa được bắt mắt với người dùng.
➢ Vẫn còn phát sinh một số lỗi khiến ứng dụng bị thoát đột ngột.
➢ Bày tỏ cảm xúc chỉ giới hạn bằng một biểu tượng thích.
➢ Để tiếp tục phát triển đề tài này trong thực tế em nhận thấy cần phải tiếp tục thực hiện các công việc sau:
Xử lý các lỗi chặt chẽ hơn.
Để cải thiện tính năng bảo mật, cần xử lý việc đăng nhập và đăng xuất, bao gồm việc kiểm tra trạng thái đăng nhập khi có người dùng khác cố gắng truy cập vào tài khoản hiện tại Ngoài ra, cần có cơ chế xử lý dữ liệu hiệu quả khi xảy ra mất kết nối internet, đảm bảo rằng thông tin không bị mất mát và người dùng có thể tiếp tục trải nghiệm một cách mượt mà.
Tìm kiếm các phương pháp giảm chi phí khi sử dụng Firebase Realtime Database.
Nâng cấp giao diện, cải thiện hình ảnh hiển thị các tính năng.
Phát triển thêm các chức năng đáp ứng các nhu cầu như các mạng xã hội khác.