美文网首页
iOS 组件化方案 —— 启动流程

iOS 组件化方案 —— 启动流程

作者: 大成小栈 | 来源:发表于2023-06-20 12:01 被阅读0次

AppDelegateModule 组件主要负责实现 hook AppDelegate

页面容器、第三方SDK初始化等工作需要在启动时完成,我们通过 hook AppDelegate,将入口所做的工作交给一个组件完成,在该组件中注册其它需要在启动时调用 AppDelegate 方法的组件,让每个组件都可以拥有一类似 didFinishLaunchingWithOptions 方法。

DJMainModule 组件为整个业务启动的入口

将需要调用 appdelegate 方法的组件,在 MainModule 中注册;
这里的 modules 是个数组,可解决调用 delegate 方法的顺序问题。

 + (void) load {
    // 注册组件
    // NSArray *modules = @[@“MainModule”, @“需要调用的组件”];

    NSArray *modules = @[@"DJOldSchoolModule"];
    NSString *url = @"router://AppDelegateModule/setDidFinishLaunchingModules";
    [JDRouter openURL:url arg:modules error:nil completion:nil];
    
    // 执行AppDelegateModule的run
    NSString *urlrun = @"router://AppDelegateModule/run";
    [JDRouter openURL:urlrun arg:nil error:nil completion:nil];
}

DJOldSchoolModule 组件,中转模块

1)监听AppDelegateModule生命命周期并实现相应方法,并间接调用launchModule;
2)封装跳转协议router://DJOldSchoolModule/jumpAgreement,统一跳转逻辑;
3)接受外部通知调起等事件的协议解析、转发工作;
4)App资源的统一处理等。

launchModule组件为开屏页、rootTabController等处理

在 launchModule 中实现 AppDelegate 的方法:

static UIWindow *gWindow = nil;
static UIViewController *gTempViewController = nil;

// 把实例方法改为类方法
+ (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {   
    gWindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];   
    [[[UIApplication sharedApplication] delegate] setWindow:gWindow];    
    gTempViewController = [[UIViewController alloc] init];   
    gTempViewController.view.backgroundColor = [UIColor redColor];   
    gWindow.rootViewController = gTempViewController;   
    [gWindow makeKeyAndVisible];   
    return YES;
}

至此,启动流程已经串通,简单的组件化架构雏形也已经有了。

相关文章

  • iOS组件化方案

    iOS组件化方案 iOS组件化方案

  • 组件化方案

    组件化方案引用 在现有工程中实施基于CTMediator的组件化方案 iOS组件化实践(一):简介 iOS组件化实...

  • iOS组件化文章汇总

    iOS应用架构谈 组件化方案 APP组件化之路 我所理解的组件化之路 iOS 组件化方案探索 围观神仙打架,反革命...

  • 07 CTMediator iOS组件化方案

    关于iOS组件化方案在Casa的iOS应用架构谈 组件化方案写得已经很清楚了。方案本身并不难,CTMediator...

  • iOS组件化 文章

    iOS组件化 BeeHive iOS应用架构谈 组件化方案 Small iOS BeeHive —— 一个优雅但还...

  • iOS 组件化/模块化文章

    1.博客文章总结 iOS组件化思路-大神博客研读和思考iOS组件化实践方案-LDBusMediator炼就组件化架...

  • iOS系统架构

    1: 滴滴出行iOS客户端架构演进之路 2: iOS应用架构谈 组件化方案 3:iOS组件化方案调研 4: 饿了么...

  • iOS有关架构组件化的文章链接

    iOS应用架构谈 组件化方案 iOS 组件化方案探索 iOS移动端架构的那些事 如何优雅的实现界面跳转 之 统跳协...

  • iOS应用架构谈 组件化方案

    iOS应用架构谈 组件化方案

  • iOS组件化

    0.ios组件化/模块化1.iOS 组件化开发项目框架设计2.iOS 组件二进制化方案3.组件化4.Seemygo...

网友评论

      本文标题:iOS 组件化方案 —— 启动流程

      本文链接:https://www.haomeiwen.com/subject/wkyyydtx.html