docs: 更新README文件
This commit is contained in:
parent
a25f00f0bc
commit
1068f5e467
161
README.md
Normal file
161
README.md
Normal file
@ -0,0 +1,161 @@
|
||||
# kchat — 简单的即时通讯应用
|
||||
|
||||
欢迎使用 **kchat**,这是一款简单轻量的即时通讯应用,旨在展示如何使用现代 Android 开发技术构建一个基础的聊天应用。该项目实现了基本的聊天功能,并参考 **MVVM 架构**、**Kotlin**、**LiveData** 和 **ObjectBox 数据库**。
|
||||
|
||||
------
|
||||
|
||||
## 功能概览
|
||||
|
||||
### 核心功能
|
||||
|
||||
- [x] **实时消息传输**:通过 WebSocket 实现即时通讯,确保消息快速、实时传输。
|
||||
- [x] **支持文本、图片消息**:用户可以发送文字、图片、音频和文件,满足不同的交流需求。
|
||||
- [x] **添加/删除好友**:用户可以添加好友或移除不需要的好友。
|
||||
- [x] **搜索功能**:支持通过关键词在聊天记录中搜索消息,同时支持按文件类型筛选。
|
||||
- [x] **修改个人信息**:用户可以修改昵称、头像、个性签名等个人信息,提升个性化体验。
|
||||
- [ ] **修改用户密码**:用户可以更新自己的密码。
|
||||
- [ ] **查看好友动态**:支持查看好友分享的动态内容,形式包括文字、图片和视频,用户可以点赞或评论。
|
||||
- [ ] **支持多媒体消息**:支持发送音频、视频、文件等多种格式,满足用户不同的交流需求。
|
||||
- [ ] **群聊支持**:用户可以创建群组,与多人实时互动,并支持群管理功能(如设置群管理员、踢人)。
|
||||
- [ ] **消息通知**:支持推送通知,提醒用户有新的消息,未读消息可在通知栏中展示摘要。
|
||||
- [ ] **离线消息**:即使用户离线,服务器也会缓存消息,并在用户上线后自动同步到设备。
|
||||
|
||||
### 其他特性
|
||||
|
||||
- [ ] **消息加密**:所有用户消息在传输过程中都进行端到端加密,确保通信安全,防止信息泄露。
|
||||
- [ ] **个性化设置**:支持用户自定义头像、昵称、聊天背景,提供多种预设主题和自定义选项。
|
||||
- [ ] **深色/浅色模式**:支持自动或手动切换界面主题,适配不同的光线环境和用户偏好。
|
||||
|
||||
------
|
||||
|
||||
## 技术栈
|
||||
|
||||
- **Kotlin**:Kotlin 是一种现代化的 Android 开发语言,语法简洁、功能强大,能有效提高开发效率和代码可维护性。
|
||||
- 类 **MVVM 架构**:通过 `ViewModel` 和 `LiveData` 管理 UI 和数据的分离。未使用**DataBinding**只使用**ViewBinding**进行简化视图查找
|
||||
- **ObjectBox**:作为轻量级的数据库,ObjectBox 提供了高效的存储和快速查询能力,适合实时消息应用的本地数据存储需求。
|
||||
- **WebSocket**: 用于实现即时通信,低延迟并支持双向通信,确保实时数据传输。
|
||||
|
||||
---
|
||||
|
||||
## 安装与配置
|
||||
|
||||
### 1. 克隆项目
|
||||
|
||||
首先,将项目克隆到本地:
|
||||
|
||||
```bash
|
||||
git clone https://git.kaixed.com/你的用户名/kchat.git
|
||||
cd kchat
|
||||
```
|
||||
|
||||
### 2. 设置项目依赖
|
||||
|
||||
打开 Android Studio,点击 **Sync Project with Gradle Files** 以同步所有依赖项。
|
||||
|
||||
### 3. 运行应用
|
||||
|
||||
在 Android Studio 中选择一个设备或模拟器,点击运行按钮即可启动应用。
|
||||
|
||||
------
|
||||
|
||||
## 使用说明
|
||||
|
||||
1. 配置后端服务
|
||||
1. 更改App中的后端链接
|
||||
|
||||
------
|
||||
|
||||
## 目录结构
|
||||
|
||||
```plaintext
|
||||
kchat-/
|
||||
├── app/
|
||||
│ ├── src/
|
||||
│ │ ├── main/
|
||||
│ │ │ ├── assets/ # 资源文件
|
||||
│ │ │ ├── java/com/kaixed/kchat/
|
||||
│ │ │ │ ├── ui/
|
||||
│ │ │ │ │ ├── activity/
|
||||
│ │ │ │ │ ├── adapter/
|
||||
│ │ │ │ │ ├── base/
|
||||
│ │ │ │ │ ├── fragment
|
||||
│ │ │ │ │ ├── i/
|
||||
│ │ │ │ │ └── widget/
|
||||
│ │ │ │ ├── network
|
||||
│ │ │ │ ├── service
|
||||
│ │ │ │ ├── manager
|
||||
│ │ │ │ ├── processor
|
||||
│ │ │ │ ├── data/
|
||||
│ │ │ │ │ ├── local/
|
||||
│ │ │ │ │ │ ├── box/
|
||||
│ │ │ │ │ │ ├── entity/
|
||||
│ │ │ │ │ ├── model/ # 数据模型
|
||||
│ │ │ │ │ ├── remote/
|
||||
│ │ │ │ │ └── repository/ # 数据仓库
|
||||
│ │ │ │ ├── utils/ # 工具类(如日期格式化等)
|
||||
│ │ │ │ └── viewmodel/ # ViewModel 层
|
||||
│ │ │ │ ├── App.kt # application
|
||||
│ │ │ └── res/
|
||||
│ │ │ ├── layout/ # 布局文件
|
||||
│ │ │ ├── drawable/ # 图片资源
|
||||
│ │ │ └── values/ # 字符串、颜色等常量
|
||||
```
|
||||
|
||||
------
|
||||
|
||||
## 贡献
|
||||
|
||||
如果你对这个项目感兴趣,并希望做出贡献,请按照以下步骤进行:
|
||||
|
||||
1. Fork 这个项目到你的 GitHub 账户。
|
||||
2. 在你自己的 Fork 中进行修改。
|
||||
3. 提交 pull request,我们会尽快审查并合并你的代码。
|
||||
|
||||
在贡献代码之前,请确保遵循以下准则:
|
||||
|
||||
- 提交前请确保代码已经通过了所有测试。
|
||||
- 提交时请附带详细的提交信息,描述你所做的修改。
|
||||
- 如果你增加了新功能,请提供相关的文档和测试用例。
|
||||
|
||||
------
|
||||
|
||||
## 问题反馈
|
||||
|
||||
如果你在使用过程中遇到任何问题,或者有任何建议,可以通过以下方式联系我们:
|
||||
|
||||
- 在 [Gitea Issues](https://git.kaixed.com/kaixed/kchat/issues) 提交问题。
|
||||
- 通过 [邮箱](mailto:support@kaixed8@gmail.com) 与我联系。
|
||||
|
||||
------
|
||||
|
||||
## 开发者
|
||||
|
||||
- [kaixed](https://git.kaixed.com/kaixed)
|
||||
|
||||
## 许可
|
||||
|
||||
```
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2024 kaixed
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
```
|
||||
|
Loading…
Reference in New Issue
Block a user