收藏

带后台的IM即时通讯App 全程MVP手把手打造

Model-View-Presenter

手把手开发一个完整即时通讯App 客户端+服务端+MVP架构

难度 中级 时长 36小时55分钟 学习人数 1629 综合评分 9.98

手把手开发一个完整即时通讯App 客户端+服务端+MVP架构

  • 第1章 学习指南【课程提供350+问题与答案库】 试看 4 节 | 40分钟

    【你遇到的坑,别人已经出坑了,课程提供350+问题与答案库】简单介绍课程适应人群以及主要的实现方案和课程的分节说明;除此之外展示APP使用效果同时了解IM相关协议并对比现有的IM实现方案。当然现如今IM已经不是一个APP而是一个SDK,趋近于嵌入到任何APP中使用;这也是IM推送聊天技术的主要使用场景。...

    收起列表

    • 视频: 1-1 课程概述 (13:21) 试看
    • 视频: 1-2 入门须知 (12:24)
    • 视频: 1-3 IM四大协议 (06:38)
    • 视频: 1-4 实现方案与选型 (06:56)
  • 第2章 推送和存储平台准备 3 节 | 24分钟

    这一章是推送方案的基础,在本章中选取了第三方平台以及文件存储平台。推送平台负责消息的送达,而OSS存储服务负责资源文件的存储与访问工作。

    收起列表

    • 视频: 2-1 第三方平台对比选型及注意事项 (09:18)
    • 视频: 2-2 推送平台相关配置工作 (03:56)
    • 视频: 2-3 OSS存储相关配置工作 (10:06)
  • 第3章 项目前后端项目搭建与准备 10 节 | 203分钟

    这是项目的基础章节;在本章中讲解了项目的导入注意事项,让同学们无忧导入到开发中。同时就使用到的必须控件和类进行抽取和封装;当然在项目开始之初将带领代价尝试使用MVP开发的流程。

    收起列表

    • 视频: 3-1 服务器端代码导入与介绍 (28:42)
    • 视频: 3-2 新建项目与数据库配置 (21:58)
    • 视频: 3-3 完成第一个Restful接口 (17:59)
    • 视频: 3-4 客户端代码介绍与导入指南 (15:19)
    • 视频: 3-5 客户端封装Activity和Fragment-1 (24:17)
    • 视频: 3-6 客户端封装Activity和Fragment-2 (17:49)
    • 视频: 3-7 客户端封装Recycler-1 (27:28)
    • 视频: 3-8 客户端封装Recycler-2 (24:54)
    • 视频: 3-9 初次体验MVP模式开发 (24:26)
    • 作业: 3-10 MVP与MVC差异究竟在哪儿?
  • 第4章 客户端基础模块封装 试看 29 节 | 462分钟

    在本章节中讲解了主界面的搭建以及图片选择,预览等功能的封装;当然图片的应用需要网络支持,所以在最后实现了图片上传到OSS的相关实现。

    收起列表

    • 视频: 4-1 主界面搭建外层封装-1 (14:34) 试看
    • 视频: 4-2 主界面搭建外层封装-2 (17:03)
    • 视频: 4-3 主界面搭建外层封装-3 (16:00)
    • 视频: 4-4 主界面搭建外层封装-4 (13:06)
    • 视频: 4-5 主界面搭建外层封装-5 (14:29)
    • 视频: 4-6 主界面底部导航栏封装-1 (16:30)
    • 视频: 4-7 主界面底部导航栏封装-2 (13:28)
    • 视频: 4-8 主界面底部导航栏封装-3 (12:55)
    • 视频: 4-9 主界面底部导航栏封装-4 (18:45)
    • 视频: 4-10 主界面底部导航栏封装-5 (18:05)
    • 视频: 4-11 主界面底部导航栏封装-6 (26:32)
    • 视频: 4-12 图片选择器功能实现-1 (22:44)
    • 视频: 4-13 图片选择器功能实现-2 (28:13)
    • 视频: 4-14 图片选择器功能实现-3 (20:24)
    • 视频: 4-15 图片选择器功能实现-4 (16:39)
    • 视频: 4-16 图片剪切功能实现-1 (15:09)
    • 视频: 4-17 图片剪切功能实现-2 (12:22)
    • 视频: 4-18 图片剪切功能实现-3 (11:49)
    • 视频: 4-19 图片剪切功能实现-4 (13:56)
    • 视频: 4-20 图片剪切功能实现-5 (12:15)
    • 视频: 4-21 图片上传功能实现-1 (16:46)
    • 视频: 4-22 图片上传功能实现-2 (16:04)
    • 视频: 4-23 图片上传功能实现-3 (13:26)
    • 视频: 4-24 图片上传功能实现-4 (10:42)
    • 视频: 4-25 图片上传功能实现-5 (11:08)
    • 视频: 4-26 图片上传功能实现-6 (11:05)
    • 视频: 4-27 图片上传功能实现-7 (13:49)
    • 视频: 4-28 图片上传功能实现-8 (22:27)
    • 视频: 4-29 图片上传功能实现-9 (10:57)
  • 第5章 项目数据库模型设计 试看 9 节 | 126分钟

    一切的业务操作最终都将反映到数据模型的关系上;本章是重点也是一个难点!在本章中我们能学到数据库模型的所有设计与关系;知晓用户、群组、消息之间的相互关系;并且领略Code先行的乐趣。

    收起列表

    • 视频: 5-1 用户信息模型设计 (21:59) 试看
    • 视频: 5-2 人与人的关系设计-1 (12:57)
    • 视频: 5-3 人与人的关系设计-2 (15:07)
    • 视频: 5-4 消息的模型设计 (10:37)
    • 视频: 5-5 用户和消息的关系 (13:17)
    • 视频: 5-6 群组模型设计 (05:59)
    • 视频: 5-7 用户-群组-消息的关系设计 (19:29)
    • 视频: 5-8 消息历史与申请表设计 (26:32)
    • 作业: 5-9 数据库模型的设计是否有其必要性?
  • 第6章 用户模块的开发 36 节 | 559分钟

    本章将首先带大家实现服务端注册,登录和更新用户信息的API编写,然后带大家实现APP端注册,登录和更新用户信息的功能,让大家充分掌握用户模块的整体开发

    收起列表

    • 视频: 6-1 后台注册接口编写-1 (11:27)
    • 视频: 6-2 后台注册接口编写-2 (13:08)
    • 视频: 6-3 后台注册接口编写-3 (17:11)
    • 视频: 6-4 后台注册接口编写-4 (18:15)
    • 视频: 6-5 后台登录接口编写-1 (16:54)
    • 视频: 6-6 后台登录接口编写-2 (16:49)
    • 视频: 6-7 后台登录接口编写-3 (08:31)
    • 视频: 6-8 后台登录接口编写-4 (16:46)
    • 视频: 6-9 后台登录接口编写-5 (12:49)
    • 视频: 6-10 后台更新用户信息接口编写-1 (21:04)
    • 视频: 6-11 后台更新用户信息接口编写-2 (22:50)
    • 视频: 6-12 客户端注册功能实现-1 (11:59)
    • 视频: 6-13 客户端注册功能实现-2 (16:57)
    • 视频: 6-14 客户端注册功能实现-3 (17:31)
    • 视频: 6-15 客户端注册功能实现-4 (14:24)
    • 视频: 6-16 客户端注册功能实现-5 (14:04)
    • 视频: 6-17 客户端注册功能实现-6 (26:30)
    • 视频: 6-18 客户端注册功能实现-7 (13:16)
    • 视频: 6-19 客户端注册功能实现-8 (11:57)
    • 视频: 6-20 客户端注册功能实现-9 (24:38)
    • 视频: 6-21 客户端注册功能实现-10 (16:19)
    • 视频: 6-22 客户端登录功能实现-1 (16:46)
    • 视频: 6-23 客户端登录功能实现-2 (18:09)
    • 视频: 6-24 客户端登录功能实现-3 (14:23)
    • 视频: 6-25 客户端登录功能实现-4 (11:54)
    • 视频: 6-26 客户端登录功能实现-5 (16:09)
    • 视频: 6-27 客户端登录功能实现-6 (15:39)
    • 视频: 6-28 客户端登录功能实现-7 (19:24)
    • 视频: 6-29 客户端登录功能实现-8 (18:50)
    • 视频: 6-30 客户端用户信息完善功能实现-1 (14:26)
    • 视频: 6-31 客户端用户信息完善功能实现-2 (10:32)
    • 视频: 6-32 客户端用户信息完善功能实现-3 (10:02)
    • 视频: 6-33 客户端用户信息完善功能实现-4 (15:01)
    • 视频: 6-34 客户端用户信息完善功能实现-5 (14:27)
    • 视频: 6-35 客户端用户信息完善功能实现-6 (08:01)
    • 视频: 6-36 客户端用户信息完善功能实现-7 (11:16)
  • 第7章 好友新增与管理功能实现 19 节 | 335分钟

    在本章节中我们通过搜索界面入口实现了搜索人功能,同时基于之上实现了关注以及好友列表的功能;与此同时我们实现了对用户信息的查看,方便好友添加等功能之间的衔接。

    收起列表

    • 视频: 7-1 服务器联系人和关注人接口实现-1 (10:25)
    • 视频: 7-2 服务器联系人和关注人接口实现-2 (09:38)
    • 视频: 7-3 服务器联系人和关注人接口实现-1 (10:22)
    • 视频: 7-4 服务器联系人和关注人接口实现-2 (08:40)
    • 视频: 7-5 服务器搜索人和用户信息接口实现-1 (19:36)
    • 视频: 7-6 服务器搜索人和用户信息接口实现-2 (14:36)
    • 视频: 7-7 客户端实现搜索人功能-1 (19:16)
    • 视频: 7-8 客户端实现搜索人功能-2 (15:57)
    • 视频: 7-9 客户端实现搜索人功能-1 (17:37)
    • 视频: 7-10 客户端实现搜索人功能-2 (18:03)
    • 视频: 7-11 客户端实现搜索人功能 (15:58)
    • 视频: 7-12 客户端实现添加联系人功能 (22:59)
    • 视频: 7-13 客户端实现联系人列表功能 (30:11)
    • 视频: 7-14 客户端实现联系人列表功能 (24:09)
    • 视频: 7-15 客户端实现联系人列表功能-1 (15:11)
    • 视频: 7-16 客户端实现联系人列表功能-2 (15:05)
    • 视频: 7-17 客户端实现联系人列表功能-3 (18:34)
    • 视频: 7-18 客户端实现个人信息界面-1 (16:06)
    • 视频: 7-19 客户端实现个人信息界面-2 (31:29)
  • 第8章 客户端数据操作难点与解决方案 20 节 | 304分钟

    本章既是重点也是难点;一个好的APP有一整套完整的消息流程;而我们的所有操作都是基于数据库的操作,所以有必要对数据库进行消息封装,避免多余的查询消耗,优化体验。

    收起列表

    • 视频: 8-1 浅析数据流封装的难点与必要性 (19:34)
    • 视频: 8-2 客户端数据流封装-统一的写入-1 (11:03)
    • 视频: 8-3 客户端数据流封装-统一的写入-2 (08:32)
    • 视频: 8-4 客户端数据流封装-统一的写入-3 (17:53)
    • 视频: 8-5 客户端数据流封装-统一的写入-1 (13:04)
    • 视频: 8-6 客户端数据流封装-统一的写入-2 (12:19)
    • 视频: 8-7 客户端数据流封装-统一通知-1 (15:24)
    • 视频: 8-8 客户端数据流封装-统一通知-2 (14:36)
    • 视频: 8-9 客户端数据流封装-统一通知-1 (12:37)
    • 视频: 8-10 客户端数据流封装-统一通知-2 (12:13)
    • 视频: 8-11 客户端数据流封装-统一通知-1 (19:57)
    • 视频: 8-12 客户端数据流封装-统一通知-2 (21:30)
    • 视频: 8-13 客户端数据流封装 -统一通知-1 (15:53)
    • 视频: 8-14 客户端数据流封装- 统一通知-2 (15:57)
    • 视频: 8-15 -客户端数据流封装-统一通知-1 (19:27)
    • 视频: 8-16 -客户端数据流封装-统一通知-2 (19:31)
    • 视频: 8-17 数据流封装-推送消息处理-1 (21:23)
    • 视频: 8-18 数据流封装-推送消息处理-2 (18:43)
    • 视频: 8-19 数据流封装-推送消息处理 (14:13)
    • 作业: 8-20 在数据流封装过程中你学到了什么?
  • 第9章 聊天之单聊功能开发 30 节 | 388分钟

    聊天的本质是数据的传输。在本章中我们讲解服务器所需的接口实现以及客户端中消息发送队列的封装;当然在本章中还将系统性的学习消息分发流程,以及线程调度与协作的相关知识点。是非常值得认真学习与思考的章节。

    收起列表

    • 视频: 9-1 服务器新增消息发送接口-1 (18:20)
    • 视频: 9-2 服务器新增消息发送接口-2 (15:44)
    • 视频: 9-3 服务器新增消息发送接口-推送测试 (06:59)
    • 视频: 9-4 服务器新增消息发送接口-添加接口-1 (14:03)
    • 视频: 9-5 服务器新增消息发送接口-添加接口-2 (14:42)
    • 视频: 9-6 服务器对消息推送与未读消息的封装-1 (16:55)
    • 视频: 9-7 服务器对消息推送与未读消息的封装-2 (21:32)
    • 视频: 9-8 手机端聊天布局实现-1 (10:42)
    • 视频: 9-9 手机端聊天布局实现-2 (09:11)
    • 视频: 9-10 手机端聊天布局实现-1 (08:15)
    • 视频: 9-11 手机端聊天布局实现-2 (08:21)
    • 视频: 9-12 手机端聊天布局实现-3 (14:07)
    • 视频: 9-13 手机端聊天布局实现-4 (14:30)
    • 视频: 9-14 手机端聊天布局实现-5 (14:12)
    • 视频: 9-15 客户端独立Cell模块实现-1 (13:20)
    • 视频: 9-16 客户端独立Cell模块实现-2 (13:36)
    • 视频: 9-17 客户端独立Cell模块实现-3 (12:01)
    • 视频: 9-18 客户端独立Cell模块实现-4 (11:54)
    • 视频: 9-19 客户端发送消息功能实现-1 (11:55)
    • 视频: 9-20 客户端发送消息功能实现-2 (11:58)
    • 视频: 9-21 客户端发送消息功能实现-3 (10:41)
    • 视频: 9-22 客户端发送消息功能实现-4 (10:37)
    • 视频: 9-23 客户端发送消息功能实现-5 (14:53)
    • 视频: 9-24 客户端发送消息功能实现-6 (11:13)
    • 视频: 9-25 客户端发送消息功能实现-7 (12:50)
    • 视频: 9-26 客户端发送消息功能实现-8 (13:14)
    • 视频: 9-27 客户端本地最近会话功能实现-1 (10:15)
    • 视频: 9-28 客户端本地最近会话功能实现-2 (10:10)
    • 视频: 9-29 客户端本地最近会话功能实现-3 (15:21)
    • 视频: 9-30 客户端本地最近会话功能实现-4 (15:30)
  • 第10章 群组聊天之准备事项 22 节 | 283分钟

    好友能聊天了,那么群组该如何实现呢?本章是群组聊天的基础,有了群组信息与与群组管理等功能才能有群组聊天。在本章中着重讲解了群组功能与个人之间的关系以及客户端与服务器的实现;包括:新增群,添加群,更改群信息等功能的实现。...

    收起列表

    • 视频: 10-1 服务器群组相关接口引入与介绍-1 (13:47)
    • 视频: 10-2 服务器群组相关接口引入与介绍-2 (16:05)
    • 视频: 10-3 实现群组主要接口-新增群-1 (15:05)
    • 视频: 10-4 实现群组主要接口-新增群-2 (16:00)
    • 视频: 10-5 实现群组主要接口-搜索、列表、群信息-1 (08:09)
    • 视频: 10-6 实现群组主要接口-搜索、列表、群信息-2 (10:07)
    • 视频: 10-7 实现拉取群成员和新增群成员的接口-1 (14:01)
    • 视频: 10-8 实现拉取群成员和新增群成员的接口-2 (14:53)
    • 视频: 10-9 完善服务器推送的模块-1 (14:09)
    • 视频: 10-10 完善服务器推送的模块-2 (15:36)
    • 视频: 10-11 手机端创建群界面实现-界面布局-1 (13:58)
    • 视频: 10-12 手机端创建群界面实现-界面布局-2 (13:23)
    • 视频: 10-13 手机端创建群界面实现-加载可选人-1 (09:39)
    • 视频: 10-14 手机端创建群界面实现-加载可选人-2 (08:30)
    • 视频: 10-15 手机端创建群界面实现-完善新建逻辑-1 (13:36)
    • 视频: 10-16 手机端创建群界面实现-完善新建逻辑-2 (13:49)
    • 视频: 10-17 手机端搜索群功能实现-1 (08:57)
    • 视频: 10-18 手机端搜索群功能实现-2 (11:11)
    • 视频: 10-19 手机端我的群组功能实现-主体流程-1 (15:00)
    • 视频: 10-20 手机端我的群组功能实现-主体流程-2 (15:28)
    • 视频: 10-21 手机端我的群组功能实现-群成员信息-1 (06:47)
    • 视频: 10-22 手机端我的群组功能实现-群成员信息-2 (14:09)
  • 第11章 群组聊天之发送消息 10 节 | 127分钟

    群消息发送得益于服务器的消息分发功能;在本章中我们基于聊天的基础实现完善了群聊天界面,并且实现了群消息发送与接收并消费的整个流程。同时在本章节中我们完成了对群成员的管理界面实现。

    收起列表

    • 视频: 11-1 群组与个人聊天界面复用性调整-1 (18:05)
    • 视频: 11-2 群组与个人聊天界面复用性调整-2 (12:15)
    • 视频: 11-3 完善群组聊天的所有逻辑-完善界面-1 (16:26)
    • 视频: 11-4 完善群组聊天的所有逻辑-完善界面-2 (16:35)
    • 视频: 11-5 完善群组聊天的所有逻辑-完善逻辑 (09:19)
    • 视频: 11-6 群组成员列表界面完成-1 (11:58)
    • 视频: 11-7 群组成员列表界面完成-2 (13:10)
    • 视频: 11-8 聊天界面底部面板显示切换功能实现-1 (16:09)
    • 视频: 11-9 聊天界面底部面板显示切换功能实现-2 (12:11)
    • 作业: 11-10 群组消息与个人消息的本质区别在哪儿?
  • 第12章 聊天扩展之发送表情 8 节 | 111分钟

    表情是聊天的一个要素,也是聊天的一个重要组成部分。纯文字上有着表情的支持将更加丰富多彩。在本章中可以学习到:1.表情基本协议定制;2.表情的基础分发;3.表情的动态解析。

    收起列表

    • 视频: 12-1 表情解决方案与项目资源导入 (11:01)
    • 视频: 12-2 表情盘基础界面组件搭建-1 (15:10)
    • 视频: 12-3 表情盘基础界面组件搭建-2 (14:21)
    • 视频: 12-4 表情盘布局及表情资源解析显示-1 (15:03)
    • 视频: 12-5 表情盘布局及表情资源解析显示-2 (15:21)
    • 视频: 12-6 表情盘布局及表情资源解析显示 (16:32)
    • 视频: 12-7 表情解析并显示的解决方案-1 (11:49)
    • 视频: 12-8 表情解析并显示的解决方案-2 (11:14)
  • 第13章 聊天扩展之发送图片 4 节 | 43分钟

    在本章中讲解了图片在聊天中的运用;最主要的是其中的图片压缩方案;服务器资源有限,只能通过优秀的压缩方案来缓解服务器压力与流量压力。

    收起列表

    • 视频: 13-1 图片面板及聊天界面Cell完成-1 (10:26)
    • 视频: 13-2 图片面板及聊天界面Cell完成-2 (09:05)
    • 视频: 13-3 图片上传服务器与图片压缩实现-1 (12:16)
    • 视频: 13-4 图片上传服务器与图片压缩实现-2 (10:44)
  • 第14章 聊天扩展之语音聊天 6 节 | 75分钟

    语音是一个点缀。但聊天有了语音后将与众不同,方便的信息交流方式才是重点。在本章中将重点讲解语音的录制-压缩与转码-写入文件-上传服务器-解析播放的相关知识点。

    收起列表

    • 视频: 14-1 语音录制的介绍及面板的实现 (17:41)
    • 视频: 14-2 语音聊天发送与列表显示实现 (16:20)
    • 视频: 14-3 语音下载与播放的调度实现-1 (10:57)
    • 视频: 14-4 语音下载与播放的调度实现-2 (11:17)
    • 视频: 14-5 语音下载与播放的调度实现 (17:46)
    • 作业: 14-6 如何扩展音频视频聊天?
  • 第15章 慕聊IM项目总结 3 节 | 39分钟

    总结整个IM应用使用的相关技术点,数据模型设计,界面布局注意事项,群组模型与用户模型关系。群组消息消费,消息分发,消息流管理的相关知识点。同时对一些希望学习的知识点进行畅想:Socket.IO/ Websocket。

    收起列表

    • 视频: 15-1 项目相关知识点总结 (14:19)
    • 视频: 15-2 项目完善与展望-1 (11:55)
    • 视频: 15-3 项目完善与展望-2 (12:13)
本课程已完结

试看

全部试看小节



讲师

Qiujuer 移动开发工程师

现就职于美图,曾任开源中国Android负责人,主要技术方向为Android,同时略带有.Net、 C 的气息,开发过众多项目,具有代表性的有:UPMiss,OSC众包,开源中国APP等

讲师其他课程

课程预览

检测到您还没有关注慕课网服务号,无法接收课程更新通知。请扫描二维码即可绑定
重新观看
意见反馈 帮助中心 APP下载
官方微信

学习咨询

选课、学习遇到问题?

扫码添加指导老师 1V1 帮助你!

添加后老师会第一时间解决你的问题