Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/casatwy/CTMediator

The mediator with no regist process to split your iOS Project into multiple project.
https://github.com/casatwy/CTMediator

Last synced: 5 days ago
JSON representation

The mediator with no regist process to split your iOS Project into multiple project.

Awesome Lists containing this project

README

        

CTMediator
==========

objective-c:

```
pod "CTMediator"
```

swift:

```
use_frameworks!
pod "CTMediator"
```

---

`CTMediator` helps you to divide your project into multi-project, and use `Target-Action` pattern to let subprojects to communicate with each other. *with no regist process!*

you can check demo for more details:

[Origin project](https://github.com/ModulizationDemo/MainProject)

[Modulized Main Project with CTMediator](https://github.com/ModulizationDemo/ModulizedMainProject)

[Demos](https://github.com/ModulizationDemo)

[Swift Demo](https://github.com/ModulizationDemo/SwfitDemo)

add private repo before you run demos:

```
pod repo add PrivatePods https://github.com/ModulizationDemo/PrivatePods.git
```

remember to run `pod install` before you run the demo!

---

[Origin project](https://github.com/ModulizationDemo/MainProject)

[Modulized Main Project with CTMediator](https://github.com/ModulizationDemo/ModulizedMainProject)

[Demos](https://github.com/ModulizationDemo)

[Swift Demo](https://github.com/ModulizationDemo/SwfitDemo)

跑demo时先添加私有库:

```
pod repo add PrivatePods https://github.com/ModulizationDemo/PrivatePods.git
```

然后就可以`pod install`了

---

[iOS应用架构谈 组件化方案](http://casatwy.com/iOS-Modulization.html)

[在现有工程中实施基于CTMediator的组件化方案](http://casatwy.com/modulization_in_action.html)

[CTMediator的Swift应用](https://casatwy.com/CTMediator_in_Swift.html)

---

本工程其实也是个Demo

`Category`目录在实际工程中是单独的一个repo,调用者通过依赖category这个repo来完成功能调度。一般来说是每一个业务对应一个category的repo。因此调用者需要调度哪个业务,就依赖哪个业务的category。category这个repo由对应提供服务的业务来维护。

`CTMediator`目录在实际工程中也是一个单独的repo,仅用于存放中间件。被每一个业务线各自维护的category repo所依赖。

`DemoModule`目录是实际提供服务的业务,这个在实际工程中也是一个单独的repo。这个repo不被任何人所依赖,这个repo通过target-action来提供被调度的功能,然后由category repo通过runtime调度。

---

`CTMediator` helps you to divide your project into multi-project, and use `Target-Action` pattern to let subprojects to communicate with each other.

you can check demo for more details:

[Demo](https://github.com/ModulizationDemo)

[Swift Demo](https://github.com/ModulizationDemo/SwfitDemo)