Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
⽅创iOS 架构漫谈 于德志
Slide 2
Slide 2 text
Problem 代码复⽤率低 业务之间的差异性⼤ ⼯程内各个模块之间有相当⼀些 代码是拷⻉的,或者说仅仅是个 别参数不同,⼤体都相同的代 码,在⼯程中出现的太多,导致 app包的体积明显变⼤ 由于整个项⽬中可以公共的中间件或者组 件⽬前还⽐较少,导致⼀些业务之间差异 性本来不是很⼤,由于重⽤的东⻄少,导 致基本上所有业务都是新的,很多都是重 头开始,导致了开发效率低
Slide 3
Slide 3 text
Analysis 先看看现在的构架
Slide 4
Slide 4 text
Now
Slide 5
Slide 5 text
Actual
Slide 6
Slide 6 text
How to solve 业务之间差异性⼤ 提⾼代码复⽤率 分层 代码复⽤率低 改
Slide 7
Slide 7 text
How to solve 业务功能 分层化 组件化 层次结构 改
Slide 8
Slide 8 text
No content
Slide 9
Slide 9 text
expect
Slide 10
Slide 10 text
How to solve
Slide 11
Slide 11 text
Layer View ViewModel 项⽬Model 图⽚ 项⽬名称 概要 上线状态 浏览次数 融资轮数 领域 融资⾦额 imgeURL name desclabel status browse count amount company Area company money
Slide 12
Slide 12 text
Layer View ViewModel 项⽬Model 群头像 群名称 最近消息 最近时间 imgeURL GroupName lastmessage lastTime
Slide 13
Slide 13 text
Advantage 1.分层 UI和业务逻辑相互隔离 2.View可以复⽤ View可以被不⽤业务中复⽤ 不⽤业务的ViewModel通过业务不⽤来注⼊到View中 3.View可以相互灵活替换 View可以根据不同业务逻辑,可以替换成各个不同的 版本
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
Layer View ViewModel ProJectDetailModel imageViewModel userViewModel ProJViewModel …………
Slide 16
Slide 16 text
Problem 1.组件之间的依赖 组件之间可能有公共的数据源 2.组件之间有先后关系 组件之间可能存在相互调⽤的关系 3.UI之间相互关联 ……
Slide 17
Slide 17 text
Message Bus GroupViewModel 消息总线 ChatViewModel ChatListViewModel 发布群⼈数变更消息 订阅消息 订阅消息
Slide 18
Slide 18 text
Advantage 消息总线 数据库组件 ViewModel ViewModel ViewModel ViewModel ⽹络组件 Socket组件 利⽤中介者 模式,现实 完全解耦
Slide 19
Slide 19 text
Install 开发对应的ViewModel 下⼀个组件 配置消息总线 选择ViewModel 开发新组件 选择组件 开始 结束
Slide 20
Slide 20 text
summary 1.通过MVVM和组件化实现完全解耦,后期维护效率更⾼ 2.⼀个新业务需求的拆分 将新需求拆分成各个组件View/ViewModel的开发,完 成新需求只需要装配各个组件即可完成 3.开发效率⼤⼤提⾼ ……
Slide 21
Slide 21 text
Thanks!