- 第1章 学习指南【课程提供350+问题与答案库】
【你遇到的坑,别人已经出坑了,课程提供350+问题与答案库】简单介绍课程适应人群以及主要的实现方案和课程的分节说明;除此之外展示APP使用效果同时了解IM相关协议并对比现有的IM实现方案。当然现如今IM已经不是一个APP而是一个SDK,趋近于嵌入到任何APP中使用;这也是IM推送聊天技术的主要使用场景。...
- 1-1 课程概述
- 1-2 入门须知
- 1-3 IM四大协议
- 1-4 实现方案与选型
- 第2章 推送和存储平台准备
这一章是推送方案的基础,在本章中选取了第三方平台以及文件存储平台。推送平台负责消息的送达,而OSS存储服务负责资源文件的存储与访问工作。
- 2-1 第三方平台对比选型及注意事项
- 2-2 推送平台相关配置工作
- 2-3 OSS存储相关配置工作
- 第3章 项目前后端项目搭建与准备
这是项目的基础章节;在本章中讲解了项目的导入注意事项,让同学们无忧导入到开发中。同时就使用到的必须控件和类进行抽取和封装;当然在项目开始之初将带领代价尝试使用MVP开发的流程。
- 3-1 服务器端代码导入与介绍
- 3-2 新建项目与数据库配置
- 3-3 完成第一个Restful接口
- 3-4 客户端代码介绍与导入指南
- 3-5 客户端封装Activity和Fragment-1
- 3-6 客户端封装Activity和Fragment-2
- 3-7 客户端封装Recycler-1
- 3-8 客户端封装Recycler-2
- 3-9 初次体验MVP模式开发
- 第4章 客户端基础模块封装
在本章节中讲解了主界面的搭建以及图片选择,预览等功能的封装;当然图片的应用需要网络支持,所以在最后实现了图片上传到OSS的相关实现。
- 4-1 主界面搭建外层封装-1
- 4-2 主界面搭建外层封装-2
- 4-3 主界面搭建外层封装-3
- 4-4 主界面搭建外层封装-4
- 4-5 主界面搭建外层封装-5
- 4-6 主界面底部导航栏封装-1
- 4-7 主界面底部导航栏封装-2
- 4-8 主界面底部导航栏封装-3
- 4-9 主界面底部导航栏封装-4
- 4-10 主界面底部导航栏封装-5
- 4-11 主界面底部导航栏封装-6
- 4-12 图片选择器功能实现-1
- 4-13 图片选择器功能实现-2
- 4-14 图片选择器功能实现-3
- 4-15 图片选择器功能实现-4
- 4-16 图片剪切功能实现-1
- 4-17 图片剪切功能实现-2
- 4-18 图片剪切功能实现-3
- 4-19 图片剪切功能实现-4
- 4-20 图片剪切功能实现-5
- 4-21 图片上传功能实现-1
- 4-22 图片上传功能实现-2
- 4-23 图片上传功能实现-3
- 4-24 图片上传功能实现-4
- 4-25 图片上传功能实现-5
- 4-26 图片上传功能实现-6
- 4-27 图片上传功能实现-7
- 4-28 图片上传功能实现-8
- 4-29 图片上传功能实现-9
- 第5章 项目数据库模型设计
一切的业务操作最终都将反映到数据模型的关系上;本章是重点也是一个难点!在本章中我们能学到数据库模型的所有设计与关系;知晓用户、群组、消息之间的相互关系;并且领略Code先行的乐趣。
- 5-1 用户信息模型设计
- 5-2 人与人的关系设计-1
- 5-3 人与人的关系设计-2
- 5-4 消息的模型设计
- 5-5 用户和消息的关系
- 5-6 群组模型设计
- 5-7 用户-群组-消息的关系设计
- 5-8 消息历史与申请表设计
- 第6章 用户模块的开发
本章将首先带大家实现服务端注册,登录和更新用户信息的API编写,然后带大家实现APP端注册,登录和更新用户信息的功能,让大家充分掌握用户模块的整体开发
- 6-1 后台注册接口编写-1
- 6-2 后台注册接口编写-2
- 6-3 后台注册接口编写-3
- 6-4 后台注册接口编写-4
- 6-5 后台登录接口编写-1
- 6-6 后台登录接口编写-2
- 6-7 后台登录接口编写-3
- 6-8 后台登录接口编写-4
- 6-9 后台登录接口编写-5
- 6-10 后台更新用户信息接口编写-1
- 6-11 后台更新用户信息接口编写-2
- 6-12 客户端注册功能实现-1
- 6-13 客户端注册功能实现-2
- 6-14 客户端注册功能实现-3
- 6-15 客户端注册功能实现-4
- 6-16 客户端注册功能实现-5
- 6-17 客户端注册功能实现-6
- 6-18 客户端注册功能实现-7
- 6-19 客户端注册功能实现-8
- 6-20 客户端注册功能实现-9
- 6-21 客户端注册功能实现-10
- 6-22 客户端登录功能实现-1
- 6-23 客户端登录功能实现-2
- 6-24 客户端登录功能实现-3
- 6-25 客户端登录功能实现-4
- 6-26 客户端登录功能实现-5
- 6-27 客户端登录功能实现-6
- 6-28 客户端登录功能实现-7
- 6-29 客户端登录功能实现-8
- 6-30 客户端用户信息完善功能实现-1
- 6-31 客户端用户信息完善功能实现-2
- 6-32 客户端用户信息完善功能实现-3
- 6-33 客户端用户信息完善功能实现-4
- 6-34 客户端用户信息完善功能实现-5
- 6-35 客户端用户信息完善功能实现-6
- 6-36 客户端用户信息完善功能实现-7
- 第7章 好友新增与管理功能实现
在本章节中我们通过搜索界面入口实现了搜索人功能,同时基于之上实现了关注以及好友列表的功能;与此同时我们实现了对用户信息的查看,方便好友添加等功能之间的衔接。
- 7-1 服务器联系人和关注人接口实现-1
- 7-2 服务器联系人和关注人接口实现-2
- 7-3 服务器联系人和关注人接口实现-1
- 7-4 服务器联系人和关注人接口实现-2
- 7-5 服务器搜索人和用户信息接口实现-1
- 7-6 服务器搜索人和用户信息接口实现-2
- 7-7 客户端实现搜索人功能-1
- 7-8 客户端实现搜索人功能-2
- 7-9 客户端实现搜索人功能-1
- 7-10 客户端实现搜索人功能-2
- 7-11 客户端实现搜索人功能
- 7-12 客户端实现添加联系人功能
- 7-13 客户端实现联系人列表功能
- 7-14 客户端实现联系人列表功能
- 7-15 客户端实现联系人列表功能-1
- 7-16 客户端实现联系人列表功能-2
- 7-17 客户端实现联系人列表功能-3
- 7-18 客户端实现个人信息界面-1
- 7-19 客户端实现个人信息界面-2
- 第8章 客户端数据操作难点与解决方案
本章既是重点也是难点;一个好的APP有一整套完整的消息流程;而我们的所有操作都是基于数据库的操作,所以有必要对数据库进行消息封装,避免多余的查询消耗,优化体验。
- 8-1 浅析数据流封装的难点与必要性
- 8-2 客户端数据流封装-统一的写入-1
- 8-3 客户端数据流封装-统一的写入-2
- 8-4 客户端数据流封装-统一的写入-3
- 8-5 客户端数据流封装-统一的写入-1
- 8-6 客户端数据流封装-统一的写入-2
- 8-7 客户端数据流封装-统一通知-1
- 8-8 客户端数据流封装-统一通知-2
- 8-9 客户端数据流封装-统一通知-1
- 8-10 客户端数据流封装-统一通知-2
- 8-11 客户端数据流封装-统一通知-1
- 8-12 客户端数据流封装-统一通知-2
- 8-13 客户端数据流封装 -统一通知-1
- 8-14 客户端数据流封装- 统一通知-2
- 8-15 -客户端数据流封装-统一通知-1
- 8-16 -客户端数据流封装-统一通知-2
- 8-17 数据流封装-推送消息处理-1
- 8-18 数据流封装-推送消息处理-2
- 8-19 数据流封装-推送消息处理
- 第9章 聊天之单聊功能开发
聊天的本质是数据的传输。在本章中我们讲解服务器所需的接口实现以及客户端中消息发送队列的封装;当然在本章中还将系统性的学习消息分发流程,以及线程调度与协作的相关知识点。是非常值得认真学习与思考的章节。
- 9-1 服务器新增消息发送接口-1
- 9-2 服务器新增消息发送接口-2
- 9-3 服务器新增消息发送接口-推送测试
- 9-4 服务器新增消息发送接口-添加接口-1
- 9-5 服务器新增消息发送接口-添加接口-2
- 9-6 服务器对消息推送与未读消息的封装-1
- 9-7 服务器对消息推送与未读消息的封装-2
- 9-8 手机端聊天布局实现-1
- 9-9 手机端聊天布局实现-2
- 9-10 手机端聊天布局实现-1
- 9-11 手机端聊天布局实现-2
- 9-12 手机端聊天布局实现-3
- 9-13 手机端聊天布局实现-4
- 9-14 手机端聊天布局实现-5
- 9-15 客户端独立Cell模块实现-1
- 9-16 客户端独立Cell模块实现-2
- 9-17 客户端独立Cell模块实现-3
- 9-18 客户端独立Cell模块实现-4
- 9-19 客户端发送消息功能实现-1
- 9-20 客户端发送消息功能实现-2
- 9-21 客户端发送消息功能实现-3
- 9-22 客户端发送消息功能实现-4
- 9-23 客户端发送消息功能实现-5
- 9-24 客户端发送消息功能实现-6
- 9-25 客户端发送消息功能实现-7
- 9-26 客户端发送消息功能实现-8
- 9-27 客户端本地最近会话功能实现-1
- 9-28 客户端本地最近会话功能实现-2
- 9-29 客户端本地最近会话功能实现-3
- 9-30 客户端本地最近会话功能实现-4
- 第10章 群组聊天之准备事项
好友能聊天了,那么群组该如何实现呢?本章是群组聊天的基础,有了群组信息与与群组管理等功能才能有群组聊天。在本章中着重讲解了群组功能与个人之间的关系以及客户端与服务器的实现;包括:新增群,添加群,更改群信息等功能的实现。...
- 10-1 服务器群组相关接口引入与介绍-1
- 10-2 服务器群组相关接口引入与介绍-2
- 10-3 实现群组主要接口-新增群-1
- 10-4 实现群组主要接口-新增群-2
- 10-5 实现群组主要接口-搜索、列表、群信息-1
- 10-6 实现群组主要接口-搜索、列表、群信息-2
- 10-7 实现拉取群成员和新增群成员的接口-1
- 10-8 实现拉取群成员和新增群成员的接口-2
- 10-9 完善服务器推送的模块-1
- 10-10 完善服务器推送的模块-2
- 10-11 手机端创建群界面实现-界面布局-1
- 10-12 手机端创建群界面实现-界面布局-2
- 10-13 手机端创建群界面实现-加载可选人-1
- 10-14 手机端创建群界面实现-加载可选人-2
- 10-15 手机端创建群界面实现-完善新建逻辑-1
- 10-16 手机端创建群界面实现-完善新建逻辑-2
- 10-17 手机端搜索群功能实现-1
- 10-18 手机端搜索群功能实现-2
- 10-19 手机端我的群组功能实现-主体流程-1
- 10-20 手机端我的群组功能实现-主体流程-2
- 10-21 手机端我的群组功能实现-群成员信息-1
- 10-22 手机端我的群组功能实现-群成员信息-2
- 第11章 群组聊天之发送消息
群消息发送得益于服务器的消息分发功能;在本章中我们基于聊天的基础实现完善了群聊天界面,并且实现了群消息发送与接收并消费的整个流程。同时在本章节中我们完成了对群成员的管理界面实现。
- 11-1 群组与个人聊天界面复用性调整-1
- 11-2 群组与个人聊天界面复用性调整-2
- 11-3 完善群组聊天的所有逻辑-完善界面-1
- 11-4 完善群组聊天的所有逻辑-完善界面-2
- 11-5 完善群组聊天的所有逻辑-完善逻辑
- 11-6 群组成员列表界面完成-1
- 11-7 群组成员列表界面完成-2
- 11-8 聊天界面底部面板显示切换功能实现-1
- 11-9 聊天界面底部面板显示切换功能实现-2
- 第12章 聊天扩展之发送表情
表情是聊天的一个要素,也是聊天的一个重要组成部分。纯文字上有着表情的支持将更加丰富多彩。在本章中可以学习到:1.表情基本协议定制;2.表情的基础分发;3.表情的动态解析。
- 12-1 表情解决方案与项目资源导入
- 12-2 表情盘基础界面组件搭建-1
- 12-3 表情盘基础界面组件搭建-2
- 12-4 表情盘布局及表情资源解析显示-1
- 12-5 表情盘布局及表情资源解析显示-2
- 12-6 表情盘布局及表情资源解析显示
- 12-7 表情解析并显示的解决方案-1
- 12-8 表情解析并显示的解决方案-2
- 第13章 聊天扩展之发送图片
在本章中讲解了图片在聊天中的运用;最主要的是其中的图片压缩方案;服务器资源有限,只能通过优秀的压缩方案来缓解服务器压力与流量压力。
- 13-1 图片面板及聊天界面Cell完成-1
- 13-2 图片面板及聊天界面Cell完成-2
- 13-3 图片上传服务器与图片压缩实现-1
- 13-4 图片上传服务器与图片压缩实现-2
- 第14章 聊天扩展之语音聊天
语音是一个点缀。但聊天有了语音后将与众不同,方便的信息交流方式才是重点。在本章中将重点讲解语音的录制-压缩与转码-写入文件-上传服务器-解析播放的相关知识点。
- 14-1 语音录制的介绍及面板的实现
- 14-2 语音聊天发送与列表显示实现
- 14-3 语音下载与播放的调度实现-1
- 14-4 语音下载与播放的调度实现-2
- 14-5 语音下载与播放的调度实现
- 第15章 慕聊IM项目总结
总结整个IM应用使用的相关技术点,数据模型设计,界面布局注意事项,群组模型与用户模型关系。群组消息消费,消息分发,消息流管理的相关知识点。同时对一些希望学习的知识点进行畅想:Socket.IO/ Websocket。
- 15-1 项目相关知识点总结
- 15-2 项目完善与展望-1
- 15-3 项目完善与展望-2