前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信聊天项目

微信聊天项目

原创
作者头像
大发明家
发布2021-12-18 11:36:55
2.1K0
发布2021-12-18 11:36:55
举报
文章被收录于专栏:技术博客文章

效果图

登录/会话界面/通讯录/聊天界面/自定义表情/更多界面

群聊详情/好友详情/添加朋友/发送位置

深色模式/音视频通话界面

已有功能

  • 登录注册,退出
  • 更改用户昵称,头像
  • 添加好友,群
  • 发送消息:支持文本,图片,视频,文件,Emoji,大表情,位置,语音
  • 支持单聊,群聊音视频通话
  • 群聊功能:创建群聊,解散群聊,更改群聊资料,设置禁言,设置管理员,邀请/移除成员,设置群名片
  • 消息离线推送:目前集成了小米推送
  • 转发消息:因为SDK不支持,目前只能转发文本消息
  • 引用消息:因为SDK不支持,目前只能引用文本消息
  • 全局搜索:因为SDK不知道,目前只能本地搜索我添加的好友,添加的群聊
  • 二维码:显示我的,好友,群聊二维码,并支持扫描二维码
  • 其他聊天功能:会话置顶,会话免打扰(因为SDK不支持,单聊离线消息无效),标记未读,设置聊天界面背景
  • 统计服务:集成了Umeng,支持总用户,活跃,崩溃统计
  • 其他功能:文件预览,深色模式

已经实现的功能

  • 重构音视频通话封装:目前封装用的官方Demo提供的代码,个人觉得他们封装的不是很好,期望封装后,能实现支持关闭通话界面:类似微信那样,同时通话中邀请人加入,在群里界面能主动加入等。
  • 聊天界面表情和键盘切换会有跳动,可以参考这个两个开源项目(好像没有这问题):SmartKeyboardManager,MyEmjkeyBoard。
  • 预览当前位置媒体文件,其他位置视频媒体会播放。
  • 重写图片选择框架,主要是重构代码,和布局,让功能更完善,界面更美观,扩展性更强,期望最后能单独开源。
  • 重构对话框功能,主要是重构代码,和布局,让功能更完善,界面更美观,扩展性更强,期望最后能单独开源。
  • 重构选择文件功能,主要是重构代码,和布局,让功能更完善,界面更美观,扩展性更强,期望最后能单独开源。
  • 重构群聊天界面,和我不相关的音视频通话消息,消息为加群那样的简单提示。
  • 重构项目,将大部分功能更改为更适合Jetpack规范的实现。
  • 内测泄露和性能优化:目前项目还有些地方有内存泄露,部分功能写法性能也不是很好。
  • 禁言后不能在转发消息到该会话。
  • 应用后台,如果应用被系统杀死,再返回,直接调用腾讯SDK会报错未登陆,需要腾讯SDK,但如果每次调用前都检查是否登录,会比较复杂,目前还没找到好的解决方法。
  • 如果是点击音视频通话通知进入启动界面,不要显示等待时间。

还未实现的功能

  • 转发消息时能预览消息,类似微信,QQ转发消息效果。
  • 播放语音消息时,实现类型微信,钉钉那样靠近耳朵时切换听筒播放。
  • 实现能从系统分享各种型类型消息到我们应用,类型微信,QQ等。
  • 集成其他厂商离线推送通话。
  • 支持转账,发送红包。
  • 实现类型微信公众号基础功能:例如:后台可以设置某个账号为公众号,然后可以配置菜单,并能自动做出一些回复。

期望最终效果

  • 除了第三方SDK无法实现,或者不好实现的功能外,其他功能都能使用,并且能稳定,达到可以上线运营的状态。
  • 后面还有用融云即时通讯服务/WebSocket单独实现两个版本。

用途

  • 学习,毕业设计,面试项目
  • 基于该项目上线运营,或者做外包,或者内部私有聊天(这个版本音视使用第三方SDK,无法使用部署,后面WebSocket实现的版本才能);交互请勿直接商用。

开发环境

Android客户端:Android Studio 4.1 + Kotlin 1.4 + Gradle 6.5

Spring Boot服务端:IntelliJ IDEA 2020 + Java 15 + Gradle 6.7

服务端数据库:MySQL,开发环境8.0 + 线上环境5.7

项目开发环境:macOS 11.2 + Java 15

核心知识点

Kotlin,Jetpack,MVVM,Flow,MVC,矢量图,Lifecycle,动态权限,Emoji,EventBus,高德地图,视频播放,Hilt依赖注入,内存泄漏检测和修复,腾讯即时通讯,腾讯实时音视频。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
目录
  • 效果图
  • 已有功能
  • 已经实现的功能
  • 还未实现的功能
  • 期望最终效果
  • 用途
  • 开发环境
  • 核心知识点
相关产品与服务
实时音视频
实时音视频(Tencent RTC)基于腾讯21年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档