从零开始搭建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