从零开始搭建app-outline

从零开始搭建app-outline

[TOC]

前言

这是一款视频直播教育软件.

  1. 提供基于LBS的找课服务
  2. 支持线上和线下两种方式的上课服务
  3. 提供多种在线互动形式 (聊天室,答题,连麦,教学白板……)
  4. 整理了完整的教学评估体系(老师学生打分体系,课后复习,课程记录……)

APP框架

app_struct

设计细化

app目标:

  1. 搭建一个灵活易用,脱离业务,方便快速迭代的app

  2. 基于之前的工作经验,挑选合适的第三方开源库赋能,并

    在这个过程中学习这些优秀开源库的设计思想(尤其是facebook 和 google的)

  3. 该app符合growth hacker的理念,能够支持快速试错,用数

    据化推动产品演化路径

包结构图

app_struct

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package overview:

ui: // (原则上UI样式替换只需修改这一层)
--Activity: // ui展示:按钮,文字,列表 etc.
--IView: // present回调接口
--adapter: // 列表数据绑定


helper:
--peresent: //处理业务数据(原则上上层业务替换,修改到这一层)
--util: //工具包
--manager: //管理类包


common:
--widget: // 封装了一些常用的视图组件
--base: // network,fresco,lbslocation,EventBus,Sharedpereference,animation etc.
--sdk // video,audio etc.

第三方依赖库

依赖库 说明
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_struct

直播结构设计

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

app_struct

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

app_struct

开源框架解读

  • RxJava
  • SimpleDrawee
  • EventBus