Skip to content

snlo/SNModuleKit

Repository files navigation

SNModuleKit

模块化架构依赖库,让重构和团队开发都一样简单。实施模块化可以让项目更加适合团队开发,模块与模块之间相互独立互不干扰,并且模块与模块间的耦合度趋近于零。

特征

  • 使用CocoaPods依赖各个组件和插件
  • 可定制化
  • 可快速开始业务模块开发
  • 提供模块项目模板、文件模板和代码片段

目录结构介绍

  • SNModuleKit.h:依赖库头文件
  • /Config:配置文件
  • /Components:组件
  • /Controls:可视化控件
  • /Plugins:插件
  • /Middlewares:中间件
  • /Resources:资源文件

使用

导入

#ifndef PrefixHeader_pch
#define PrefixHeader_pch

// Include any system framework and library headers here that should be included in all compilation units.
// You will also need to set the Prefix Header build setting of one or more of your targets to reference this file.

#import "SNModuleKit.h"

#endif /* PrefixHeader_pch */

资源文件中包含了SNModuleKit所提供的模块项目模板、文件模板和代码片段。在使用时,或者需要更新时,只需要在终端中运行相关脚本即可。

./Resources
	setupCodeSnippets
	setupFile
	setupProject

1

模块项目模板使用,相对来说比较麻烦一点,不过还好创建模块只是低频需求。它麻烦的就在于通过模板创建出来的模块文件夹是个虚拟文件夹,并且可能需要重命名该模块文件夹的名字。下面我们以图文的形式来说明下。

  1. 新建模块工程shift+command+n,选择Snlo Module App2

  2. 给模块取名,注意模块名是Module之后的命名3

  3. 特别强调,被创建出来的模块文件夹是一个虚拟文件夹,也就是在修改虚拟文件夹中的文件时,实际的文件不会发生改变。4

  4. 重命名模块名,在新建模块时无法对模块名进行变量处理。如果你知道怎么处理请给我留言或发邮件给我,谢谢!5

  5. 使虚拟模块文件实体化6

    7

  6. 使用模块中的Tagret_Action,需要遵守模块化规范。例如在Tagret_Public文件中

    #import <Foundation/Foundation.h>
    #import <UIKit/UIKit.h>
    
    @interface Target_Public : NSObject
    
    - (UIViewController *)Action_nativeFetchPublicViewController:(NSDictionary *)params;
    
    @end

    其中Target_Action_是硬编码,native是用来标记为本地调度的硬编码。

缺点

  • 模板更新需手动执行脚本
  • 模块项目模板需单独创建

安装

Mini版

此版本为精简版本,也就是只有中间件的存在,如果想要定制化你的模块依赖库的话,可以采用它。

pod 'SNModuleKit', '~> 1.0'
Full版

此版本专为开发团队所准备的,这也是新项目开始阶段的最佳选择。兼容Swift。

use_frameworks!
pod 'SNModuleKit'

要求

iOS 8.0 或者更高版本

许可

SNMediatorKit是根据麻省理工学院的许可证发布的。有关详细信息请参阅LICENSE

About

模块化架构依赖库,让重构和团队开发都一样简单

Resources

License

Stars

Watchers

Forks

Packages

No packages published