小程序原生组件—提升你的小程序体验
651
2022-10-22
AntNest是吸收了Go语言的Interface模型的iOS的App模块化解耦编程的框架
AntNest
简介
AntNest 是吸收了 Go 语言的 Interface 模型的 iOS 的 App 模块化解耦编程的框架。
完全解耦的面向接口插件化模块开发运行框架模块具体实现与接口调用分离易扩展的模块生命周期、事件分发
设计原则
Go 语言的 Interface 模型蚁巢的蚁室蚁道模型
基本架构
antRoom 为单独的模块antChannel 为 antRoom 之间的通信通道
模块的生命周期
目前支持的模块的生命周期时间:
基本的系统事件易扩展事件分发系统
基本的系统事件
目前的支持的基本的系统事件:
applicationDidEnterBackgroundapplicationWillEnterForegroundapplicationDidFinishLaunchingWithOptionsapplicationDidBecomeActiveapplicationWillResignActiveapplicationDidReceiveMemoryWarningapplicationWillTerminateapplicationSignificantTimeChange
在子模块中实现对应的方法,AntNest 就会自动的分发到对应的模块。
@implementation ANOrderAntRoomANT_EXPORT_ANTROOM()+ (AntRoomLevel)antRoomLevel { return 1;}+ (instancetype)createInstance:(NSDictionary *)launchOptions { return [ANOrderAntRoom new];}- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSLog(@"ANOrderAntRoom room"); return YES;}@end
扩展事件分发系统
AntNest 扩展事件分发是很方便的,举个简单的列子分发推送事件(AntNest 已经这个事件接口)
定义事件接口
@protocol ANRemotePushEvent
定义 AntNest 扩展实现接口,不用去实现具体的方法
@interface AntNest (ANRemotePushEvent)
注册事件接口
[[AntNest sharedAntNest] registerProtocolEvent:@protocol(ANRemotePushEvent)];
触发事件
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler { [[AntNest sharedAntNest] application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];}
模块
模块注册
ANT_EXPORT_ANTROOM()
模块创建
实现 AntRoomProtocol 协议
antRoomLevel 表示模块的初始化优先级
+ (AntRoomLevel)antRoomLevel { return 1;}+ (instancetype)createInstance:(NSDictionary *)launchOptions { return [ANOrderAntRoom new];}
模块通讯
模块间的通讯是通过 AntChannel 进行通讯,里面传递的都是实现 AntProtocol 协议对象。
假如我们要获取一个服务支持如下功能
@property(nonatomic, strong) NSString *orderID; @property(nonatomic, strong) NSString *customerName; @property(nonatomic, strong) NSString *shopName; - (void)payOrder;
自定义一个 Protocol 获取服务实例
@protocol ANOrderDetailProtocol
ant service 注册
AntChannel 中传递的都是 ant service,
ANT_EXPORT_ANT()+ (AntType)antType { return @"OrderDetailAnt";}+ (instancetype)createInstance:(id
Requirements
XCode
Installation
AntNest is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "AntNest"
Author
License
AntNest is available under the MIT license. See the LICENSE file for more info.
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~