Core Telephony Framework(核心通讯框架)概述:这个库的前缀为CT(Core Telephony),主要用来获得用户通讯相关信息,我们可以使用这些信息来定义外部接口以便自己使用。当然我们也可以仅仅是用此信息来获得当前正在通话的信息。CT的对象可以获得通讯信息,例如可以利用此进行网络电话(VoIP — Voice over Internet Protocol)。而又如CTCal
转载 7月前
39阅读
一、中介者模式中介者,顾名思义,即一个处理各种交互集中化操作的角色。面向对象的设计思想鼓励把行为分散到不同的对象中,但是,这种行为的分散可能在一定程度上增大对象之间的关联,增大了系统的耦合度,为后期的维护和扩展带来不便。中介者模式定义了一个集中的场所,对象间的交互可以在一个中介者对象中集中处理,其他对象不必彼此交互,这样就减少了对象之间的关联。定义:用一个对象来封装一系列对象的交互方式。中介者使得
转载 2024-01-17 10:22:04
72阅读
简述CTMediator CTMediator按照功能的结构来讲,使用时需要实现CTMediator的个三部分。1.CTMediator类:承担总枢纽,总调度的责任2.Target_(ModuleName)类:承担组件对外暴漏接口功能,组件要提供什么服务,主要在它的接口声明上进行体现3.CTMediator+(ModuleName)分类:主要供客户端使用,里面声明了可以调用的组件接口。下
前两篇文章主要是对这篇文章的内容进行了一个铺垫,这里就一起来看下 CTMediator 的实现原理 ,CTMediator是一个单例,主要是基于Mediator模式和Target-Action模式,中间采用了runtime来完成调用CTMediator提供的API分别为:远程app调用入口、本地组件调用入口、释放某个target缓存 这里主要介绍 本地组件调用入口 也是我们最常用的一个方法:- (
目录1.创建私有 Spec Repo2.新建工程(New Project)3.你需要创建podspec文件4.设置podspec文件5.创建提交update.sh脚本6.CTMediator组件化需要创建的几个类总结遇到的问题 看了众多的组件化方案后,我选择了Casa Taloyum 的 CTMediator 的组件化方案。没有别的原因,就因为耦合度低,而且维护成本低。感谢作者的启发。创
转载 6月前
44阅读
背景 记得四年前iOS路由开始盛行,当时比较有名的是蘑菇街的,后来CTMediator写了几篇文章把蘑菇街批的体无完肤,导致我后来写新项目用了CTMediator,那一堆组件创建的叫一个酸爽啊!再后来陆续出现了HHRouter、JLRoutes等;面对这么多优秀的第三方路由,我们如何选择?是否需要重 ...
转载 2021-10-20 23:40:00
83阅读
2评论
CTMediator目录在实际工程中也是一个单独的repo,仅用于存放中间件。被每一个业务线各自维护的category repo所依赖。
转载 2021-12-17 15:31:39
119阅读
## 背景 记得四年前iOS路由开始盛行,当时比较有名的是蘑菇街的,后来CTMediator写了几篇文章把蘑菇街批的体无完肤,导致我后来写新项目用了CTMediator,那一堆组件创建的叫一个酸爽啊!再后来陆续出现了HHRouter、JLRoutes等;面对这么多优秀的第三方路由,我们如何选择?是否需要重造轮子?## 个人思考 无论是路由还是工程架构都需要根据实际项目来选择,比如你的工程就是小工程
转载 2023-09-12 08:18:30
99阅读
组件化1.组件化有什么好处?2.你是如何组件化解耦的?3.为什么CTMediator方案优于基于Router的方案?4.基于CTMediator的组件化方案,有哪些核心组成? 1.组件化有什么好处?业务分层、解耦,使代码变得可维护;有效的拆分、组织日益庞大的工程代码,使工程目录变得可维护;便于各业务功能拆分、抽离,实现真正的功能复用;业务隔离,跨团队开发代码控制和版本风险控制的实现;模块化对代码
转载 2023-08-21 09:27:56
143阅读
现状 目前国内业界的方案:URL路由、CTMediator、Beehive。这次我要介绍一个复古简单又全新的方案。 问题 先回答两个问题。 什么是组件? 什么是组件?从最细粒度去考虑,一个符合单一职责原则的类就是一个组件;再扩大一点,为了完成某个独立功能的几个类可以称之为组件,比如NSArray类簇 ...
转载 2021-09-29 22:42:00
129阅读
2评论
返回上级目录:iOS面试专题一 文章目录1.客户端整体架构1.1 iOS控制反转(IoC Inversion of Control)与依赖注入(DI Dependency Injection)的实现2.业务之间的解耦通信方式:iOS 组件通信方案3.CTMediator总结 1.客户端整体架构你所在公司的客户端整体架构是怎样的?如果让你设计,你会怎样设计?(高级资深)独立于App的通用层(放到任何
转载 2023-07-14 12:07:47
103阅读
作者:小顾Bruce现状目前国内业界的方案:URL路由、CTMediator、Beehive。这次我要介绍一个复古简单又全新的方案。问题先回答两个问题。什么是组件?什么是组件?从最细粒度去考虑,一个符合单一职责原则的类就是一个组件;再扩大一点,为了完成某个独立功能的几个类可以称之为组件,比如NSArray类簇、实现组合视图UICollectionView的相关类;再大一点,比如Foundation
转载 3月前
0阅读
一、项目背景一套完备的路由方案是推进组件化进程前提,为了能够为所在的业务量身定做一套适合自己的路由方案,我做了一定的调研分析,我特意找了市场几款主流的路由方案进行简单的分析比对,希望可以集各家所长,它们有JLRouter、MGJRouter、CTMediator等,分析的比较浅陋,如有不准确的地方,可以及时留言指出;二、JLRouterJLRouter是一个纯粹的URL路由管理库,主要分为路由UR
转载 2023-09-12 08:17:41
191阅读
作者 | 小顾Bruce 现状目前国内业界的方案:URL路由、CTMediator、Beehive。这次我要介绍一个复古简单又全新的方案。问题先回答两个问题。什么是组件?什么是组件?从最细粒度去考虑,一个符合单一职责原则的类就是一个组件;再扩大一点,为了完成某个独立功能的几个类可以称之为组件,比如NSArray类簇、实现组合视图UICollectionView的相关类;再大一点,比如Fo
转载 2023-09-05 13:51:59
14阅读
文章目录模块化的意义模块化的粒度组件组件化方案MGJRouter 的路由映射CTMediator 中间者Category的编写 模块化的意义当项目大到一定程度,开发人员也多,所有的代码都集中到一个仓库,提交修改都要等其他人提交完成不报错才能开始,非常麻烦。再者就是代码之间耦合严重,到处引用,穿插错综复杂,往往改变一个变量,需要修改很多处代码,很容易出错。对于这种情况,就要进行架构整治,模块化无疑