iOS Architecture

iOS Architecture

B433b981e15d8f2373df4363352434f9?s=128

halfrost

August 25, 2016
Tweet

Transcript

  1. ⽅创iOS 架构漫谈 于德志

  2. Problem 代码复⽤率低 业务之间的差异性⼤ ⼯程内各个模块之间有相当⼀些 代码是拷⻉的,或者说仅仅是个 别参数不同,⼤体都相同的代 码,在⼯程中出现的太多,导致 app包的体积明显变⼤ 由于整个项⽬中可以公共的中间件或者组 件⽬前还⽐较少,导致⼀些业务之间差异

    性本来不是很⼤,由于重⽤的东⻄少,导 致基本上所有业务都是新的,很多都是重 头开始,导致了开发效率低
  3. Analysis 先看看现在的构架

  4. Now

  5. Actual

  6. How to solve 业务之间差异性⼤ 提⾼代码复⽤率 分层 代码复⽤率低 改

  7. How to solve 业务功能 分层化 组件化 层次结构 改

  8. None
  9. expect

  10. How to solve

  11. Layer View ViewModel 项⽬Model 图⽚ 项⽬名称 概要 上线状态 浏览次数 融资轮数

    领域 融资⾦额 imgeURL name desclabel status browse count amount company Area company money
  12. Layer View ViewModel 项⽬Model 群头像 群名称 最近消息 最近时间 imgeURL GroupName

    lastmessage lastTime
  13. Advantage 1.分层 UI和业务逻辑相互隔离 2.View可以复⽤ View可以被不⽤业务中复⽤ 不⽤业务的ViewModel通过业务不⽤来注⼊到View中 3.View可以相互灵活替换 View可以根据不同业务逻辑,可以替换成各个不同的 版本

  14. None
  15. Layer View ViewModel ProJectDetailModel imageViewModel userViewModel ProJViewModel …………

  16. Problem 1.组件之间的依赖 组件之间可能有公共的数据源 2.组件之间有先后关系 组件之间可能存在相互调⽤的关系 3.UI之间相互关联 ……

  17. Message Bus GroupViewModel 消息总线 ChatViewModel ChatListViewModel 发布群⼈数变更消息 订阅消息 订阅消息

  18. Advantage 消息总线 数据库组件 ViewModel ViewModel ViewModel ViewModel ⽹络组件 Socket组件 利⽤中介者

    模式,现实 完全解耦
  19. Install 开发对应的ViewModel 下⼀个组件 配置消息总线 选择ViewModel 开发新组件 选择组件 开始 结束

  20. summary 1.通过MVVM和组件化实现完全解耦,后期维护效率更⾼ 2.⼀个新业务需求的拆分 将新需求拆分成各个组件View/ViewModel的开发,完 成新需求只需要装配各个组件即可完成 3.开发效率⼤⼤提⾼ ……

  21. Thanks!