这一两年做智能硬件项目遇到了很多问题,主要有以下三点:
1、数据实时性要求比较高,需要实时获取设备的状态并加载。
2、相比于一些数据浏览的项目数据处理比较复杂,页面功能依赖于设备类型,导致VC与数据处理逻辑严重耦合。
3、需要接入多种模块,页面相似,控制协议不一致,会被打包成不同的iPA。
解决方案
1、使用单例模式,后台开启线程收取设备状态数据,一旦收到设备状态数据,改变单例中的设备属性,通知View刷新页面,由view判断是否刷新页面。
2、目前App采用了MVVM模式,即多加了一层viewmodel层,把数据转为适合view的格式,再进行加载,把数据处理和view层完全分开来了,减少后期更换芯片和协议的工作量。目前已经在多套项目下做过验证,数据处理与view已经基本解耦。这点会详细讲到。
3、采用多target的引用不同文件的方式来解决,这就需要view与数据处理完全解耦,以及完全的面向对象开发。