聊天应用程序
经过 4000 多行代码和多天的努力,我从头开始使用 Flutter 构建了我的聊天应用程序“Connect”。
用于存储用户数据(仅姓名、电子邮件、个人资料图片)和聊天的数据库是Firebase(一个由Google创建的NoSQL数据库)。代码主要用Dart编程语言编写,一小部分用JavaScript编写。







该应用程序包含10个屏幕:
- 注册屏幕 - 在此屏幕上,用户可以通过提供用户名、电子邮件和密码进行注册(有一些限制,例如用户名不能少于4个字母,密码必须至少8个字符,并且电子邮件格式必须正确)。
- 登录屏幕 - 在此屏幕上,用户可以使用注册时提供的电子邮件和密码登录。
- 聊天室屏幕 - 在此屏幕上,您可以看到您已发送消息的所有用户的姓名,以及设置、个人资料和搜索图标。
- 搜索屏幕 - 通过点击聊天室屏幕上的搜索按钮,您将被带到此屏幕,您可以在其中搜索任何您想发送消息的用户(按用户名)。
- 对话屏幕 - 在此屏幕上,您可以看到您正在与之交谈的用户的个人资料图片、姓名和状态(是否正在输入、在线或上次在线时间),以及您们之间发送的所有消息的顺序。这是您可以与其他人“连接”的屏幕。
- 更改个人资料屏幕 - 通过点击聊天室屏幕上的个人资料按钮,您将被带到此屏幕,您可以在其中查看您在注册时提供的用户名和电子邮件,并且在此屏幕上您还可以选择查看、更新、删除或添加您的个人资料图片。
- 用户个人资料图片 - 在此屏幕上,您可以查看您发送过消息的任何用户的个人资料图片、用户名和电子邮件。
- 设置屏幕 - 在此屏幕上,用户可以选择更改应用程序的主题、退出应用程序以及为深色和浅色主题分别更改壁纸。
- 唯一个人资料图片屏幕 - 在此屏幕上,用户可以更改其个人资料图片,并且此更改仅对特定用户可见。
- 壁纸屏幕 - 在此屏幕上,用户可以选择深色和浅色主题的四个选项之一来设置其对话屏幕壁纸。
使用的软件包:
- "firebase_auth" - 用于通过电子邮件和密码启用Android认证。
- "cloud_firestore" - 用于在firestore数据库中存储数据并从中访问数据。
- "shared_preferences" - 用于读写简单的键值对。
- "date_time_format" - 用于轻松格式化日期和时间。
- "http" - 用于通过HTTP链接访问网络数据。
- "firebase_messaging" - 此插件有助于使用Firebase Cloud Messaging API。
- "path_provider" - 用于获取用户在Firebase Storage上传的个人资料图片的路径。
- "cupertino_icons" - 用于使用“眼睛”图标。
- "cached_network_image" - 用于缓存所有网络图片,以便更快地渲染它们。