mPaaS iOS Demo 库 pod版本
mPaaS 已开源mPaaS 官方在掘金已发布多篇介绍文章,其中Demo 开源后专门发布了一篇Demo文章 mPaaS Demo
mPaas 是一个优秀的框架
官方这样介绍它:
mPaaS iOS 框架源自支付宝客户端的开发框架,基于 Framework 的设计思想,将业务隔离成相对独立的模块,并着力追求模块与模块之间高內聚和低耦合。
该框架直接接管应用的生命周期,负责整个应用启动托管、应用生命周期管理、处理与分发 UIApplication 的代理事件、统一管理各业务模块(微应用和服务)等。
而且mPaas历史渊源比较长久 参照有天猫开源的 BeeHive
市面有工程中也有使用了这种方案 例如各种XXAppDelegate模块化瘦身 XXModuleManager iOS模块管理工具 等这些代码思想都跟 BeeHive差不多 这里也做了收集
mPaas Demo 运行
官方提供 Demo 需要运行mPaas插件和访问阿里云服务器,对于在公司访问github都要开墙实在是不方便, 因此对mPaas框架代码做了本地cocoaPad处理 ,在公司就可以方便的使用研究 mPaas
先看效果: 移动框架Demo
AntUI Demo
AntUI 详细Demo
mPaas 本地Pod化
mPaas使用插件管理组件, 我上传的Demo通过其插件获取了.framework组件 将其pod化使之能够本地运行
开发中 mPaas 核心组件如下
s.vendored_frameworks = [
'mPaas/*/*.framework',
]
s.frameworks = 'CoreTelephony', 'SystemConfiguration' ,'Accelerate','SystemConfiguration'
s.libraries = 'xml2', 'sqlite3', 'resolv', 'z', 'stdc++'
启动依赖
main 函数入口设置:
return UIApplicationMain(argc, argv, @"DFApplication", @"DFClientDelegate");
APMobileFramework.framework更新到对应的bundle
APMobileFramework.bundle/DefaultMobileRuntime.plist
MobileRuntime.plist 的注册
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Launcher</key>
<string>Launcher</string>
<key>Services</key>
<array>
<dict>
<key>welcomPageAfterLoading</key>
<string>true</string>
<key>name</key>
<string>BizAService</string>
<key>lazyLoading</key>
<string>true</string>
<key>class</key>
<string>MPFrameworkBizAServiceImpl</string>
</dict>
</array>
<key>Applications</key>
<array>
<dict>
<key>delegate</key>
<string>MPLauncherAppDelegate</string>
<key>description</key>
<string>Launcher</string>
<key>name</key>
<string>Launcher</string>
</dict>
<dict>
<key>delegate</key>
<string>MPFrameworkBizAAppDelegate</string>
<key>description</key>
<string>FrameworkBizA</string>
<key>name</key>
<string>66600001</string>
</dict>
<dict>
<key>delegate</key>
<string>MPFrameworkBizBAppDelegate</string>
<key>description</key>
<string>FrameworkBizB</string>
<key>name</key>
<string>66600002</string>
</dict>
<dict>
<key>delegate</key>
<string>MPFrameworkBizCAppDelegate</string>
<key>description</key>
<string>FrameworkBizC</string>
<key>name</key>
<string>66600003</string>
</dict>
<dict>
<key>delegate</key>
<string>MPTestAppDelegate</string>
<key>description</key>
<string>2006</string>
<key>name</key>
<string>20000002</string>
</dict>
<dict>
<key>delegate</key>
<string>MPLifeAppDelegate</string>
<key>description</key>
<string>2020</string>
<key>name</key>
<string>20000222</string>
</dict>
</array>
<key>ServicesMap</key>
<dict>
<key>[AUTOSTART]</key>
<array/>
</dict>
</dict>
</plist>
官方提供H5 扫码等组件, 也可按此引入framework 搭积木的开发
mPaas 彩蛋
iOS ViewController控制器一般分两种 , 一种用于展示视图, 另一种用于控制ViewController,如UINavigationController ,UITabBarController等 以前流行过得左边抽屉样式MMDrawerController 在官方mPaas temple中也出现了
路径: /.mPaaSCocoaPodsPlugin/templates/APMobileFramework/AutoConfig/
MPDrawerLauncherAppDelegate.m
MPDrawerController
MPDrawerMainViewController
引入MPDrawerLauncherAppDelegate 并在MobileRuntime.plist 的注册
satrt MPDrawerLauncherAppDelegate 就可以看到了
github
Demo push github
https://github.com/macbookpro2100/ink_Swift
包含DoraemonKit性能监控和部分Swift练习代码请忽略🙈
Demo均取自官方Demo