类慕课

作者: liangtong | 来源:发表于2019-01-23 15:21 被阅读0次

使用体验

mooc_practice_20161013.png

描述

举个例子:用户开启程序,不用等待就能看到课程信息。向下滑动,后台自动获取更多,不用等待加载过程…这些都能一定程度上增加用户使用体验。本次拿首页数据展示来讲怎么利用缓存来提过用户体验的。

方案

对应方案包括3个方面:缓存、在线/本地数据对接、后台加载。

缓存

缓存的处理主要包括两种:

  • 图片:借助于开源代码 SDWebImage
  • 数据:借助于本地数据库FMDB

图片的缓存借助于开源代码,这部分工作不多。
数据的缓存,需要根据具体业务建立对应的数据表,设计SQLite数据库操作包括:增(同步、批处理)、删、改、查等。

在线/本地数据对接

这块主要说下规则:对于使用缓存的功能,移动端所有相关展示数据源均从缓存数据表中获取。也就是说,通过在线接口访问数据成功后,首先把数据存储/更新到本地数据库,成功后发相关的数据更新通知。

后台加载

这块主要是针对用户的行为,预加载一些数据。比如当用户向下滑动推荐课程的时候,移动端监听UITableView的offsetY,在展示到当页第N条数据的时候自动调用在线接口获取下一页数据。

课程离线

mooc_offline_20161013.png

描述

程序支持线上/线下学习两种模式,课程离线管理主要针对线下模式。当然在线模式情况下,若课程已离线,则从本地离线数据中播放(学习)课程。针对线上/线下课程的学习,需要支持课程学习进度、课程学习状态等多种操作。

方案

课程相关的离线文件直接存放在沙盒相关路径下,使用NSFileManager进行文件持久化管理。
课程课节、学习进度等数据借助于FMDB进行管理。

沙盒中持久化的文件按照课程的形式组织,与数据库中的课程课节表对应。
数据库还要记录具体课节的学习状态,学习进度等。

课程学习

mooc_course_20161013_1.png mooc_course_20161013_2.png

描述

课节类型包括视频、音频、文件、在线网页、测验等多种类型。其中前3中支持线上/线下学习。可以根据用户个人设置进行自动播放、续播等操作。

方案

状态的通过 观察者模式 来实现,主要针对以下几种情况:

  • 网络状态,比如线上模式下,提示用户网络变更。
  • 视频播放状态,比如播放结束后会根据用户个人设置进行续播等相关操作。
  • 课节地址,不如播放的过程中,用户点击了其他课节。

配合本地数据库,实现定点续播等操作。

相关文章

  • 类慕课

    使用体验 描述 举个例子:用户开启程序,不用等待就能看到课程信息。向下滑动,后台自动获取更多,不用等待加载过程…这...

  • 程序员实用网站

    学习类:(慕课网-程序员的梦工厂)https://www.imooc.com/ (中国大学慕课)h...

  • 2-1 Objective-C语法汇总预览

    课程来自慕课网DavidChin老师 Objective-C语法汇总预览 类的定义 类的属性声明 类的方法声明 类...

  • Swift 2 学习笔记 12.类

    课程来自慕课网liuyubobobo老师 类 类的基础 类是引用类型 引用类型的特点 类的等价 什么时候使用结构体...

  • java基础二

    原视频来自慕课网 类和对象 类:访问修饰符 class 类名 { } //一般通过编译器自动创建 对象 :类名 ...

  • 手写ServletDemo

    慕课网“JAVA遇见HTML——Servlet篇”视频范例。 写类继承HttpServlet 重写doGet()和...

  • 2-2+2-3+2-4+2-5【原型】-深度透彻掌握原型

    慕课TS高级课程 第二章 深度掌握TypeScript OOP 2-10 TS 类 和 ES6 类对比 1. 为...

  • java的抽象和接口和重写封装

    注:该文章的内容来自慕课网 抽象类: 语法定义: 抽象类前使用abstract关键字修饰,则该类称为抽象类. 应用...

  • MySQL图形操作--MySQL workbench

    MySQL图形化管理工具使用教程慕课网PHPMyAdmin慕课网Navicat慕课网MySQL workbench

  • 碎片式学习

    简短的文字类介绍 - 简书 简短的视频类介绍 - 慕课网 / 极客学院. 这类课件,课程篇幅小,有针对性,适合入门...

网友评论

      本文标题:类慕课

      本文链接:https://www.haomeiwen.com/subject/ldajjqtx.html