美文网首页iOS Developer
iOS业务解耦之启动布局AppDelegate拆分

iOS业务解耦之启动布局AppDelegate拆分

作者: 找不到工作的iOS | 来源:发表于2017-08-25 09:28 被阅读180次

解决AppDelegate.m内部代码过于臃肿的问题

  • 绝大多数的项目AppDelegate.m内都有冗长臃肿的代码
  • 多种与启动相关的业务代码相互混淆在一起
  • 可读性差,不方便管理,高耦合

解决方案

  • 根据业务种类的不同创建一一对应的分类管理
    以配置rootController与推送业务为例子
1.创建AppDelegate分类
root.png push3F427D0.png
2.在AppDelegate分类内实现业务逻辑
10001-8C24-30A8415130EE.png
#import "AppDelegate.h"
#import "AppDelegate+RootVIewCtrl.h"
#import "AppDelegate+Push.h"

@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
   
    [self configRootView]; //配置window与根控制器相关
    [self configPush]; //配置推送业务相关

    return YES;
}
#import "AppDelegate+RootVIewCtrl.h"

@implementation AppDelegate (RootVIewCtrl)

- (void)configRootView{
    
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
    [self.window makeKeyAndVisible];
    //self.window.rootViewController = rootVC;
}

@end
#import "AppDelegate+Push.h"

@implementation AppDelegate (Push)

- (void)configPush {
    
    //推送配置
    
}

@end

相关文章

  • iOS业务解耦之启动布局AppDelegate拆分

    解决AppDelegate.m内部代码过于臃肿的问题 绝大多数的项目AppDelegate.m内都有冗长臃肿的代码...

  • iOS AppDelegate入口解耦

    说到解耦,可能大部分人会潜意识的认为业务组件间的解耦是最根本的,也是最重要的。这个说法个人认为没什么问题,今天所说...

  • AppDelegate解耦

    作为iOS整个项目的核心App delegate,随着项目的逐渐变大,会变得越来越臃肿,一不小心代码就过了千行. ...

  • 弹力设计之异步通讯设计

    前面所说的隔离设计通常都需要对系统做解耦设计,而把一个单体系统解耦,不单单是把业务功能拆分出来,正如上面所说,拆分...

  • 聊聊 AppDelegate解耦

    AppDelegate 在iOS开发中,AppDelegate指的是UIApplicationDelegate,用...

  • iOS 组件化方案

    1、对业务模块的拆分,以及功能模块的拆分,达到解耦,不相互依赖。 1.业务组件依赖基础组件。2.基础组件不可依赖业...

  • 项目架构

    分布式架构 核心理念: 并行拆分与横向扩展 优点 解耦 分摊压力 扩展性 业务拆分,简单易懂 技术栈 spring...

  • 需求如何解耦(一)

    一、解耦的定义 解耦就是把系统功能和逻辑拆分。 为什么拆分。一个不解耦的系统就像把若干根线缠绕到一起,你想抽出任何...

  • App组件化

    优点 业务分层、解耦,使代码变得可维护;有效的拆分、组织日益庞大的工程代码,使工程目录变得可维护;便于各业务功能拆...

  • 解耦与拆分

    最近公司做了一个需要拆分SDK的项目,所以涉及了很多拆分的内容,加之有比较多解耦的工作,所以想聊一聊解耦与Java...

网友评论

    本文标题:iOS业务解耦之启动布局AppDelegate拆分

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