Tìm Hiểu Flutter và Xây Dựng Ứng Dụng Trò Chuyện Ẩn Danh - Đồ Án 1 (UIT)

Tìm hiểu Flutter & phát triển ứng dụng chat ẩn danh cho đồ án. Báo cáo cuối kì chi tiết về quy trình, công nghệ & kết quả đạt được. Khám phá ngay!

Chuyên ngành

Công nghệ Phần mềm

Người đăng

Ẩn danh

Thể loại

Đồ án

2023

104
2
0

Phí lưu trữ

35 Point

Tóm tắt

I. Khám phá Nhu cầu Tại sao Chat Ẩn Danh với Flutter là cần thiết

Trong bối cảnh xã hội hiện đại, đặc biệt sau những tác động của các sự kiện lớn như đại dịch, nhu cầu kết nối và chia sẻ thông tin đã trở nên cấp thiết hơn bao giờ hết. Nhiều người đối mặt với áp lực tâm lý, cảm giác cô lập, và mong muốn tìm kiếm một không gian an toàn để bày tỏ cảm xúc mà không bị đánh giá. Chính trong tình huống này, tin nhắn ẩn danh qua các nền tảng kỹ thuật số trở thành một giải pháp được quan tâm. Một ứng dụng chat ẩn danh với Flutter không chỉ đáp ứng nhu cầu giao tiếp mà còn cam kết bảo vệ quyền riêng tư cá nhân, tạo điều kiện cho người dùng thoải mái tương tác. Sự phổ biến ngày càng tăng của Flutter – một framework phát triển ứng dụng di động đa nền tảng mạnh mẽ – đã mở ra những cơ hội mới để xây dựng các giải pháp chat hiệu quả và bảo mật. Việc áp dụng Flutter vào việc phát triển ứng dụng chat Flutter giúp các nhà phát triển tạo ra trải nghiệm người dùng mượt mà, đồng bộ trên cả iOS và Android, đồng thời giảm thiểu thời gian và chi phí phát triển. Đây là một bước tiến quan trọng trong việc xây dựng các nền tảng giao tiếp thân thiện, an toàn và dễ tiếp cận cho mọi người. Theo nhóm tác giả, dự án "Ứng dụng Chat Ẩn Danh với Flutter: Báo Cáo Đồ Án" ra đời nhằm "tạo ra nơi dành cho tất cả mọi người, không kể là ai, lắng nghe hay trút bỏ nỗi niềm với người còn lại một cách văn minh, tế nhị, giúp giải toả tâm lý, nhận được những lời khuyên hữu ích." Mục tiêu này khẳng định tầm quan trọng của tính năng ẩn danh trong việc xây dựng một cộng đồng trực tuyến tích cực và hỗ trợ. Bài viết này sẽ đi sâu vào quá trình phát triển ứng dụng Flutter này, từ khâu khảo sát nhu cầu, thiết kế hệ thống, đến triển khai và những kết quả đạt được.

1.1. Thực trạng xã hội và sự trỗi dậy của tin nhắn ẩn danh

Dịch bệnh COVID-19 đã để lại những hệ quả sâu sắc, khiến nhiều cá nhân gặp phải các vấn đề tâm lý như trầm cảm hay sợ tiếp xúc xã hội. Các quy định giãn cách kéo dài đã thay đổi thói quen sinh hoạt, thu hẹp không gian giao tiếp trực tiếp. Trong bối cảnh đó, mạng internet và các ứng dụng mạng xã hội, nhắn tin trở thành cầu nối chính để mọi người duy trì kết nối. Nhu cầu về một không gian chia sẻ mà không phải lo lắng về danh tính cá nhân đã thúc đẩy sự phát triển của các hình thức tin nhắn ẩn danh. Điều này tạo tiền đề cho việc xây dựng một ứng dụng chat ẩn danh với Flutter nhằm cung cấp một kênh giao tiếp an toàn, nơi người dùng có thể "lắng nghe hay trút bỏ nỗi niềm với người còn lại một cách văn minh, tế nhị". Các ứng dụng như vậy hứa hẹn mang lại giá trị to lớn, giúp giải tỏa tâm lý và nhận được những lời khuyên hữu ích, theo nhận định của nhóm tác giả trong báo cáo đồ án.

1.2. Mục tiêu và phạm vi của đồ án tốt nghiệp Flutter này

Mục tiêu chính của đồ án tốt nghiệp Flutter này là tìm hiểu sâu về Flutter và áp dụng những kiến thức thu thập được để phát triển một ứng dụng chat ẩn danh trực tuyến tối ưu. Nhóm tác giả đã kết hợp kinh nghiệm từ các ứng dụng lân cận như Messenger, Zalo thông qua khảo sát, nhằm đảm bảo ứng dụng không chỉ tiện lợi mà còn bảo toàn lợi ích người dùng. Phạm vi ban đầu của dự án tập trung vào việc hoàn thiện các chức năng cơ bản của một ứng dụng trò chuyện ẩn danh, bao gồm tính năng ghép cặp, kết bạn, quản lý thông tin cá nhân, và nghe nhạc trong phòng chat. Những chức năng này được thiết kế để tạo ra một không gian tương tác ban đầu đầy đủ và hữu ích. Nhóm tác giả cũng đặt ra định hướng phát triển trong tương lai, hướng tới xây dựng một trang web quản lý cho admin và mở rộng thành một mạng xã hội thu nhỏ trong các giai đoạn tiếp theo của dự án (đồ án 2 và khóa luận tốt nghiệp).

1.3. Các công cụ thiết yếu hỗ trợ phát triển ứng dụng Flutter

Quá trình phát triển ứng dụng Flutter yêu cầu sự kết hợp của nhiều công cụ chuyên biệt để đảm bảo hiệu quả và chất lượng. Đối với giai đoạn phân tích và thiết kế cơ sở dữ liệu, Draw.ioMongoDB được sử dụng. Figma đóng vai trò quan trọng trong việc thiết kế giao diện người dùng (UI), đảm bảo tính thẩm mỹ và trải nghiệm người dùng trực quan. Môi trường lập trình chính là Visual Studio Code, một trình soạn thảo mã nguồn mạnh mẽ và linh hoạt. Việc quản lý dự án được thực hiện thông qua Github, Messenger, TrelloDiscord, giúp nhóm làm việc cộng tác hiệu quả. Cuối cùng, Google DriveGithub là các công cụ chính để lưu trữ và quản lý tài liệu liên quan đến project report Flutter này. Sự lựa chọn công cụ này phản ánh một quy trình phát triển hiện đại và tối ưu, hỗ trợ đắc lực cho việc xây dựng ứng dụng chat ẩn danh với Flutter.

II. Hướng dẫn Toàn diện Tìm hiểu Flutter cho Ứng dụng Chat Realtime

Flutter, một framework UI di động do Google phát triển, đang nhanh chóng trở thành lựa chọn hàng đầu cho việc xây dựng các ứng dụng chat realtime đa nền tảng. Với khả năng tạo ra giao diện người dùng chất lượng cao trên cả iOS và Android từ một codebase duy nhất, Flutter mang lại hiệu quả vượt trội. Đặc tính mã nguồn mở và miễn phí cùng với ngôn ngữ lập trình Dart thân thiện là những yếu tố chính giúp Flutter được cộng đồng phát triển ứng dụng Flutter ưa chuộng. Để xây dựng một ứng dụng chat ẩn danh với Flutter thành công, việc nắm vững các khái niệm cốt lõi của Flutter là điều kiện tiên quyết. Từ cấu trúc Widget đến cơ chế quản lý trạng thái (state management), mỗi thành phần đều đóng vai trò quan trọng trong việc định hình trải nghiệm người dùng và hiệu suất của ứng dụng. Báo cáo đồ án này đã đi sâu vào tìm hiểu Flutter, cung cấp cái nhìn toàn diện về lịch sử phát triển, đối tượng hướng đến, và những ưu điểm vượt trội của framework này, đặc biệt là khả năng Flutter app development nhanh chóng và linh hoạt. Việc hiểu rõ những điểm khác biệt của Flutter, chẳng hạn như không sử dụng Webview và OEM widgets mà thay vào đó sử dụng engine render riêng, giúp các nhà phát triển tối ưu hóa ứng dụng. Sự tích hợp phong phú của các thành phần UI, cùng với tính năng Hot Reload, đã biến Flutter thành công cụ đắc lực cho việc xây dựng các ứng dụng chat Flutter hiện đại và có tính tương tác cao. Nghiên cứu này chứng minh tiềm năng của Flutter trong việc đáp ứng các yêu cầu khắt khe của một ứng dụng chat realtime.

2.1. Giới thiệu tổng quan về Flutter và Dart lập trình

Flutter là bộ công cụ phát triển phần mềm (SDK) UI di động của Google, cho phép xây dựng các ứng dụng chất lượng cao, có trải nghiệm mượt mà trên cả iOS và Android. Nó là một framework mã nguồn mở và hoàn toàn miễn phí, được phát triển bởi cộng đồng lập trình viên rộng lớn. Nền tảng của Flutter là Dart lập trình, một ngôn ngữ lập trình hướng đối tượng (OOP) do Google phát triển, có cú pháp tương tự C và chịu ảnh hưởng mạnh mẽ từ Java. Điều này giúp các lập trình viên đã quen thuộc với Java dễ dàng tiếp cận Dart. Đặc tính hướng đối tượng của Dart, với các nguyên tắc như đóng gói, đa hình, kế thừa và trừu tượng, cung cấp một nền tảng vững chắc cho việc xây dựng các ứng dụng phức tạp. Khả năng phát triển ứng dụng Flutter đa nền tảng (Web, Desktop, Mobile App) là một ưu điểm lớn, giúp tiết kiệm thời gian và nguồn lực.

2.2. Điểm khác biệt và lợi ích khi phát triển ứng dụng Flutter

Flutter nổi bật với tính năng Hot Reload, cho phép nhà phát triển xem ngay lập tức các thay đổi mã nguồn trên thiết bị hoặc máy ảo mà không cần biên dịch lại toàn bộ ứng dụng. Điều này tăng tốc đáng kể quá trình phát triển ứng dụng Flutter và gỡ lỗi. Một lợi thế khác là cấu trúc "mọi thứ đều là Widget", nơi các thành phần UI được xây dựng từ các widget cha-con, mang lại sự linh hoạt cao trong thiết kế và khả năng tùy chỉnh. Flutter cung cấp hai bộ Widget phổ biến là Material Design và Cupertino, đảm bảo tính đồng bộ giao diện trên các nền tảng. Theo báo cáo, "Flutter không sử dụng Webview và OEM widget để hiển thị. Thay vào đó, Flutter sử dụng engine render riêng để vẽ các widget với độ tối ưu cao." Điều này giúp ứng dụng có hiệu năng vượt trội và giao diện nhất quán. Ngoài ra, Flutter có cộng đồng hỗ trợ lớn và nhiều package giúp Flutter app development dễ dàng tích hợp các tính năng phức tạp.

2.3. Cấu trúc cơ bản và các thành phần Widget trong Flutter app development

Cấu trúc cơ bản của một ứng dụng Flutter xoay quanh khái niệm Widget – thành phần cốt lõi tạo nên toàn bộ giao diện người dùng. Mỗi ứng dụng Flutter là một "top-level Widget" chứa nhiều widget con, tạo thành một cấu trúc cây. Các nhóm Widget chính bao gồm: Platform widgets (đặc thù nền tảng), Layout widgets (hỗ trợ bố cục), State maintenance widgets (quản lý trạng thái), và Platform independent/basic widgets. Các layout widget như Container, Center, Row, Column, Stack đóng vai trò quan trọng trong việc sắp xếp các widget con. Trong Flutter app development, việc hiểu rõ sự khác biệt giữa StatelessWidget (không cập nhật giao diện) và StatefulWidget (cập nhật giao diện và trạng thái) là rất quan trọng cho state management Flutter. Ngoài ra, Gesture Detector trong Flutter cho phép ứng dụng xử lý các tương tác của người dùng như chạm, vuốt, giúp tạo ra trải nghiệm động và tương tác cao.

III. Bí quyết Phân tích Xác định Yêu cầu Bảo mật Chat App hiệu quả

Việc xây dựng một ứng dụng chat ẩn danh với Flutter đòi hỏi một quá trình phân tích yêu cầu kỹ lưỡng, đặc biệt là liên quan đến các khía cạnh bảo mật và quyền riêng tư. Giai đoạn khảo sát và đặc tả yêu cầu không chỉ giúp định hình các chức năng cốt lõi mà còn đảm bảo ứng dụng đáp ứng đúng nhu cầu và kỳ vọng của người dùng về sự an toàn thông tin. Nhóm tác giả đã thực hiện khảo sát chi tiết để nắm bắt "nhu cầu thực tế" và "khảo sát bằng Google Form" về các ứng dụng trò chuyện hiện có, từ đó đưa ra những yếu tố cần thiết cho một bảo mật chat app đáng tin cậy. Kết quả khảo sát đã chỉ ra rằng người dùng rất quan tâm đến "độ bảo mật của các ứng dụng trò chuyện hiện nay", và nhu cầu về một ứng dụng "riêng tư hơn" là rất cao. Việc tích hợp các giải pháp mã hóa tin nhắn mạnh mẽ và quản lý quyền riêng tư chặt chẽ là yếu tố then chốt để xây dựng lòng tin người dùng. Quá trình phân tích yêu cầu cũng bao gồm việc định nghĩa rõ ràng các use case, từ đăng nhập, đăng ký đến các tính năng tương tác chat và quản lý bạn bè. Mỗi use case được đặc tả chi tiết bằng Activity Diagram và Sequence Diagram, đảm bảo mọi luồng hoạt động được hiểu rõ và bảo mật từ giai đoạn thiết kế. Sự cẩn trọng trong giai đoạn phân tích này là "bí quyết" để tạo ra một ứng dụng chat Flutter không chỉ giàu tính năng mà còn vững chắc về bảo mật. Các tiêu chuẩn về quyền riêng tư người dùng được đặt lên hàng đầu, ảnh hưởng đến mọi quyết định thiết kế và triển khai.

3.1. Phân tích nhu cầu thực tế và khảo sát người dùng về quyền riêng tư người dùng

Để phát triển một ứng dụng chat ẩn danh với Flutter thực sự hữu ích, việc thấu hiểu nhu cầu người dùng là tối quan trọng. Nhóm tác giả đã tiến hành "Khảo sát bằng Google Form" với 36 người tham gia để thu thập thông tin về thói quen sử dụng ứng dụng nhắn tin, kỳ vọng về giao diện và đặc biệt là "độ bảo mật". Kết quả khảo sát chỉ ra rằng "vẫn không quá nhiều người tin cậy độ bảo mật của các ứng dụng trò chuyện hiện nay, khi các tin nhắn riêng tư...bị lộ ra, hay bị hack tài khoản". Điều này củng cố tầm quan trọng của việc đảm bảo quyền riêng tư người dùng và tính ẩn danh. Nhu cầu về một ứng dụng riêng tư hơn, không bị lạm dụng như một số nền tảng hẹn hò, là rất cao. Những phản hồi này là nền tảng để định hướng các tính năng và yếu tố bảo mật chat app trọng tâm.

3.2. Đặc tả các use case quan trọng cho bảo mật chat app

Giai đoạn "Khảo sát và Phân tích Đặc tả Yêu cầu" đã xác định một danh sách các use case chi tiết, bao gồm Đăng nhập, Đăng ký, Quên mật khẩu, Ghép cặp, Chat, Báo cáo người dùng, v.v. Mỗi use case đều được đặc tả rõ ràng với "Dòng sự kiện" chính và "Dòng sự kiện khác" (trường hợp ngoại lệ), cùng với "Yêu cầu đặc biệt", "Tình trạng hệ thống trước/sau khi thực hiện". Ví dụ, use case Đăng nhập yêu cầu hệ thống kiểm tra thông tin hợp lệ và thông báo kết quả. Các sơ đồ hoạt động (Activity Diagram) và sơ đồ tuần tự (Sequence Diagram) được sử dụng để minh họa luồng xử lý của từng chức năng. Việc đặc tả chi tiết này là nền tảng vững chắc để xây dựng các tính năng cốt lõi của ứng dụng chat Flutter và đảm bảo các yếu tố bảo mật chat app được tích hợp ngay từ đầu.

3.3. Tích hợp giải pháp mã hóa tin nhắn để bảo vệ dữ liệu

Trong một ứng dụng chat ẩn danh, việc bảo vệ thông tin người dùng là ưu tiên hàng đầu. Mặc dù báo cáo đồ án chưa đi sâu vào chi tiết kỹ thuật mã hóa, nhưng nhu cầu về "độ bảo mật" đã được khảo sát nhấn mạnh. Để tăng cường tính ẩn danh và bảo mật, việc tích hợp các giải pháp mã hóa tin nhắn là không thể thiếu. Các phương pháp mã hóa đầu cuối (end-to-end encryption) đảm bảo rằng chỉ người gửi và người nhận mới có thể đọc được tin nhắn, ngăn chặn truy cập trái phép từ bên thứ ba, kể cả nhà cung cấp dịch vụ. Điều này củng cố "quyền riêng tư người dùng" và xây dựng lòng tin vào ứng dụng chat Flutter. Việc thiết kế kiến trúc hệ thống cần xem xét các giao thức mã hóa phù hợp để bảo vệ dữ liệu người dùng khi truyền tải và lưu trữ, biến nó thành một bảo mật chat app thực sự.

IV. Phương pháp Thiết kế Xây dựng Kiến trúc Ứng dụng Chat ẩn danh

Thiết kế kiến trúc là một giai đoạn then chốt trong quá trình phát triển ứng dụng Flutter, đặc biệt là đối với một ứng dụng chat ẩn danh với Flutter nơi yêu cầu về hiệu suất và bảo mật rất cao. Một kiến trúc hệ thống vững chắc đảm bảo rằng các thành phần front-end và back-end hoạt động hài hòa, cung cấp trải nghiệm mượt mà và an toàn cho người dùng. Nhóm tác giả đã xây dựng một "Kiến trúc hệ thống" rõ ràng, xác định vai trò của từng thành phần và cách chúng tương tác với nhau. Việc lựa chọn công nghệ cho backend cho ứng dụng chat đóng vai trò quan trọng trong việc xử lý các giao tiếp thời gian thực và quản lý dữ liệu. Thiết kế UI/UX chat app được đặc biệt chú trọng để tạo ra một giao diện trực quan, dễ sử dụng, phù hợp với mục tiêu ẩn danh của ứng dụng. Giao diện tổng quan từ màn hình đăng nhập, đăng ký đến màn hình chính và phòng chat đều được thiết kế cẩn thận để tối ưu hóa trải nghiệm người dùng. Với sự linh hoạt của Flutter, việc triển khai các thành phần UI phức tạp trở nên hiệu quả, đồng thời hỗ trợ khả năng tùy chỉnh cao. "Màn hình đăng nhập", "Màn hình đăng ký" và "Màn hình quên mật khẩu" là những điểm chạm đầu tiên, được thiết kế để đơn giản hóa quá trình bắt đầu sử dụng. Việc xây dựng một kiến trúc ứng dụng chat hiệu quả không chỉ giúp ứng dụng hoạt động ổn định mà còn dễ dàng mở rộng và bảo trì trong tương lai, đáp ứng các yêu cầu ngày càng cao của một ứng dụng chat realtime.

4.1. Kiến trúc tổng quan và vai trò của backend cho ứng dụng chat

Kiến trúc hệ thống của ứng dụng chat ẩn danh với Flutter được thiết kế để đảm bảo hoạt động ổn định và hiệu quả. "Hình 4.1. Kiến trúc hệ thống" cung cấp cái nhìn tổng quan về cách các thành phần tương tác. Node.js được chọn làm nền tảng "backend cho ứng dụng chat" nhờ khả năng kết hợp tốt với NoSQL, đặc biệt là MongoDB, và thường được sử dụng để xây dựng websocket server. Theo báo cáo, Node.js cung cấp kiến trúc hướng sự kiện (event-driven) và non-blocking I/O API, tối ưu hóa thông lượng và có khả năng mở rộng cao. MongoDB, một cơ sở dữ liệu NoSQL hướng tài liệu, được lựa chọn để lưu trữ dữ liệu dưới dạng JSON, mang lại sự linh hoạt và tốc độ truy vấn cực kỳ cao. Nó cho phép các collection có kích cỡ và document khác nhau, không có sự ràng buộc lẫn nhau trong dữ liệu, giúp tăng tốc độ thêm/xoá/sửa dữ liệu, một yếu tố quan trọng cho công nghệ chat realtime.

4.2. Thiết kế giao diện UI UX chat app thân thiện và trực quan

Giai đoạn thiết kế giao diện người dùng (UI) và trải nghiệm người dùng (UX) là rất quan trọng để tạo ra một ứng dụng chat Flutter hấp dẫn và dễ sử dụng. Với sự hỗ trợ của Figma, nhóm tác giả đã phát triển "Giao diện tổng quan" bao gồm các màn hình chính như "Màn hình đăng nhập", "Màn hình đăng ký", "Màn hình quên mật khẩu", "Màn hình chính – Home", "Hồ sơ người dùng", "Danh sách bạn bè", "Phòng chat". Mục tiêu là tạo ra một "giao diện UI/UX chat app" thân thiện, trực quan và phù hợp với mục đích ẩn danh. Khảo sát người dùng cũng đã cung cấp cái nhìn sâu sắc về "giao diện sử dụng" mong muốn, với nhu cầu về giao diện có thể luân phiên giữa sáng và tối. Điều này đảm bảo rằng ứng dụng không chỉ có chức năng tốt mà còn mang lại trải nghiệm thị giác dễ chịu, khuyến khích người dùng tương tác với ứng dụng nhắn tin di động.

4.3. Lựa chọn công nghệ backend cho ứng dụng chat và cơ sở dữ liệu

Việc lựa chọn công nghệ cho backend cho ứng dụng chat là yếu tố quyết định hiệu suất và khả năng mở rộng. Như đã đề cập, Node.js là nền tảng được chọn để xây dựng server chat, tận dụng ưu điểm về khả năng xử lý không đồng bộ và kiến trúc hướng sự kiện. Điều này giúp tối ưu hóa việc truyền tải dữ liệu thời gian thực, vốn là cốt lõi của một ứng dụng chat realtime. Đối với cơ sở dữ liệu, MongoDB được sử dụng. Ưu điểm của MongoDB là khả năng lưu trữ dữ liệu phi cấu trúc dạng JSON, mang lại sự linh hoạt và tốc độ truy vấn vượt trội so với các hệ quản trị cơ sở dữ liệu quan hệ truyền thống. Báo cáo nhấn mạnh rằng "Tốc độ truy vấn cực kỳ cao: Tất cả đều được tối ưu nhanh hơn so với các hệ thống quản trị dữ liệu quan hệ khác. Từ những thử nghiệm cho thấy, tốc độ của MongoDb có thể nhanh gấp 100 lần so với MySQL." Sự kết hợp giữa Node.js và MongoDB tạo nên một nền tảng vững chắc và hiệu quả cho việc quản lý dữ liệu và giao tiếp trong ứng dụng chat ẩn danh với Flutter.

V. Kết quả Đồ án Ứng dụng Chat Flutter ẩn danh và triển vọng phát triển

Sau quá trình nghiên cứu và phát triển nghiêm túc, đồ án tốt nghiệp Flutter về ứng dụng chat ẩn danh với Flutter đã đạt được những kết quả đáng kể. Dự án không chỉ dừng lại ở việc tạo ra một sản phẩm chức năng mà còn mang lại những bài học lý thuyết và thực hành quý báu cho nhóm tác giả. Việc nắm vững kiến thức về Flutter, các widget, và REST API đã tạo nền tảng vững chắc cho quá trình phát triển ứng dụng Flutter. Đồng thời, việc sử dụng Node.js để khởi tạo server chat và đồng bộ hóa giữa hai người dùng đã chứng minh khả năng triển khai công nghệ chat realtime một cách hiệu quả. Kết quả cuối cùng là một ứng dụng nhắn tin di động cung cấp một "không gian cởi mở, chia sẻ, kết bạn mới dành cho người dùng" với các tính năng cốt lõi được triển khai thành công. Ứng dụng không chỉ tập trung vào khả năng chat mà còn tích hợp các chức năng độc đáo như nghe nhạc trong phòng chat, tăng cường trải nghiệm người dùng. Việc đánh giá "performance chat app Flutter" và trải nghiệm tổng thể là rất quan trọng để xác định mức độ thành công của dự án và các điểm cần cải thiện. Đây là minh chứng rõ ràng cho tiềm năng của Flutter trong việc xây dựng các ứng dụng phức tạp, đáp ứng nhu cầu thị trường hiện đại về sự riêng tư và kết nối. Thành công của dự án này mở ra nhiều triển vọng cho các nghiên cứu và phát triển tiếp theo trong lĩnh vực ứng dụng chat Flutter.

5.1. Thành tựu đạt được trong phát triển ứng dụng Flutter

Thông qua đồ án tốt nghiệp Flutter này, nhóm tác giả đã thu được nhiều kết quả trên cả lý thuyết và thực hành. Cụ thể, kiến thức về Flutter, các widget, và REST API đã được nắm vững. Dự án đã thành công trong việc sử dụng Node.js để khởi tạo server chat cho ứng dụng và đồng bộ hóa hiệu quả giữa hai người dùng. Việc áp dụng xác thực đăng nhập JWT và gửi tin nhắn xác thực về điện thoại với Vonage cũng là một thành tựu quan trọng, tăng cường bảo mật chat app. Các thành tựu này khẳng định khả năng của nhóm trong phát triển ứng dụng Flutter từ ý tưởng đến triển khai thực tế, tạo ra một ứng dụng chat ẩn danh với Flutter hoàn chỉnh và chức năng. Đây là minh chứng cho sự thành công trong việc ứng dụng công nghệ hiện đại vào giải quyết vấn đề thực tiễn.

5.2. Các tính năng nổi bật của ứng dụng chat ẩn danh Flutter

Ứng dụng Familiar Stranger được phát triển như một ứng dụng chat ẩn danh với Flutter có nhiều tính năng nổi bật. Các chức năng chính bao gồm: Đăng nhập, đăng ký, quên mật khẩu; Quản lý thông tin người dùng; Ghép cặp; Nhắn tin kết hợp nghe nhạc; Kết bạn và nhóm chức năng với bạn bè; Cài đặt. Điểm đặc sắc của đề tài là khả năng "ghép cặp", cho phép người dùng tìm kiếm người để tâm sự hoặc chia sẻ. Tính năng "nghe nhạc trong phòng chat" đồng bộ giữa hai máy là một yếu tố độc đáo, giúp tạo không khí thư thái và bộc lộ cảm xúc. Quan trọng nhất, "thông tin cũng sẽ hoàn toàn được bảo mật, cho đến khi bạn đưa UID của bản thân cho bạn cùng phòng chat và người ấy chủ động kết bạn", đảm bảo tính ẩn danh cao nhất cho người dùng của ứng dụng nhắn tin di động.

5.3. Đánh giá performance chat app Flutter và trải nghiệm người dùng

Việc đánh giá "performance chat app Flutter" là một phần quan trọng của báo cáo đồ án. Nhờ những ưu điểm của Flutter như Hot Reload và kiến trúc dựa trên Widget, ứng dụng đạt được hiệu suất tốt và giao diện mượt mà. Khảo sát người dùng đã cung cấp cái nhìn về "độ tin cậy của ứng dụng" và mức độ hài lòng về giao diện. Mặc dù có những hạn chế ban đầu về số lượng người khảo sát, nhưng phản hồi chung về nhu cầu một "app riêng tư hơn" đã xác nhận giá trị của ứng dụng chat ẩn danh với Flutter. Việc tích hợp công nghệ chat realtime và tối ưu hóa các quy trình backend đảm bảo tin nhắn được gửi và nhận nhanh chóng, góp phần vào trải nghiệm người dùng tích cực. Những "điểm đặc sắc của đề tài" như tính năng nghe nhạc và ghép cặp cũng được đánh giá cao, làm tăng tính hấp dẫn của ứng dụng.

VI. Tương lai Hướng Phát triển Nâng tầm Ứng dụng Nhắn tin Di động

Thành công của đồ án tốt nghiệp Flutter này đã mở ra những hướng phát triển tiềm năng cho ứng dụng chat ẩn danh với Flutter. Mặc dù phiên bản hiện tại đã đạt được các mục tiêu ban đầu, nhưng để nâng tầm ứng dụng nhắn tin di động này, nhiều cải tiến và mở rộng tính năng là cần thiết. Hướng phát triển không chỉ dừng lại ở việc hoàn thiện các chức năng hiện có mà còn hướng tới việc xây dựng một hệ sinh thái toàn diện hơn. Điều này bao gồm việc phát triển một trang web quản lý dành cho quản trị viên, giúp họ giám sát và điều hành ứng dụng hiệu quả. Hơn nữa, tầm nhìn dài hạn là biến ứng dụng chat Flutter này thành một "mạng xã hội thu nhỏ", tích hợp thêm nhiều tính năng xã hội và tương tác phức tạp hơn, như đã được đề cập trong định hướng cho "đồ án 2 và khóa luận tốt nghiệp". Để đạt được điều này, việc liên tục tối ưu hóa source code chat app Flutter, nâng cao khả năng quản lý trạng thái (state management) và cải thiện hiệu suất của các công nghệ thời gian thực (web socket, push notification) là rất quan trọng. Những bước đi này sẽ đảm bảo rằng ứng dụng không chỉ duy trì được sự ổn định và hiệu quả mà còn có thể cạnh tranh trong thị trường ứng dụng nhắn tin di động đầy thách thức, tiếp tục cung cấp một không gian an toàn và riêng tư cho người dùng.

6.1. Hướng phát triển tiếp theo cho source code chat app Flutter

Để nâng cao giá trị của đồ án tốt nghiệp Flutter này, "Hướng phát triển" đã được xác định rõ ràng. Trước mắt, nhóm tác giả sẽ "cố gắng phát triển trang web quản lý cho admin" để hỗ trợ việc vận hành và quản lý người dùng hiệu quả hơn. Về lâu dài, dự án sẽ "hướng đến một mạng xã hội thu nhỏ cho đồ án 2 và khóa luận tốt nghiệp". Điều này đòi hỏi việc mở rộng source code chat app Flutter hiện có, tích hợp thêm các tính năng xã hội như profile chi tiết, nhóm chat nâng cao, hoặc các hoạt động cộng đồng. Việc tái cấu trúc hoặc tối ưu hóa mã nguồn hiện tại sẽ là cần thiết để đảm bảo khả năng mở rộng và dễ dàng bảo trì khi thêm các tính năng mới, duy trì hiệu suất của ứng dụng chat Flutter.

6.2. Mở rộng tính năng và cải thiện state management Flutter

Việc mở rộng tính năng là một bước quan trọng để làm phong phú thêm trải nghiệm của ứng dụng chat ẩn danh với Flutter. Các tính năng tiềm năng có thể bao gồm tích hợp gọi thoại/video, chia sẻ vị trí, hoặc các trò chơi nhỏ trong phòng chat. Để hỗ trợ những tính năng phức tạp này, việc "cải thiện state management Flutter" là điều thiết yếu. Các giải pháp quản lý trạng thái nâng cao như BLoC, Provider, Riverpod hoặc GetX có thể được áp dụng để đảm bảo dữ liệu ứng dụng được quản lý hiệu quả, giúp ứng dụng duy trì hiệu suất cao và dễ dàng bảo trì. Một hệ thống state management Flutter vững chắc sẽ là nền tảng cho việc triển khai các chức năng mới mà không ảnh hưởng đến sự ổn định tổng thể của ứng dụng nhắn tin di động.

6.3. Tối ưu hóa web socket Flutter và push notification Flutter

Để đảm bảo một ứng dụng chat realtime hoạt động mượt mà và đáng tin cậy, việc tối ưu hóa các công nghệ cốt lõi là cần thiết. Web socket Flutter đóng vai trò trung tâm trong việc duy trì kết nối hai chiều giữa client và server, cho phép truyền tải tin nhắn tức thời. Việc tối ưu hóa kết nối web socket sẽ giảm độ trễ và tăng cường trải nghiệm người dùng. Đồng thời, push notification Flutter là một tính năng không thể thiếu để thông báo cho người dùng về tin nhắn mới, cuộc gọi nhỡ hoặc các hoạt động quan trọng khác, ngay cả khi ứng dụng không được mở. Việc triển khai hệ thống thông báo đẩy hiệu quả giúp giữ chân người dùng và đảm bảo họ không bỏ lỡ các tương tác quan trọng. Những cải tiến này sẽ nâng cao đáng kể hiệu suất và khả năng tương tác của ứng dụng chat Flutter, biến nó thành một ứng dụng nhắn tin di động mạnh mẽ hơn.

27/09/2025

Trích đoạn nội dung tài liệu

Đặt vấn đề Hiện nay, dịch Covid đã nguôi ngoai phần nào, nhưng hệ quả nó để lại vô cùng tàn khốc, không thể kể xiết, khiến nhiều người rơi vào trầm cảm, mắc chứng sợ tiếp xúc ngoài xã hội. Dù đã giảm thiểu được con số lây nhiễm và tử vong, nhưng chúng ta vẫn nên nghiêm ngặt chấp hành các quy định giãn cách xã hội, quy định 5K được đổi mới, cập nhật cho phù hợp với tình trạng dịch bệnh. Và khi một cuộc sống dần thu hẹp không gian sinh hoạt, nay đã trở thành thói quen vì giãn cách quá lâu, lại chẳng thể tâm sự cùng với ai cả, thì không gian để kết nối mọi người là thông qua mạng internet, qua các ứng dụng mạng xã hội, nhắn tin. Thêm vào đó, với thời thế hiện này, các ứng dụng nhắn tin được phát triển rộng rãi, mạnh mẽ, kết nối những con người xa lạ hay gần gũi đến nhau.

Đồng thời, Flutter hiện lại còn đang được ưa chuộng và phát triển mới hơn từng ngày. Thế nên, chúng em quyết định phát triển ứng dụng Familiar Stranger nhằm tạo ra nơi dành cho tất cả mọi người, không kể là ai, lắng nghe hay trút bỏ nỗi niềm với người còn lại một cách văn minh, tế nhị, giúp giải toả tâm lý, nhận được những lời khuyên hữu ích. Mục tiêu Mục tiêu cơ bản của nhóm là tìm hiểu về Flutter và sử dụng những kiến thức đã học và đang học, đồng thời kết hợp thu thập trải nghiệm từ phía người dùng các ứng dụng lân cận như Messenger, Zalo, …. thông qua khảo sát, từ đó để phát triển một ứng dụng trò chuyện ẩn danh trực tuyến mang tính tối ưu, tiện lợi và bảo toàn lợi ích người dùng.

Phạm vi Vì thời gian tìm hiểu có hạn nên trước mắt nhóm sẽ hướng đến hoàn thiện ứng dụng trò chuyện ẩn danh cơ bản với các chức năng ghép cặp, kết bạn, quản lý 2 thông tin cá nhân, nghe nhạc trong phòng chat,… Dần theo sau đó sẽ cố gắng phát triển trang web quản lý cho admin và hướng đến một mạng xã hội thu nhỏ cho đồ án 2 và khoá luận tốt nghiệp. Công cụ sử dụng Công cụ phân tích và thiết kế Database : Draw.io, MongoDB Công cụ thiết kế giao diện : Figma Công cụ lập trình : Visual Studio Code Công cụ quản lý dự án : Github, Messger, Trello, Discord Công cụ lưu trữ các tài liệu liên quan : Google Drive, Github 3 Chương 2. Giới thiệu NodeJS là một nền tảng được xây dựng trên “V8 Javascript engine” được viết bằng C++ và Javascript. Nền tảng này được phát triển bởi Ryan Lienhart Dahl vào năm 2009.js là một mã nguồn mở, một môi trường cho các máy chủ và ứng dụng mạng.

NodeJS ra đời khi các developer đời đầu của JavaScript mở rộng nó từ một thứ bạn chỉ chạy được trên trình duyệt thành một thứ bạn có thể chạy trên máy của mình dưới dạng ứng dụng độc lập. NodeJS chứa một thư viện built-in cho phép các ứng dụng hoạt động như một Webserver mà không cần phần mềm như Nginx, Apache HTTP Server hoặc IIS. NodeJS cung cấp kiến trúc hướng sự kiện (event-driven) và non-blocking I/O API, tối ưu hóa thông lượng của ứng dụng và có khả năng mở rộng cao. 4 Mọi hàm trong NodeJS là không đồng bộ (asynchronous).

Do đó, các tác vụ đều được xử lý và thực thi ở chế độ nền (background processing). Lý do sử dụng - Kết hợp tốt với NoSQL, cụ thể là MongoDB cho đồ án lần này - Thường được sử dụng để build websocket sever (Chat Sever) - Ứng dụng Web thực: Dùng để xây dựng 1 ứng dụng chat, feed. Facebook, Twitter là điển hình cho Web thực. NodeJS làm khá tốt điều đó! - Stream Data (Luồng dữ liệu): Các web thông thường gửi HTTP request và nhận phản hồi lại (Luồng dữ liệu).

Giả xử sẽ cần xử lý 1 luồng giữ liệu cực lớn, NodeJS sẽ xây dựng các Proxy phân vùng các luồng dữ liệu để đảm bảo tối đa hoạt động cho các luồng dữ liệu khác. Sau đó lấy reponse được trả về nhằm đưa vào Mobile app. - NodeJS sẽ tận dụng tối đa Unix để hoạt động. Nói cách khác, NodeJS có thể xử lý hàng nghìn tiến trình và trả ra 1 luồng khiến cho hiệu xuất hoạt động đạt mức tối đa nhất và tuyệt vời nhất.

Giới thiệu MongoDB chính là một dạng cả NoSQL. Hay nói một cách đơn giản MongoDB chính là một database hướng tài liệu. Nó chính là một hệ quản trị cơ sở dữ liệu mã nguồn mở. MongoDB cho phép bạn mở rộng tài liệu được lưu trữ trong Document kiểu JSON.

Thay vì trước đó các bạn phải dùng dạng bảng như cơ sở dữ liệu quan hệ. Nếu không sử dụng MongoDB khi truy vấn dữ liệu sẽ rất lâu và phải thực hiện nhiều bước. Với các cơ sở dữ liệu dạng (SQL) chúng ta phải biết đến những khái niệm các bảng, các cơ sở dữ liệu quan hệ. Thậm chí, chúng ta còn phải dùng đến các bảng để lưu dữ liệu.

Thì khi đến với MongodB các bạn sẽ chỉ dùng khái niệm Collection thay vì bảng như trước 2. Lý do sử dụng - Sử dụng lưu trữ dữ liệu dưới dạng JSON: Nhờ có nó nên mỗi một collection đều sẽ có các kích cỡ và các Document khác nhau. Sự linh hoạt trong việc lưu trữ dữ liệu của MongoDB là rất hữu dụng. Nó giúp chúng ta có thể thêm dữ liệu bất kỳ lúc nào.

- Không có sự ràng buộc lẫn nhau trong dữ liệu: Không cần kiểm tra thoả mãn ràng buộc để thêm/xoá/sửa dữ liệu, đặc trưng của NoSQL - Tốc độ truy vấn cực kỳ cao: Tất cả đều được tối ưu nhanh hơn so với các hệ thống quản trị dữ liệu quan hệ khác. Từ những thử nghiệm cho thấy, tốc độ của MongoDb có thể nhanh gấp 100 lần so với MySQL. - Khái niệm thay đổi: Không còn quan tâm tới bảng, ràng buộc, chúng ta chỉ còn khái niệm Collection(thay cho bảng) và document(thay cho cột). Các Collection trong MongoDB được cấu trúc linh hoạt.

Các bạn có thể sử dụng nó để cho phép các dữ liệu lưu trữ. Mà các bạn không cần phải tuân theo một cấu trúc nhất định như ban đầu. Những thông tin liên quan đến nhau sẽ cùng được lưu trữ để truy vấn nhanh hơn. Nhờ có ngôn ngữ truy vấn MongoDB các 6 bạn có thể thực hiện những điều này.

Đây chính là lý do vì sao, nhiều người muốn tìm hiểu về cách sử dụng MongoDB. Giới thiệu Flutter là mobile UI framework của Google để tạo ra các giao diện chất lượng cao trên iOS và Android trong khoảng thời gian ngắn. Flutter hoạt động với những code sẵn có được sử dụng bởi các lập trình viên, các tổ chức. Flutter hoàn toàn miễn phí và cũng là mã nguồn mở, là một framwork dựa trên ngôn ngữ lập trình Dart – một ngôn ngữ lập trình hướng đối tượng khá là dễ học.

Flutter có thể xây dựng ứng dụng đa nền tảng , và ngày càng được cập nhật nhiều hơn, hiện đại hơn (Web, Desktop App, Mobile App). Flutter phù hợp với rất nhiều IDE như : Android Studio, IntelliJ IDEA, Visual Studio Code (buộc phải xây dugnjw máy ảo trong một trong hai IDE được nêu tên trước) 7 2. Lý do sử dụng - Hot Reload: Không cần rebuild lại app, chỉ cần bấm tổ hợp phím ctrl + S để lưu lại những thay đổi và áp dụng ngay trên máy ảo/ điện thoại đang sử dụng để debug. Đây là một tính năng quá là tiện lợi để kiểm tra độ tương thích cũng như khả năng hoạt động, hiệu năng của Flutter.

- Thành phần UI tích hợp phong phú, mọi thứ đều là Widget: với 2 bộ Widget phổ biến là Material Design và Cupertino trên mọi nền tảng lập trình (Web, Mobile App,…), một tên gọi khá quen thuộc với mọi lập trình viên. Tất nhiên ở Flutter, chúng ta có thể sử dụng mọi thứ từ hai bộ Widget trên, và trên mọi nền tảng nữa, sẽ có tính đồng bộ trên đa thiết bị (Android, IOS). Không những thế, khi mọi thứ là widget, chúng ta có thể sử dụng thừa kế, nhằm tinh chỉnh lại widget theo đúng ý mình. - Quá nhiều package hỗ trợ cả android và IOS (chủ yếu), cộng với sự đơn giản nhưng không kém phần linh hoạt và tốc độ phản hồi nhanh đến khó tin khiến cho flutter được ưa chuộng cho việc phát triển các ứng dụng di động đa nền tảng.

TÌM HIỂU VỀ FLUTTER Hình 2. Giới thiệu chung Flutter là mobile app SDK của Google để tạo ứng dụng có trải nghiệm và chất lượng tốt nhất trên iOS và Android. Flutter được phát triển bởi các developers và các tổ chức trên khắp thế giới. Flutter là mã nguồn mở và miễn phí.

Không phải ngẫu nhiên mà ngày ngày Flutter càng được ưa chuộng và hướng tới nhiều hơn, do tính thuận tiện, nhanh lẹ trong phát triển và tính đa nền tảng hiện có. Lịch sử phát triển Phiên bản đầu tiên của Flutter được biết đến với cái tên ‘Sky’ và chạy trên hệ điều hành Android. Lần đầu tiên được công bố là ở hội nghị thượng đỉnh dành cho các nhà phát triển Dart với mục đích ban đầu được đề ra là tốc độ hiển thị khung hình 120 FPS(Frame Per Second). Kế đến là ở Thượng Hải(Trung Quốc) vào tháng 9 năm 2018, khi Google công bố bản xem trước khi phát hành Flutter 2.0, bản chính thức cuối cùng từ Google trong khoảng thời gian từ ấy đến giờ, sau khi đã phát hành Flutter 1.0 vào ngày 4 tháng 12 cùng năm, tại sự kiện Flutter Live.

9 Vào ngày 6 tháng 5 năm 2020, bộ công cụ phát triển phần mềm Dart (SDK) phiên bản 2.0 đã được phát hành, bổ sung hỗ trợ cho API Metal giúp cải thiện hiệu suất trên thiết bị iOS lên khoảng 50%, cũng như các tiện ích Material mới và theo dõi mạng công cụ phát triển. Vào ngày 3 tháng 3 năm 2021, Google đã phát hành Flutter 2.0 trong một sự kiện Flutter Engage Online. Bản phát hành này sử dụng Dart 2.0, gây ra nhiều thay đổi đột phá và các vấn đề với nhiều gói bên ngoài; tuy nhiên, nhóm Flutter đã bao gồm các hướng dẫn và công cụ để giảm thiểu những vấn đề này. Vào ngày 8 tháng 9 năm 2021, Dart 2.5 đã được Google phát hành.

Bản cập nhật đã mang lại những cải tiến cho Android. Dart đã nhận được hai bản cập nhật mới. Phiên bản ổn định mới nhất của Flutter là 3.1, vừa được cập nhật vào năm nay - 2022 và phiên bản Dart là 2. Đối tượng hướng đến Flutter hướng tới 3 đối tượng chính: - Với các Developer: Flutter giảm thời gian xây dựng một ứng dụng.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ