作为追求代码洁癖的软件工程师,我们对“紧耦合”的技术实现可以说是深恶痛绝。要解决当前企业移动端App日益沉重、难以真正迭代、投入产出比低的问题,首先在技术架构上要实现真正的“松散耦合”。
那需要松散到什么程度呢?那就是是在一个相对稳定的App“内核”基础上,让绝大部分的应用功能(不管是因为创新需要、业务部门诉求等等而产生)必须可以(1)独立开发;(2)独立部署;(3)独立运维;(4)独立管理生命周期——随时上下架而不影响App主体。
App必须减重、瘦身、变成入口、合规可控对接互联网公共社交平台,通过这样的技术架构打造下一代超级APP,代表未来的方向。
App接入FinClip后,可能产生如下问题:
- App是否能够实现“一对多”,即:1个App内能够打开多个不同环境、不同企业的小程序。 如:同时打开来自于企业A私有化环境下的小程序1、企业B私有化环境下的小程序2、企业C在凡泰SaaS环境下的小程序3
- App能否在不发版的前提下,动态管理小程序的展示、隐藏。如:当App在包含小程序1和2的情况下、已发布应用市场,此时再增加小程序3
针对以上两个常见问题,我们整理了对应解决方案。
App实现“一对多”
FinClip支持多服务器配置,此时所指的多服务器包括:
- 多个不同的部署环境(如企业A私有化环境、企业B私有化环境)
- 多个不同企业的小程序(无论该小程序部署在什么环境上)
#2.1 iOS 多服务器配置方式
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"servers" ofType:@"plist"];
NSArray *array = [NSArray arrayWithContentsOfFile:plistPath];
NSMutableArray *storeArrayM = [NSMutableArray array];
for (NSDictionary *dict in array) {
FATStoreConfig *storeConfig = [[FATStoreConfig alloc] ini