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

xây dựng ứng dụng mạng xã hội trên hệ điều hành android

69 0 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 đề Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android
Tác giả Lê Công Tùng
Người hướng dẫn ThS. Trần Bửu Dung
Trường học Trường Đại học Sư phạm Kỹ thuật
Chuyên ngành Công nghệ Thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Đà Nẵng
Định dạng
Số trang 69
Dung lượng 1,15 MB

Nội dung

- Với hàng tỷ thiết bị sử dụng Android trên toàn thế giới, hệ điều hành này đã trở thành một phần không thể thiếu của cuộc sống hiện đại, và cung cấp nhiều cơ hội cho các nhà phát triển

Trang 1

eeeeeeeeeeeeeeeeeeeeeeeĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA CÔNG NGHỆ SỐ

ĐỒ ÁN TỐT NGHIỆP

ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI TRÊN HỆ

Trang 2

KHOA CÔNG NGHỆ SỐ

ĐỒ ÁN TỐT NGHIỆP

ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN

ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG MẠNG XÃ HỘI TRÊN HỆ

ĐIỀU HÀNH ANDROID

Giảng viên hướng dẫn duyệt

Đà Nẵng, tháng 01/2024

Trang 5

3 Nội dung chính của đồ án:

Quá trình xây dựng ứng dụng mạng xã hội trên hệ điều hành Android: - Thu thập thông tin tài liệu liên quan và khảo sát thực tế

- Phân tích thiết kế các chức năng của hệ thống - Phân tích thiết kế cơ sơ dữ liệu

- Thiết kế giao diện cho các chức năng - Xây dựng hệ thống phần mềm

- Kiểm thử phần mềm - Hoàn thành báo cáo tổng hợp

4 Các sản phẩm dự kiến:

- Ứng dụng mạng xã hội trên hệ điều hành Android - File báo cáo hoàn chỉnh

5 Ngày giao đồ án: 10/10/2023 6 Ngày nộp đồ án: 21/01/2024

Đà Nẵng, ngày tháng năm 2024

Trang 6

Trong thời gian thực hiện đồ án, nhà trường và quý thầy cô đã giúp đỡ và tạo điều kiện để em đã hoàn thành đề tài cùng với bản báo cáo đúng thời gian quy định Với khả năng và thời gian có hạn nên không tránh khỏi những thiếu sót, em rất mong nhận được sự quan tâm, giúp đỡ, tạo điều kiện của thầy cô giáo để em hoàn thiện hơn đề tài nghiên cứu trong thời gian tới

Em xin cảm ơn quý Công Ty TNHH Công Nghệ Phần Mềm Lutech đã tạo điều kiện để em có thể được thực tập, trong quá trình thực tập tại công ty em đã tiếp thu được rất nhiều kỹ năng trong công việc.Em đã được trải nghiệm môi trường công ty rất hữu ích cho bản thân, học được những kỹ năng làm việc nhóm,đánh giá và quản lý công việc một cách tốt hơn Một lần nữa em xin chân thành cảm ơn tất cả các thầy, cô giáo trong Trường Đại học Sư Phạm Kỹ Thuật – Đại học Đà Nẵng, Công Ty TNHH Công Nghệ Phần Mềm Lutech cũng như các thầy cô giáo của các trường, các tổ chức liên kết đã dạy dỗ, chỉ bảo em trong suốt thời gian học tập

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

Trang 7

Tên đề tài: Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android Sinh viên thực hiện: Lê Công Tùng

Mã SV: 1911505310159 Lớp: 19T1 Nội dung tóm tắt:

Chương đầu tiên sẽ giới thiệu về hệ điều hành Android, giới thiệu ngôn ngữ lập trình Kotlin, giới thiệu về Firebase và các chức năng của Firebase

Chương thứ hai sẽ phân tích bài toán gồm khảo sát yêu cầu , liệt kê các tác nhân và usecase, mô tả các usecase, thiểt kế ERD và sơ đồ class

Chương thứ ba sẽ tìm hiểu các công cụ xây dựng chương trình và giao diện của ứng dụng

Cuối cùng là kết luận, chỉ ra những vấn đề đã giải quyết và những vấn đề chưa giải quyết được của đề tài Nêu ra các hướng phát triển trong tương lai

Trang 8

Lời đầu tiên, em xin gửi lời cảm ơn chân thành đến quý thầy cô đã giúp đỡ chúng em thực hiện đề tài này Đặc biệt là ThS Trần Bửu Dung đã tận tình giúp đỡ em trong suốt quá trình thực hiện đề tài tốt nghiệp này

Đồng thời, em cũng xin cảm ơn quý thầy cô thuộc ngành Công nghệ thông tin khoa Công nghệ số, trường Đại học Sư phạm Kỹ thuật - Đại học Đà Nẵng đã truyền đạt những kiến thức cần thiết và những kinh nghiệm quý báu cho chúng em trong suốt thời gian 4 năm trên giảng đường để em có thể thực hiện tốt đề tài này Đặc biệt, em xin gởi lời cảm ơn chân thành tới TS Hoàng Thị Mỹ Lệ giáo viên chủ nhiệm lớp 19T1 đã giúp đỡ em rất nhiều trong quá trình học tập và công việc

Trong quá trình thực hiện đề tài, do kiến thức và thời gian còn hạn chế nên không thể tránh khỏi những sai sót Vì vậy em mong quý thầy, cô thông cảm và góp ý để em có thể hoàn thiện đề tài Và những lời góp ý đó có thể giúp em có thể tránh được những sai lầm sau này

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

Đà Nẵng, ngày tháng năm 2024

Sinh viên thực hiện

Trang 9

Em xin cam đoan đồ án “Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android” là một công trình nghiên cứu độc lập dưới sự hướng dẫn của giảng viên ThS

Trần Bửu Dung Ngoài ra không có bất cứ sự sao chép nào của người khác Đề tài, nội dung báo cáo đồ án là sản phẩm mà em đã nỗ lực nghiên cứu trong quá trình học tập tại trường Các kết quả trình bày trong báo cáo là hoàn toàn trung thực, em xin chịu hoàn toàn trách nhiệm, kỷ luật của trưởng bộ môn và nhà trường đề ra nếu như có vấn đề xảy ra

Sinh viên thực hiện

Trang 10

NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN i

NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN ii

3 Đối tượng nghiên cứu và phạm vi nghiên cứu 2

a Đối tượng nghiên cứu 2

b Phạm vi nghiên cứu 2

4 Phương pháp nghiên cứu 2

Chương 1 CƠ SỞ LÝ THUYẾT 3

1.1 Giới thiệu về hệ điều hành Android 3

1.2 Giới thiệu về ngôn ngữ lập trình Kotlin 3

1.2.1 Định nghĩa Kotlin 3

1.2.2 Ưu điểm nổi bật của ngôn ngữ Kotlin 4

1.2.3 Hạn chế của ngôn ngữ Kotlin 5

1.3 Giới thiệu về Firebase 6

1.3.1 Khái niệm Firebase 6

1.3.2 Ưu điểm và hạn chế của Firebase 7

1.3.2.1 Ưu điểm 7

Trang 11

1.3.2.3 Chức năng của Firebase 12

1.4 Giới thiệu về OpenAI 15

1.4.1 Khái niệm OpenAI 15

1.4.2 Ưu điểm và hạn chế của OpenAI 16

1.4.2.1 Ưu điểm 16

1.4.2.2 Hạn chế 16

1.4.2.3 Chức năng của OpenAI 17

Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 18

2.1 Khảo sát yêu cầu 18

2.1.1 Chức năng dành cho người dùng 18

2.2 Phân tích thiết kế hệ thống 18

2.2.1 Liệt kê Actor và Usecase 18

2.2.2 Sơ đồ usecase 19

2.2.2.1 Sơ đồ usecase tổng quan 19

2.2.2.2 Sơ đồ usecase đăng kí 20

2.2.2.3 Sơ đồ usecase đăng nhập 21

2.2.2.4 Sơ đồ usecase đăng một bài viết 21

2.2.2.5 Sơ đồ usecase nhắn tin 22

2.2.4.5 Bảng phương tiện bài viết 26

2.2.4.6 Bảng người theo dõi 27

Trang 12

2.2.4.9 Bảng tin nhắn 29

2.2.4.10 Bảng câu chuyện ngắn 30

2.2.5 Sơ đồ Class 31

2.2.6 Sơ đồ tuần tự 31

2.2.6.1 Sơ đồ tuần tự đăng kí 31

2.2.6.2 Sơ đồ tuần tự đăng nhập 32

2.2.6.3 Sơ đồ tuần tự đăng bài viết 32

2.2.6.4 Sơ đồ tuần tự nhắn tin 33

2.2.6.5 Sơ đồ tuần tự thông báo 33

2.2.6.6 Sơ đồ tuần tự tin 34

Chương 3 XÂY DỰNG CHƯƠNG TRÌNH 35

3.1 Công cụ xây dựng chương trình 35

Trang 14

BẢNG 2.2: BẢNG USE CASE ĐĂNG NHẬP 21 BẢNG 2.3: BẢNG USE CASE ĐĂNG BÀI VIẾT 22 BẢNG 2.4: BẢNG USE CASE NHẮN TIN 22

Trang 15

HÌNH 1.1: ẢNH MINH HOẠ FIREBASE 6

HÌNH 2.1: SƠ ĐỒ USECASE TỔNG QUAN 19

HÌNH 2.2: SƠ ĐỒ USECASE REGISTER 20

HÌNH 2.3: SƠ ĐỒ USECASE LOGIN 21

Trang 16

Stt Chữ viết tắt Giải nghĩa Nghĩa tiếng Việt

1 NoSQL Not Only SQL Ngôn ngữ đánh dấu siêu văn bản 2 API

Application Programming Interface Giao diện chương trình ứng dụng

4 SQL Structured Query Language Ngôn ngữ truy vấn cấu trúc dữ liệu 5 IDE

Integrated Development Environment

Môi trường phát triển tích hợp

6 IOS iPhone Operating System Hệ điều hành iPhone 7 SDK Software Development Kit Một bộ công cụ phát triển phần

mềm

Trang 17

Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android

1 Lí do chọn đề tài

MỞ ĐẦU

Hiện nay, công nghệ thông tin xuất hiện ở mọi nơi, sự phát triển nhanh chóng của nó giúp cuộc sống của con người trở nên tốt hơn.Công nghệ thông tin giúp các nhà khoa học tạo ra những nghiên cứu vượt bậc nhờ việc tính toán và xử lý một khối lượng công việc khổng lồ của máy tính Chúng có thể thực hiện hàng tỷ phép tính trong vài giây Ngoài ra ngành công nghệ thông tin còn hỗ trợ rất nhiều trong các lĩnh vực như kinh tế, y học , giáo dục ,v.v…

Cập nhập và hòa nhập với thời đại 4.0 này thì đời sống của con người cũng được nâng cao hơn.Việc mua sắm, ăn uống hay giải trí cũng được ngành công nghê thông tin hỗ trợ rất nhiều Song song đó các ứng dụng mạng xã hội ngày càng nhiều và không ngừng mở rộng thị trường

Các ứng dụng mạng xã hội đã trở thành một phương tiện phổ biến với những tính năng đa dạng cho phép người dùng kết nối, chia sẻ, tiếp nhận thông tin một cách nhanh chóng, hiệu quả Nắm bắt được thực trang và vấn đề này em đã tìm hiểu và xây dựng một ứng dụng mạng xã hội để đáp ứng nhu cầu trên

2 Mục tiêu đề tài

Xây dựng một ứng dụng giúp cho người dùng có thể giao lưu, chia sẻ thông tin và kết nối với nhau Ngoài ra tạo ra một môi trường trực tuyến giúp người dùng có thể tìm kiếm, nhắn tin trò chuyện với người dùng khác Cuối cùng nghiên cứu các công nghệ và nắm được các kiến thức khác

- Về hình thức:

+ Giao diện thân thiện, dễ sử dụng + Bố cục chứa các chức năng hợp lý + Màu sắc hài hòa, phù hợp

+ Phông chữ to rõ, dễ nhìn

- Ứng dụng có các chức năng chính như:

o Xem được Stories o Bình luận, react bài viết o Ngoài ra còn có các tính năng khác - Củng cố, nâng cao kiến thức về các ngôn ngữ đã học Qua đó áp dụng vào việc

thực hiện những đề tài khác

Trang 18

3 Đối tượng nghiên cứu và phạm vi nghiên cứu a Đối tượng nghiên cứu

+ Tìm hiểu ngôn ngữ lập trình và các phầm mềm ứng dụng như Android Studio, Kotlin, Firebase,…

+ Tìm hiểu phương pháp triển khai ứng dụng di động Android + Tìm hiểu cách cài đặt ứng dụng

+ Tìm hiểu cách sử dụng hiệu quả Github + Tìm hiểu các thứ viện hỗ trợ như Glide, Retrofit,…

b Phạm vi nghiên cứu

+ Trong quá trình thực hiện đồ án tốt nghiệp dựa vào những kiến thức , kinh nghiệm trong quá trình học tập tại trường và tham khảo một số tài liệu nghiên cứu để hoàn thành đồ án một cách tốt nhất

+ Đồ án tập trung chính vào người sử dụng ứng dụng có hệ điều hành Android

4 Phương pháp nghiên cứu

Nghiên cứu ngôn ngữ lập trình Kotlin • Nghiên cứu các công nghệ hỗ trợ • Nghiên cứu Firebase Realtime để lưu trữ dữ liệu • Nghiên cứu các lý thuyết về lập trình

• Sử dụng các công nghệ hỗ trợ để lập trình • Sử dụng các thư viện hỗ trợ cho chương trình • Sử dụng Firebase để lưu trữ dữ liệu, cập nhật dữ liệu hiện tại

Trang 19

Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android

Chương 1 CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu về hệ điều hành Android

- Android là một hệ điều hành di động được phát triển bởi Google, và được sử dụng phổ biến trên các thiết bị di động như điện thoại thông minh, máy tính bảng, đồng hồ thông minh, TV thông minh và các thiết bị IoT Hệ điều hành này được xây dựng trên nền tảng Linux và thiết kế để hỗ trợ đa nền tảng, cho phép các nhà phát triển tạo ra các ứng dụng và trò chơi dễ dàng cho nhiều loại thiết bị

- Một trong những đặc điểm nổi bật của Android là tính mở và đa dạng của nó Android được phát triển dưới dạng phần mềm mã nguồn mở, cho phép nhà phát triển trên toàn thế giới có thể truy cập và sửa đổi mã nguồn của nó Điều này làm tăng tính đa dạng và linh hoạt của hệ điều hành này, đồng thời giúp các nhà phát triển tạo ra các ứng dụng và trò chơi phong phú và đa dạng

- Android cũng cung cấp một nền tảng phát triển mạnh mẽ và linh hoạt cho các nhà phát triển Các ứng dụng và trò chơi Android được viết bằng các ngôn ngữ lập trình Java hoặc Kotlin, và sử dụng Android SDK (Software Development Kit) để tạo ra các ứng dụng và trò chơi Android cũng cung cấp một loạt các công cụ phát triển và tài liệu hữu ích cho các nhà phát triển, giúp họ tạo ra các ứng dụng và trò chơi chất lượng cao cho hệ điều hành này

- Với hàng tỷ thiết bị sử dụng Android trên toàn thế giới, hệ điều hành này đã trở thành một phần không thể thiếu của cuộc sống hiện đại, và cung cấp nhiều cơ hội cho các nhà phát triển và doanh nghiệp phát triển ứng dụng và trò chơi trên nền tảng này

1.2 Giới thiệu về ngôn ngữ lập trình Kotlin 1.2.1 Định nghĩa Kotlin

- Kotlin là một dạng ngôn ngữ lập trình được thiết kế và chuẩn hóa dựa theo hệ thống quy tắc riêng Qua đó, người lập trình có thể thực hiện các chương trình mô tả để làm những công việc dành riêng cho các thiết bị điện tử mà do chính con người và thiết bị đó đều có thể hiểu được

Trang 20

- Kotlin là một loại ngôn ngữ lập trình dạng tĩnh và được sử dụng dành cho những ứng dụng thuộc dạng đa nền tảng hiện đại Hiện nay, người ta đã chính thức phát hành phiên bản 1.0.Kotlin và nó được tạo ra cũng như phát triển bởi các đội ngũ lập trình nằm trong nhóm JetBrains Sự xuất hiện của ngôn ngữ lập trình Kotlin đã khiến cho ngôn ngữ Java trong Android bị “soán ngôi”

- Từ đó, Kotlin trở thành một trong những ngôn ngữ thông dụng hơn với Android Kotlin đã được thiết kế với khả năng tương tác cùng với Java code cũng như có thể khai thác những gì có ở bên trong Java Class Library Từ đây, sẽ phát sinh định nghĩa Kotlin Android là gì? Hãy cùng tìm hiểu định nghĩa này nhé!Kotlin Android bạn có thể một cách đơn giản là một trong những ứng dụng của Android có khả năng sử dụng ngôn ngữ lập trình Kotlin Sau khi trở thành ngôn ngữ lập trình cơ bản của Android vào năm 2019 thì Kotlin được Google hỗ trợ rất đầy đủ để có thể được tham gia đầy đủ vào các gói cài đặt của IDE để có thể thay thế cho trình biên dịch của Java dạng tiêu chuẩn

1.2.2 Ưu điểm nổi bật của ngôn ngữ Kotlin

- Không thể phủ nhận vai trò của Java đối với Android nói riêng và ngành công nghệ thông tin nói chung Hiện nay, Java là một trong những ngôn ngữ lập trình được ưu tiên sử dụng khi các lập trình viên thực hiện các dự án Android nhưng nó vẫn tồn tại những hạn chế nhất định Một trong những vấn đề lớn nhất còn tồn đọng ở Java là thiếu khả năng mở rộng cũng như không thể hỗ trợ tính năng cho các lập trình hàm Mặc dù Java giới thiệu rằng sẽ mang lại những tính năng cho nhà phát triển như: biểu thức lambda, interface methods và những yếu tố lập trình hàm Tuy nhiên, tại Android thì Java mới chỉ có thể hỗ trợ một phần của các tính năng mà Java 8 cung cấp Chính vì vậy, sự ra đời của Kotlin được các chuyên gia đánh giá là có thể khắc phục hoàn toàn mọi hạn chế mà Java không thực hiện được Với các đặc tính đều được thừa hưởng từ Java nên bạn có thể sử dụng Kotlin cũng như khai thác được mọi nền tảng từ Java class Library hiện đang có

- Code ngắn gọn và dễ hiểu: Ngôn ngữ lập trình Kotlin được xây dựng bằng hệ thống code ít giúp lập trình viên dễ đọc, dễ viết và dễ làm việc cùng Những người mới bắt đầu đều có thể tiếp thu dễ dàng các kiến thức đặc thù của loại

Trang 21

Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android

ngôn ngữ này Việc tối giản được số lượng code đã giúp cho Kotlin mang lại những trải nghiệm thú vị hơn cho người dùng so với các loại ngôn ngữ khác như Java

- Kotlin không bị lỗi NullPointerExcepton: Với những lập trình viên thì bạn có thể thấy rõ NullPointerException là 1 trong những lỗi thường xuyên xuất hiện trong các dự án được viết bằng ngôn ngữ lập trình Java Lỗi NullPointerException sẽ xuất hiện ngay khi bạn gán giá trị null đến với một đối tượng nào đó, tuy nhiên khi truy xuất thì đối tượng này lại bị xuất hiện lỗi Khi chạy trên Android, nếu như bạn quên cập nhật đối tượng cho Java thì bạn sẽ nhận được log crash (dừng đột ngột) đã được báo cáo về hệ thống Những lỗi NullPointerException Kotlin đều được thiết kế để có thể giảm thiểu cũng như loại bỏ được hầu hết các nguồn tham chiếu Null dựa vào cơ chế null-safety Chính vì vậy, theo các chuyên gia thì việc sử dụng ngôn ngữ lập trình Kotlin sẽ trở nên an toàn hơn Java rất nhiều

1.2.3 Hạn chế của ngôn ngữ Kotlin

- Song song với các ưu điểm trên thì ngôn ngữ lập trình Kotlin còn tồn tại những mặt hạn chế như sau: Chưa có kiểu Aliases Vì chưa có kiểu Aliases nên kiểu hàm vẫn còn phải viết thủ công nên phần mã nguồn sẽ bị thừa thãi Các mặc định class trong Kotlin là final Bạn cần phải thêm từ khóa Open nếu như muốn class final trở thành class thông thường như trong Java Đây chính là hạn chế có thể khiến cho các dự án có mã nguồn kết hợp giữa Kotlin và Java Bởi vì một số Java Framework thường tự động bỏ qua từ khóa Final trong mã của Kotlin Điều này sẽ khiến cho Kotlin có thể chạy không đúng với ý đồ của lập trình viên Cộng đồng hỗ trợ hạn chế Mặc dù là ngôn ngữ có thể sử dụng được toàn bộ cũng như thư viện của Java nhưng theo nhiều lập trình viên thì phiên bản chính chủ vẫn tốt hơn Kotlin sẽ không thực hiện tự động ép kiểu với những dữ liệu thuộc dạng nguyên thủy

Trang 22

1.3 Giới thiệu về Firebase 1.3.1 Khái niệm Firebase

- Firebase là một nền tảng sở hữu bởi Google giúp chúng ta phát triển các ứng dụng di động và web Họ cung cấp rất nhiều công cụ và dịch vụ tiện ích để phát triển ứng dụng nên một ứng dụng chất lượng Điều đó rút ngắn thời gian phát triển và giúp ứng dụng sớm ra mắt với người dùng

- Firebase cung cấp cho người dùng các dịch vụ cơ sở dữ liệu hoạt động trên nền tảng đám mây với hệ thống máy chủ cực kỳ mạnh mẽ của Google Chức năng chính của firebase là giúp người dùng lập trình ứng dụng, phần mềm trên các nền tảng web, di động bằng cách đơn giản hóa các thao tác với cơ sở dữ liệu - Với Firebase, ta có thể tạo ra những ứng dụng real-time như app chat, cùng

nhiều tính năng như xác thực người dùng, Cloud Messaging,… Ta có thể dùng Firebase giống như phần backend của app

- Các dịch vụ của Firebase hoàn toàn miễn phí, tuy nhiên cần phải trả thêm tiền nếu muốn nâng cấp lên Điều này ta nên cân nhắc nếu muốn xây dựng một ứng dụng lớn sử dụng phần backend là Firebase, vì cái giá khi muốn nâng cấp còn khá đắt đỏ so với việc xây dựng backend truyền thống

Hình 1.1: Ảnh minh hoạ Firebase

Trang 23

Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android

1.3.2 Ưu điểm và hạn chế của Firebase

- Tạo tài khoản và sử dụng dễ dàng:

• Firebase cho phép người dùng đăng nhập bằng tài khoản Google đơn giản Gói Spark của Firebase miễn phí và cung cấp nhiều tính năng để giúp các nhà phát triển bắt đầu sử dụng Khi yêu cầu ngày càng tăng, ta có thể chọn gói Blaze có trả phí với nhiều tính năng nâng cao hơn

- Tốc độ phát triển nhanh:

• Firebase là một tùy chọn phát triển ứng dụng phù hợp có thể giúp các nhà phát triển tiết kiệm thời gian và giảm thời gian tiếp thị ứng dụng Thông thường, mọi Developer cần có quyền truy cập vào Server và Host để tạo, bảo trì cơ sở dữ liệu và dịch vụ phụ trợ Do đó, cần có một Backend Developer và một Frontend Developer để xây dựng các ứng dụng Tuy nhiên, việc này thường có thể dẫn đến lỗi và các vấn đề có thể gây ra sự cố ứng dụng và làm tăng chi phí phát triển

• Thông qua việc sử dụng Firebase và Firestore, Frontend Developer có thể quản lý, giảm thời gian cần thiết để hoàn thành tất cả công việc - Có nhiều dịch vụ trong một nền tảng:

• Firebase cũng cung cấp danh sách đầy đủ các sản phẩm để hỗ trợ các Developer trong quá trình phát triển Hai tùy chọn cơ sở dữ liệu là Firestore và Realtime Database của Firebase Tương tự như vậy, Firebase cho phép thực hiện lưu trữ Cloud Media dễ dàng Nó cũng cho phép phát triển ứng dụng không cần máy chủ thông qua việc tích hợp Cloud Functions Firebase bao gồm toàn bộ chu trình phát triển ứng dụng Nền tảng này chứa các tính năng để xây dựng, phát hành và giám sát các ứng dụng

• Ngoài ra, là bước cuối cùng của chu trình phát triển ứng dụng, nó cung cấp các công cụ để thu hút người dùng và giữ họ sử dụng nó Đây cũng là ưu điểm của Firebase mà mình đánh giá khá cao

- Được cung cấp bởi Google:

Trang 24

• Firebase được cung cấp bởi Google, một trong những tên tuổi nổi bật và đáng tin cậy nhất trong thế giới công nghệ Kể từ khi được mua lại, Firebase đã trải qua một loạt thay đổi, phát triển và trở thành nền tảng đáng tin cậy như ngày nay Nó khai thác sức mạnh của Google Cloud và nhiều dịch vụ của Google Firebase hiện là một phần của Google Cloud Platform Nó hoạt động tốt với các dịch vụ Google Cloud khác và tích hợp với nhiều dịch vụ của bên thứ ba

- Tập trung và phát triển giao diện người dùng:

• Một ưu điểm khác khiến Firebase được yêu thích đó là nó cho phép Developer tập trung vào việc tạo mã Frontend cho các ứng dụng di động Nền tảng này giúp cho việc phát triển ứng dụng trở nên thuận tiện và giúp giảm chi phí đáng kể

• Sử dụng Firebase cũng cho phép các công ty, Developer chuẩn hóa môi trường Backend theo một công nghệ duy nhất và dễ học Mẫu Backend làm giảm số lượng đào tạo cần thiết để hỗ trợ nó và cho phép Developer tập trung vào phát triển giao diện người dùng

- Firebase không có máy chủ:

• Việc mở rộng hoặc giảm quy mô máy chủ không phải là một nhiệm vụ dễ dàng Đặc biệt, việc mở rộng một cụm cơ sở dữ liệu là một thách thức và việc tối ưu hóa hiệu suất cho khối lượng công việc khổng lồ đòi hỏi các chuyên gia có kinh nghiệm Firebase giải quyết vấn đề này và cung cấp một môi trường hoàn toàn không có máy chủ Firebase đi kèm với kiến trúc không máy chủ (Serverless Architecture) Do đó, ta sẽ không cần lo lắng về cơ sở hạ tầng máy chủ

- Học máy (Machine Learning):

• Theo Gartner, 30% doanh nghiệp sẽ sử dụng Machine Learning trong một phần quy trình của họ Firebase cũng có lợi vì nó cung cấp cho các nhà phát triển tùy chọn để dựa vào Machine Learning Firebase đi kèm với bộ Machine Learning với các API sẵn có cho các tính năng khác nhau của nền tảng di động như nhận dạng văn bản, nhận diện khuôn mặt, ghi nhãn hình ảnh, quét mã vạch,…

Trang 25

Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android

- Tạo lưu lượng truy cập:

• Firebase hỗ trợ lập chỉ mục ứng dụng để cho phép người dùng thu hút lại những khách tìm kiếm trên Google Cụ thể, nó cung cấp liên kết ứng dụng trên mục tìm kiếm của Google Xếp hạng ứng dụng cũng có thể được nâng cao trên Tìm kiếm một lần bằng cách lập chỉ mục ứng dụng Điều này giúp ứng dụng tiếp xúc với những người dùng mới có thể cài đặt ứng dụng đó

- Theo dõi lỗi:

• Tiếp theo là tính năng Crashlytics của Firebase Đây là một công cụ tuyệt vời để tìm và khắc phục sự cố một cách nhanh chóng Firebase có thể theo dõi cả lỗi không nghiêm trọng và lỗi nghiêm trọng Đồng thời, báo cáo được tạo dựa trên mức độ ảnh hưởng của lỗi đến trải nghiệm của người dùng

- Sao lưu:

• Firebase đảm bảo tính bảo mật tối ưu và tính sẵn có của dữ liệu nhờ các bản sao lưu thường xuyên Các ứng dụng được bảo vệ khỏi mọi khả năng mất dữ liệu bằng cách dựa vào tính năng sao lưu tự động của nền tảng này Khi sử dụng gói Blaze, ta cũng có thể dễ dàng định cấu hình Cơ sở dữ liệu thời gian thực của Firebase để thực hiện các bản sao lưu tự động

- Không phải mã nguồn mở:

• Firebase không phải là một tùy chọn mã nguồn mở để phát triển ứng dụng di động Điều này khiến nó trở thành một lựa chọn không tối ưu cho nhiều nhà phát triển Người dùng không thể sửa đổi mã nguồn Firebase Đây là hạn chế lớn nhất của Firebase và ngăn cộng đồng cải tiến sản phẩm

- Người dùng không có quyền truy cập mã nguồn:

• Đây là một hạn chế lớn khác của Firebase cho người dùng Việc không có quyền truy cập vào mã nguồn có thể khá khó khăn đối với một số nhà phát triển Đặc biệt, đối với các ứng dụng lớn, việc chuyển sang các nhà

Trang 26

cung cấp khác không phải là một nhiệm vụ dễ dàng và để thực hiện việc này, toàn bộ Backend sẽ cần được xây dựng lại từ đầu

- Firebase không hoạt động ở nhiều quốc gia:

• Firebase là một Subdomain của Google Trang Web chính thức của nó là https://firebase.google.com và bị chặn ở nhiều quốc gia Google cùng với các dịch vụ khác của Google bị chặn và không thể truy cập được ở nhiều quốc gia, ví dụ như Trung Quốc,…

- Chỉ hoạt động với cơ sở dữ liệu NoSQL:

• Cả Firestore và Firebase Realtime Database đều cung cấp cấu trúc NoSQL Chúng không có tùy chọn nào để sử dụng cơ sở dữ liệu quan hệ Mặc dù Firebase đã thực hiện những cải tiến đáng kể trên Cloud Firestore so với RTDB, nhưng việc chạy các truy vấn phức tạp vẫn là một thách thức đối với một số người dùng nhất định

• Với Firebase, người dùng không thể xử lý nhanh chóng việc di chuyển dữ liệu tương tự như cơ sở dữ liệu SQL đơn giản Firebase sử dụng JSON và hầu như không có tính năng SQL nào Vì vậy, việc di chuyển từ cơ sở dữ liệu sẽ không dễ dàng

- Truy vấn chậm: Không phải tất cả cơ sở dữ liệu đều lý tưởng cho mọi trường hợp sử dụng và Cloud Firestore cũng không ngoại lệ Mặc dù đó là một giải pháp tuyệt vời để mở rộng ứng dụng, cung cấp hỗ trợ truy vấn ngoại tuyến và cập nhật thời gian thực, nhưng nó cũng có những hạn chế như:

• Kích thước yêu cầu API tối đa 10 MiB • Không có truy vấn tổng hợp gốc • Giới hạn kích thước tài liệu là 1 MiB • Kết nối đồng thời tối đa 1M

• Truy vấn hiệu suất chậm - Không phải tất cả dịch vụ Firebase đều miễn phí:

• Các chức năng đám mây chỉ khả dụng trên gói Blaze và người dùng không thể dùng thử dịch vụ trong gói Spark API Cloud Vision trong tính năng học máy cũng không khả dụng trong gói Spark miễn phí của

Trang 27

Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android

nền tảng này Dịch vụ này chỉ có sẵn cho người dùng của gói Blaze và tính phí 1,5 USD/ k API

- Giá thành khá đắt và không ổn định:

• Firebase là một nền tảng phát triển ứng dụng di động có nhiều tính năng nhưng cũng là một nền tảng đắt tiền đối với một số người Nó cung cấp một gói miễn phí nhưng có hạn chế nhất định Firebase cung cấp nhiều tính năng hữu ích hơn nhưng giá cũng sẽ cao hơn so với một nhà cung cấp IaaS thuần túy Nói chung, tôi cho rằng việc tự lưu trữ một ứng dụng sẽ rẻ hơn so với sử dụng Firebase

• Trước khi sử dụng Firebase, ta cần so sánh chính xác chi phí trả trước của việc thiết lập một cụm tại nhà cung cấp IaaS và chi phí đang thực hiện để duy trì máy chủ so với chạy ứng dụng trực tiếp trên Firebase Một khía cạnh khác khiến Firebase trở nên đắt đỏ là nó là một công nghệ độc quyền Firebase phải bù đắp khoản đầu tư kỹ thuật cho cơ sở người dùng của nó

• Firebase cung cấp dịch vụ theo mô hình định giá dựa trên mức sử dụng và không có cách nào để giới hạn giá cả Không có bảng giá cố định cho nền tảng và việc theo dõi mức độ sử dụng tài nguyên có thể là một vấn đề phức tạp

• Việc ước tính chi phí của Firebase có thể khó khăn đối với một số người dùng, đặc biệt là khi không thể dự đoán được các yêu cầu về khả năng mở rộng Việc định giá rất phức tạp và Firebase có giá cụ thể cho mọi tính năng

- Chỉ chạy trên Google Cloud:

• Firebase hiện là một phần của Google và cơ sở hạ tầng của nó chạy hoàn toàn trên Google Cloud Ta sẽ không có tùy chọn để chạy Firebase trên các nhà cung cấp đám mây khác như AWS, Azure hoặc Digital Ocean - Thiếu Delicated Server và hợp đồng doanh nghiệp:

• Firebase không có tùy chọn Dedicated Servers hoặc hợp đồng doanh nghiệp Cách duy nhất để sử dụng Firebase là sử dụng cấu trúc Serverless ít tính linh hoạt hơn Một hạn chế khá bất tiện khi dùng

Trang 28

Firebase là việc không cung cấp các gói định giá, hợp đồng hoặc hỗ trợ doanh nghiệp Tuy nhiên, gói Blaze có thể được coi là một phương án chấp nhận được

- Không cung cấp các API GraphQL:

• Firebase không cung cấp API GraphQL như một phần của thiết lập tiêu chuẩn Mặc dù có những giải pháp thay thế cho việc triển khai GraphQL với Firebase, REST vẫn là tùy chọn mặc định của nền tảng

- Firebase realtime database:

• Là một cơ sở dữ liệu thời gian thực, NoSQL được lưu trữ đám mây cho phép bạn lưu trữ và đồng bộ dữ liệu Dữ liệu được lưu trữ dưới dạng cây Json, và được đồng bộ theo thời gian thực đối với mọi kết nối

• Khi bạn xây dựng những ứng dụng đa nền tảng như Android, IOS và Web App, tất cả các client của bạn sẽ kết nối trên cùng một cơ sở dữ liệu Firebase và tự động cập nhật dữ liệu mới nhất khi có sự thay đổi

• Cả một cơ sở dữ liệu là một cây json lớn, với độ trễ thấp, Firebase realtime database cho phép bạn xây dựng các ứng dụng cần độ realtime như app chat, hay game online…

- Firebase Authentication:

• Là chức năng xác thực người dùng.Hiểu một cách đơn giản, app của bạn cần phải đăng nhập/ đăng ký tài khoản để sử dụng, Firebase cung cấp cho chúng ta chức năng xác thực người dùng bằng email, số điện thoại, hay tài khoản Facebook, Google,

• Việc xác thực người dùng là một chức năng vô cùng quan trọng trong việc phát triển ứng dụng Tuy nhiên, khi bạn muốn xác thực với nhiều phương thức khác nhau như email, số điện thoại, google, facebook sẽ tốn nhiều thời gian và công sức Firebase Authentication giúp thực hiện việc đó một cách dễ dàng, giúp người dùng nhanh chóng tiếp cận sản phẩm hơn

Trang 29

Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android

• Vì thế, nó là một chức năng vô cùng hữu ích của firebase.Nếu bạn muốn xây dựng sản phẩm một cách nhanh chóng, hay chỉ đơn giản là làm bài tập, đồ án thì việc tích hợp Firebase Authentication và Firebase Realtime Database vào ứng dụng sẽ giúp bạn giảm rất nhiều thời gian so với các cách khác

- Firebase Cloud Storage:

• Là một không gian lưu trữ dữ liệu, nó giống như một chiếc ổ cứng Bạn có thể upload và download các loại file bạn muốn Đó có thể là một file ảnh, hay file văn bản, zip, …

• Là nơi lưu trữ những file, đó có thể là những hình ảnh về một mặt hàng chẳng hạn Bạn có thể lưu trữ link tới file hình ảnh trong database, còn file ảnh đặt trong cloud storage Vậy là client có thể dễ dàng truy vấn và sử dụng

- Cloud Functions Firebase:

• Cloud Functions Firebase cho phép chúng ta viết những câu truy vấn database lưu trữ trên cloud Code của bạn được lưu trữ trong cloud của Google và chạy trong một môi trường bảo mật, được quản lý Bạn không cần quan tâm đến vấn đề mở rộng các máy chủ.Với firebase, khi bạn muốn lấy dữ liệu bạn cần phải viết các câu truy vấn trực tiếp từ client • Điều này có thể vô tình để lộ một số thông tin nhạy cảm Để khắc phục

vấn đề đó, Cloud Function đã ra đời.Nhiều lúc, các developers muốn kiểm soát logic trên server để tránh giả mạo phía client Ngoài ra, đôi khi không muốn mã của mình khi bị decode sẽ gây ra các vấn đề về bảo mật Cloud Functions được tách biệt hoàn toàn với client, vì vậy bạn có thể yên tâm nó bảo mật và luôn thực hiện chính xác những gì bạn muốn - Firebase Ana lytics:

• Là tính năng giúp bạn phân tích hành vi của người sử dụng trên ứng dụng của bạn Cuối cùng nó sẽ đưa ra lời khuyên về lộ trình xây dựng ứng dụng.Để làm việc này bạn cần cài đặt SDK (Software Development Kit, cụ thể hơn là FirebaseAnalytics.unitypackage), chức năng phân tích sẽ trở nên khả dụng

Trang 30

• Khi đó, bạn không chỉ xem được hành vi của người dùng mà còn có thể biết được thông tin về như hiệu quả quảng cáo, tình trạng trả phí, v.v.Với tính năng này, bạn có thể biết người dùng của bạn thường xuyên truy cập tính năng nào, từ đó bạn có thể đưa ra chiến lược phát triển sản phẩm của mình

- Firestore Database:

• Là một cơ sở dữ liệu phân tán (distributed database) được cung cấp bởi Firebase, một nền tảng dịch vụ đám mây (BaaS) được thiết kế để hỗ trợ việc phát triển ứng dụng di động và web Firestore được xây dựng dựa trên cơ sở dữ liệu NoSQL, có khả năng lưu trữ và truy xuất dữ liệu một cách linh hoạt và hiệu quả

• Firestore cho phép các nhà phát triển lưu trữ và đồng bộ dữ liệu giữa các thiết bị và người dùng một cách nhanh chóng và dễ dàng Nó có thể lưu trữ dữ liệu dưới dạng các tài liệu (documents) và sắp xếp chúng thành các bộ sưu tập (collections) tương tự như cách lưu trữ dữ liệu trong cơ sở dữ liệu quan hệ

• Firestore cung cấp một API mạnh mẽ để cho phép các nhà phát triển truy cập và tương tác với dữ liệu, đồng thời cho phép quy định các quyền truy cập của người dùng đến dữ liệu Nó cũng hỗ trợ các tính năng như truy vấn tìm kiếm và sắp xếp dữ liệu để giúp cho việc truy xuất dữ liệu trở nên dễ dàng và hiệu quả hơn

• So với Realtime Database, Firestore cho phép các truy vấn phức tạp hơn và có thể lưu trữ và truy xuất dữ liệu từ nhiều vị trí khác nhau trong cơ sở dữ liệu một cách đồng thời Nó cũng hỗ trợ tính năng offline và đồng bộ dữ liệu tự động khi kết nối trở lại mạng

Trang 31

Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android

1.4 Giới thiệu về OpenAI 1.4.1 Khái niệm OpenAI

• OpenAI là một tổ chức nghiên cứu trí tuệ nhân-made (AI) có trụ sở tại San Francisco, California, Hoa Kỳ Được thành lập vào tháng 12 năm 2015, OpenAI đã trở thành một trong những tổ chức nổi tiếng hàng đầu trong lĩnh vực nghiên cứu và phát triển trí tuệ nhân tạo

• Mục tiêu chính của OpenAI là thúc đẩy và phát triển trí tuệ nhân tạo một cách an toàn và có lợi ích cho cộng đồng Họ tập trung vào nghiên cứu và phát triển các mô hình AI mạnh mẽ và đa dạng, đồng thời đảm bảo rằng các ứng dụng của AI được triển khai một cách đạo đức và an toàn

• Một trong những thành tựu nổi bật của OpenAI là dòng mô hình GPT (Generative Pre-trained Transformer) GPT là một hệ thống mô hình học máy mạnh mẽ được đào tạo trên lớp lớn dữ liệu để có khả năng sinh ra văn bản tự nhiên và thực hiện nhiều nhiệm vụ ngôn ngữ tự nhiên

• OpenAI cũng nổi tiếng với việc tiếp tục công bố nhiều trong số nghiên cứu và mô hình của họ, chủ động chia sẻ kiến thức và công nghệ với cộng đồng nghiên cứu và công dân

• Ngoài ra, OpenAI còn tham gia vào các dự án và nhiệm vụ có tính quy mô lớn nhằm đóng góp vào sự phát triển an toàn và bền vững của trí tuệ nhân tạo trong tương lai

Trang 32

1.4.2 Ưu điểm và hạn chế của OpenAI

- Nghiên cứu và Đổi mới:

• OpenAI nổi tiếng với sự cam kết đối với nghiên cứu và đổi mới trong lĩnh vực trí tuệ nhân tạo Họ đã đưa ra nhiều mô hình mạnh mẽ và công bố nhiều nghiên cứu độc đáo

- Chia sẻ Kiến thức:

• OpenAI chia sẻ một lượng lớn kiến thức và dữ liệu, đặc biệt là qua các mô hình như GPT, giúp cộng đồng nghiên cứu và phát triển AI có thêm nguồn tài nguyên và kiến thức

- Mô hình mạnh mẽ:

• Các mô hình của OpenAI, đặc biệt là dòng mô hình GPT, thể hiện khả năng sinh ra văn bản tự nhiên và thực hiện nhiều nhiệm vụ ngôn ngữ tự nhiên với hiệu suất ấn tượng

- Chính sách An toàn và Đạo đức:

• OpenAI tập trung vào việc phát triển trí tuệ nhân tạo một cách an toàn và đạo đức, đồng thời đề xuất các chính sách để giảm rủi ro và đảm bảo rằng công nghệ AI được sử dụng có lợi ích cho toàn xã hội

- Cần Nguồn Lực Lớn:

• Việc phát triển và duy trì các mô hình như GPT đòi hỏi nguồn lực lớn, điều này có thể tạo ra ngưỡng cửa cao cho các tổ chức nhỏ hơn và cộng đồng nghiên cứu

- Rủi Ro An toàn:

• Trí tuệ nhân tạo mạnh mẽ cũng mang theo rủi ro an toàn, và OpenAI đang nỗ lực để giảm thiểu những rủi ro này Tuy nhiên, sự phát triển nhanh chóng của công nghệ AI cũng có thể tạo ra những thách thức mới

Trang 33

Xây dựng ứng dụng mạng xã hội trên hệ điều hành Android

- Khía cạnh Đạo đức:

• Trong quá trình sử dụng mô hình AI, có thể phát sinh các vấn đề liên quan đến đạo đức và trách nhiệm, đặc biệt khi các ứng dụng của công nghệ này ảnh hưởng đến quyết định và hành vi trong xã hội

- Chưa Rõ Hậu quả Xã hội:

• Do sự phát triển nhanh chóng của trí tuệ nhân tạo, còn nhiều vấn đề liên quan đến hậu quả xã hội, như mất việc làm và tác động đến kinh tế, mà vẫn chưa có giải pháp chung

ChatGPT là một mô hình ngôn ngữ tự nhiên mạnh mẽ được phát triển bởi OpenAI, dựa trên kiến trúc GPT-3.5 Chức năng chính của ChatGPT là hiểu và tạo ra văn bản theo yêu cầu người dùng Dưới đây là một số chức năng cụ thể:

• Tư duy ngôn ngữ tự nhiên: ChatGPT có khả năng hiểu và tạo ra văn bản tự nhiên giống như cách con người nói và viết

• Hỗ trợ ngôn ngữ đa dạng: Nó có khả năng xử lý nhiều loại ngôn ngữ và chủ đề khác nhau, từ kỹ thuật đến nghệ thuật, từ khoa học đến giải trí

• Trả lời câu hỏi và cung cấp thông tin: ChatGPT có thể cung cấp thông tin, giải đáp câu hỏi và hỗ trợ người dùng trong việc tìm hiểu

• Tạo văn bản sáng tạo: Nó có khả năng tạo ra văn bản sáng tạo như viết truyện, thơ, hoặc nội dung giải trí khác

• Hỗ trợ việc viết và soạn thảo: Người dùng có thể sử dụng ChatGPT để tạo ra và chỉnh sửa văn bản, viết bài luận, email, hay bất kỳ nội dung văn bản nào khác

• Thực hiện các nhiệm vụ ngôn ngữ phức tạp: Nó có khả năng thực hiện các nhiệm vụ phức tạp như dịch ngôn ngữ, tóm tắt văn bản, phân tích ý kiến, và nhiều hơn nữa

• Tương tác và đối thoại: ChatGPT có thể tham gia vào cuộc trò chuyện và tương tác với người dùng theo nhiều chủ đề khác nhau

• Tuy nhiên, cần lưu ý rằng ChatGPT không thể nắm bắt thông tin thời gian thực và có thể không hiểu về các sự kiện mới nhất sau ngày kiến thức cắt đứt (cut-off date) là tháng 1 năm 2022

Trang 34

Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2.1 Khảo sát yêu cầu

2.1.1 Chức năng dành cho người dùng

1 Đăng nhập 2 Đăng kí 3 Đăng một bài viết 4 Bình luận, tương tác bài viết 5 Nhắn tin giữa 2 người dùng 6 Chỉnh sửa thông tin người dùng 7 Đăng xuất

Bảng 1: Bảng chức năng cho người dùng

2.2 Phân tích thiết kế hệ thống 2.2.1 Liệt kê Actor và Usecase

- Actor : User(Người dùng) - Use case:

• Use case đăng kí • Use case đăng bài viết • Use case đăng tin • Use case nhắn tin • Use casse cập nhật thông tin người dùng

Ngày đăng: 20/09/2024, 19:37