/VMTemplateAndroid

一套包含了社区匹配聊天语音以及直播相关的社交系统模板项目

Primary LanguageKotlinMIT LicenseMIT

VMTemplateAndroid

一套包含了社区匹配聊天语音以及直播相关的社交系统模板项目,包括服务器端以及 Android 客户端

项目资源均来自于互联网,如果有侵权请联系我

背景及选型

一直以来都是标榜自己是一个喜欢开源的程序猿,一直想做一款能够被大家认同的开源项目,也是想提供给广大的新手程序猿一个比较完整系统的社交系统以供参考,因此有了这一套社交系统模板项目, 当前模板项目主要功能可以看下边的 功能与TODO

在实现社交相关项目时,少不了 IM 及时聊天功能,这里选择了自己比较熟悉的环信三方 SDK,环信 IMSDK 能够比较方便的实现自定义扩展功能,比如会话扩展,消息扩展等,消息效果可以看下方 项目截图

通话方面这里选择了声网提供的服务,看了下他们提供的功能还是比较多的,这里主要用到了语音通话,以及变声效果处理,他们还提供了更多场景使用,比如教育,直播等,更多功能大家可以搜索他们官网查看,通话效果可以看下方 项目截图

开发环境

项目基本属于在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聊天与通话模块儿,这是为了方便大家引用到自己的项目中做的一步封装,不用再去复杂的复制代码和资源等,只需要将vmimmodule导入到自己的项目中就行了,具体使用方式参见项目app模块儿;

功能与TODO

IM部分功能

  • 链接监听
  • 登录注册
  • 会话功能
    • 置顶
    • 标为未读
    • 删除与清空
    • 草稿功能
  • 聊天功能
    • [x]消息类型
      • 文本消息
      • 图片消息
        • 查看大图
        • 保存图片
    • 消息处理
      • 删除
      • 撤回
      • 复制(仅文本可复制)
    • 昵称头像处理(通过回调实现)
    • 头像点击(回调到 App 层)
    • 语音实时通话功能
      • 1V1音频通话
      • 静音、扬声器播放
      • 音效变声
  • 解忧茶室
    • 创建房间
    • 发送消息
      • 文本消息
      • 鼓励消息
    • 上下麦处理
    • 音效变声(彩蛋功能)

App部分功能

  • 登录注册(包括业务逻辑和 IM 逻辑)
  • 首页
    • 自己的状态
    • 拉取其他人的状态信息
    • 心情匹配
    • 解忧聊天室
  • 聊天(这里直接加载 IM 模块儿)
  • 发现
    • 发布内容
    • 喜欢操作
    • 详情展示
      • 喜欢操作
      • 评论获取
      • 添加评论
  • 我的
    • 个人信息展示
    • 上传头像、封面
    • 设置昵称、签名、职业、地址、生日、性别等
    • 邮箱绑定
    • 个人发布与喜欢内容展示
  • 设置
    • 个人信息设置
    • 深色模式适配
    • 通知设置
    • 资源加载设置
    • 关于
      • 检查更新
      • 问题反馈
    • 环境切换
    • 退出

发布功能

  • 多渠道打包
  • 签名配置
  • 开发与线上环境配置
  • 敏感信息保护

配置运行

  1. 首先复制config.default.gradleconfig.gradle
  2. 配置下config.gradle内相关字段
  3. 正式打包需要自己生成签名文件,然后修改下config.gradlesignings签名信息
  4. 需配合服务器端一起使用,修改上边config.gradle配置文件的baseDebugUrlbaseReleaseUrl

参与贡献

如果你有什么好的想法,或者好的实现,可以通过下边的步骤参与进来,让我们一起把这个项目做得更好,欢迎参与 😁

  1. Fork本仓库
  2. 新建feature_xxx分支 (单独创建一个实现你自己想法的分支)
  3. 提交代码
  4. 新建Pull Request
  5. 等待Review & Merge

其他

下载体验 这就是一个使用当前模板运营的一个项目

项目截图

这里简单截取了几个界面,更多功能自己去发现吧

matchHome matchExplore matchMsg matchMine matchChat matchChatFast matchCall matchAbout matchInfo matchAbout

交流

QQ群: 901211985 个人QQ: 1565176197

QQ 交流群 个人 QQ

支持赞助

如果你觉得当前项目帮你节省了开发时间,想要支持赞助我的话👍,可以扫描下方的二维码打赏请我吃个鸡腿🍗,你的支持将鼓励我继续创作👨‍💻‍,感谢☺️ 赞助列表

支付宝捐赠 微信捐赠

LICENSE

MIT License Copyright (c) 2021 lzan13