APP路由的起因
公司的APP在处理产品需求的时候,经常突然要从界面A进入界面B,但是以往的逻辑中.AB界面并不在一个流程内.
根据自己最近使用的另一个设计局部单例模块,让APP中不同的功能完全可以和主工程做到热插拔,随时独立出来成为一个单独的App,有自己的界面和功能.
也就是说主APP和APP中的某个功能模块,就像是套环的USB插头一样,之间只有数据传输,不管是组合在一起还是自己独立都可以作为一个APP
“奥F☌A义”的出现
此时可以把,主APP当作一个”伪”服务器,而APP里的功能模块,当作不同的”伪”客户端,只要我服务器通过一种自定义的协议,把数据穿送给客户端,客户端(功能)就会启动,开始工作.
可是怎么启动功能呢,每个功能模块的名字都不一样,而且自启动不容易实现,需要有个像开车一样”打火”的钥匙,这个钥匙或者称为中间件,就是APP路由
APP路由里可能会用到的知识点
APP路由目前只是个设想,进行了一部分验证,以下是会用到的知识点.
- 为了实现方法名和类名的动态KVC绑定,反射(Reflect)的相关函数NSClassFromString
- 为了保存一些静态数据,回用到XML或者Plist
- 需要一个类来编解APP路由的自定义协议
- 静态数据通常包含主APP无法提供,功能模块初始化又需要的一些固定数据
- 需要对功能中流程里的每个界面进行数字或者id编号,存入静态数据,方便从任意流程启动到任意界面
APP路由使用设想
“真”服务器端传来字符串,或者H5界面传来字符串,进入主APP,主APP生成自定义协议带着要启动的功能模块名,主APP提供的数据,经过静态数据储存取出启动模块的所有必备条件,启动某个模块,数据的传递过程可以参考网络请求GET串,或者封装成JSON.