一套包含了社区匹配聊天以及语音互动直播相关的社交系统模板项目
社交模板项目
一套包含了社区匹配聊天语音以及直播相关的社交系统模板项目,包括服务器端以及 Android
客户端
项目资源均来自于互联网,如果有侵权请联系我
背景及选型
一直以来都是标榜自己是一个喜欢开源的程序猿,一直想做一款能够被大家认同的开源项目,也是想提供给广大的新手程序猿一个比较完整系统的社交系统以供参考,因此有了这一套社交系统模板项目, 当前模板项目主要功能可以看下边的 功能与TODO
在实现社交相关项目时,少不了 IM
及时聊天功能,这里选择了自己比较熟悉的环信三方 SDK
,环信 IMSDK 能够比较方便的实现自定义扩展功能,比如会话扩展,消息扩展等,消息效果可以看下方 项目截图
通话方面这里选择了声网提供的服务,看了下他们提供的功能还是比较多的,这里主要用到了语音通话,以及变声效果处理,感觉集成还是比较方便的,之前没用过的情况下,其实两天就搞定了 1V1 通话和多人互动通话的功能,他们还提供了更多场景使用,比如教育,直播等,更多功能大家可以搜索他们官网查看,通话效果可以看下方 项目截图
开发环境
项目基本属于在Android
开发环境下开发,全局使用Kotlin
语言,项目已经适配Android6.x
以上的动态权限适配,以及7.x
的文件选择,和8.x
的通知提醒,10.x
的文件选择等;
- 开发系统:Mac OS 11.1
- 开发工具:Android Studio 4.2
- 打包工具:Gradle 4.2.0
- 开发语言:Kotlin 1.4.32
项目模块儿
app
是项目主模块儿,这部分主要包含了项目的业务逻辑,比如匹配、内容发布,信息展示等vmcommon
是项目基础模块儿,这部分主要包含了项目的基类封装,依赖管理,包括网络请求,图片加载等工具类vmim
聊天与通话模块儿,这是为了方便大家引用到自己的项目中做的一步封装,不用再去复杂的复制代码和资源等,只需要将vmim
以module
导入到自己的项目中就行了,具体使用方式参见项目app
模块儿;
功能与TODO
IM部分功能
- 链接监听
- 登录注册
- 会话功能
- 置顶
- 标为未读
- 删除与清空
- 草稿功能
- 聊天功能
- [x]消息类型
- 文本消息
- 图片消息
- 查看大图
- 保存图片
- 消息处理
- 删除
- 撤回
- 复制(仅文本可复制)
- 昵称头像处理(通过回调实现)
- 头像点击(回调到 App 层)
- 语音实时通话功能
- 1V1音频通话
- 静音、扬声器播放
- 音效变声
- [x]消息类型
- 解忧茶室
- 创建房间
- 发送消息
- 文本消息
- 鼓励消息
- 上下麦处理
- 音效变声(彩蛋功能)
App部分功能
- 登录注册(包括业务逻辑和 IM 逻辑)
- 首页
- 自己的状态
- 拉取其他人的状态信息
- 心情匹配
- 解忧聊天室
- 聊天(这里直接加载 IM 模块儿)
- 发现
- 发布内容
- 喜欢操作
- 详情展示
- 喜欢操作
- 评论获取
- 添加评论
- 我的
- 个人信息展示
- 上传头像、封面
- 设置昵称、签名、职业、地址、生日、性别等
- 邮箱绑定
- 个人发布与喜欢内容展示
- 设置
- 个人信息设置
- 深色模式适配
- 通知设置
- 资源加载设置
- 关于
- 检查更新
- 问题反馈
- 环境切换
- 退出
发布功能
- 多渠道打包
- 签名配置
- 开发与线上环境配置
- 敏感信息保护
配置运行
- 首先复制
config.default.gradle
到config.gradle
- 配置下
config.gradle
内相关字段 - 正式打包需要自己生成签名文件,然后修改下
config.gradle
的signings
签名信息 - 需配合服务器端一起使用,修改上边
config.gradle
配置文件的baseDebugUrl
和baseReleaseUrl
参与贡献
如果你有什么好的想法,或者好的实现,可以通过下边的步骤参与进来,让我们一起把这个项目做得更好,欢迎参与 😁
Fork
本仓库- 新建
feature_xxx
分支 (单独创建一个实现你自己想法的分支) - 提交代码
- 新建
Pull Request
- 等待
Review & Merge
其他
- 服务器 github/vmtemplateserver gitee/vmtemplateserver 服务器端项目使用
eggjs
框架实现 - 项目介绍 项目整体介绍说明
- 更新记录
下载体验
这就是一个使用当前模板运营的一个项目
项目截图
这里简单截取了几个界面,更多功能自己去发现吧
交流
QQ群: 901211985 个人QQ: 1565176197