今天,我的同事收到了一份需求,要将一个安装在电视上的APP功能拆分成4个场景,根据电视布防的场景不同选择对应的场景进行展示、使用,不允许用户进行手工切换场景,由于这些电视都是公司购买推广出去的,所以送出前会在后台维护其所属场景等信息。
过了两个多小时,小伙子把实现方案交给了我。
虽然需求要求将功能拆分到4个具体的场景展示,每个场景功能都会有所差异,但仍然有部分功能重叠和基础能力的共用,若拆成4个独立的APP会带来巨大的管理成本,且在特定场景下,若用户将设备从一个场景搬迁至另一个场景下,需要重新安装APP,带来不便,因此,要实现的是一个APP根据场景不同进行不同的功能展示。
由于分了4个场景,且仅使用一个共同的APP,需要考虑某些场景下的版本迭代不应要求不相关场景下的APP进行升级提示,因为没有变化,升级就是无意义的。实现方案是在后台版本管理维护一个升级涉及的场景属性,这样就可以根据对应的使用场景来确定是否升级。升级包按照全量维护,但升级按代码包(package)为单位将本地和服务端进行MD5比较,然后进行差异化升级。
通过电视每次开机时检测后台对应使用场景,本地存取并跳转至对应场景展示;若后端返回场景未设置,则选择XX场景作为默认场景并展示;若丢失网络,则提示网络问题;若网络通但服务端失去响应则按本地存储的场景展示;若使用过程中若后台发生了场景变更,不予响应。
我认为这个小伙子短时间内把需求主要的问题都考虑到了,并给出了不错的方案,我就给了通过并在项目组表扬了他,你认为我做对了吗?
留言与评论(共有 0 条评论) “” |