从零开始搭建app-outline
[TOC]
前言
这是一款视频直播教育软件.
- 提供基于LBS的找课服务
- 支持线上和线下两种方式的上课服务
- 提供多种在线互动形式 (聊天室,答题,连麦,教学白板……)
- 整理了完整的教学评估体系(老师学生打分体系,课后复习,课程记录……)
APP框架

设计细化
app目标:
- 搭建一个灵活易用,脱离业务,方便快速迭代的app 
- 基于之前的工作经验,挑选合适的第三方开源库赋能,并 - 在这个过程中学习这些优秀开源库的设计思想(尤其是facebook 和 google的) 
- 该app符合growth hacker的理念,能够支持快速试错,用数 - 据化推动产品演化路径 
包结构图

| 1 | package overview: | 
第三方依赖库
| 依赖库 | 说明 | 
|---|---|
| com.squareup.okhttp3:okhttp:3.6.0 | 网络通信 | 
| com.android.support:multidex:1.0.1 | dex分包 | 
| com.facebook.fresco:fresco:1.1.0 | 图片加载优化 | 
| io.reactivex.rxjava2:rxandroid:2.0.1 | 异步事件处理 | 
| name: ‘CoreSDK_v1.1.1’, ext: ‘aar’ | 日志管理:落地,打印,导出等 | 
| org.greenrobot:eventbus:3.0.0 | 进程内的消息传递与处理 | 
| com.netease.nimlib:basesdk:4.4.0 | 云信的基础功能包 | 
| com.netease.nimlib:nrtc:4.4.0 | 云信音视频与互动白板基础包 | 
| com.netease.nimlib:avchat:4.4.0 | 云信音视频包 | 
| com.crashlytics.sdk.android:crashlytics:2.7.0@aar | crash事件的收集 | 
| com.google.gson:2.8.0 | java对象与json的转换 | 
页面结构设计

直播结构设计
采用app组件化的方式,赋能app直播在线教育的功能

教师端和学生端的协议设计

开源框架解读
- RxJava
- SimpleDrawee
- EventBus