类慕课

作者: 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.haomeiwen.com/subject/ldajjqtx.html