星联 — 类微信即时通讯App https://blog.kaixed.com/p/kchat.html
Go to file
2025-02-12 20:23:38 +08:00
.idea refactor: 优化部分代码 2025-02-12 20:23:38 +08:00
app refactor: 优化部分代码 2025-02-12 20:23:38 +08:00
gradle feat: 增加接口签名验证 2025-01-26 09:51:28 +08:00
.gitignore fix: 取消上传release目录 2024-12-30 15:42:52 +08:00
build.gradle.kts feat: 新增二维码扫描加好友功能 2024-12-30 15:41:05 +08:00
gradle.properties fix: 完善聊天界面功能面板 2024-10-29 22:35:49 +08:00
gradlew Initial commit 2024-08-16 21:45:16 +08:00
gradlew.bat Initial commit 2024-08-16 21:45:16 +08:00
kchat.jks feat: 新增二维码扫描加好友功能 2024-12-30 15:41:05 +08:00
README.md refactor: 优化部分代码 2025-02-12 20:23:38 +08:00
settings.gradle.kts feat: 新增二维码扫描加好友功能 2024-12-30 15:41:05 +08:00

星联 — 简单的即时通讯应用

欢迎使用 星联,这是一款简单轻量的即时通讯应用,旨在展示如何使用现代 Android 开发技术构建一个基础的聊天应用。该项目实现了基本的聊天功能,并参考 MVVM 架构KotlinLiveDataObjectBox 数据库


功能概览

功能演示

主界面 主界面 聊天界面 联系人界面
联系人详情页 朋友圈界面 个人主页 个人详细信息

核心功能

  • 实时消息传输:通过 WebSocket 实现即时通讯,确保消息快速、实时传输。
  • 支持文本、图片消息:用户可以发送文字、图片、音频和文件,满足不同的交流需求。
  • 添加/删除好友:用户可以添加好友或移除不需要的好友。
  • 搜索功能:支持通过关键词在聊天记录中搜索消息,同时支持按文件类型筛选。
  • 修改个人信息:用户可以修改昵称、头像、个性签名等个人信息,提升个性化体验。
  • 修改用户密码:用户可以更新自己的密码。
  • 离线消息:即使用户离线,服务器也会缓存消息,并在用户上线后自动同步到设备。
  • 查看好友动态:支持查看好友分享的动态内容,形式包括文字、图片和视频,用户可以点赞或评论。
  • 支持多媒体消息:支持发送音频、视频、文件等多种格式,满足用户不同的交流需求。
  • 群聊支持:用户可以创建群组,与多人实时互动,并支持群管理功能(如设置群管理员、踢人)。
  • 消息通知:支持推送通知,提醒用户有新的消息,未读消息可在通知栏中展示摘要。

其他特性

  • 消息加密:所有用户消息在传输过程中都进行端到端加密,确保通信安全,防止信息泄露。
  • 个性化设置:支持用户自定义头像、昵称、聊天背景,提供多种预设主题和自定义选项。
  • 深色/浅色模式:支持自动或手动切换界面主题,适配不同的光线环境和用户偏好。

技术栈

  • KotlinKotlin 是一种现代化的 Android 开发语言,语法简洁、功能强大,能有效提高开发效率和代码可维护性。
  • MVVM 架构:通过 ViewModelLiveData 管理 UI 和数据的分离。未使用DataBinding只使用ViewBinding进行简化视图查找
  • ObjectBox作为轻量级的数据库ObjectBox 提供了高效的存储和快速查询能力,适合实时消息应用的本地数据存储需求。
  • WebSocket: 用于实现即时通信,低延迟并支持双向通信,确保实时数据传输。

安装与配置

1. 克隆项目

首先,将项目克隆到本地:

git clone https://git.kaixed.com/你的用户名/kchat.git
cd kchat

2. 设置项目依赖

打开 Android Studio点击 Sync Project with Gradle Files 以同步所有依赖项。

3. 运行应用

在 Android Studio 中选择一个设备或模拟器,点击运行按钮即可启动应用。


使用说明

  1. 配置后端服务
  2. 更改App中的后端链接

目录结构

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我们会尽快审查并合并你的代码。

在贡献代码之前,请确保遵循以下准则:

  • 提交前请确保代码已经通过了所有测试。
  • 提交时请附带详细的提交信息,描述你所做的修改。
  • 如果你增加了新功能,请提供相关的文档和测试用例。

问题反馈

如果你在使用过程中遇到任何问题,或者有任何建议,可以通过以下方式联系我们:


开发者

许可

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.