iOS应用改进建议

常见问题

  • 传统的MVC架构,单体型应用,Controller职责过重 -> 平台型架构,Controller减负,引入framework降低耦合度

  • 绝对布局,屏幕适配工作比较繁琐 -> Auto Layout

  • iPad和iPhone用一套界面 -> 提供两套界面,size class

  • 兼容模式,图片有拉伸 -> 高清模式,图片不拉伸

  • 纯代码写界面 -> storyboard,xib,代码混合

  • 编码风格有好几套,缺少统一规范 -> 引入编码规范,加强代码review

  • 代码review流于形式 -> 固定时间,团队全员review

  • 实现思路一人一个想法 -> 引入概要设计,在实施前团队充分讨论,观点PK;可以考虑一个iOS + 一个Android,“结对设计”

  • trunk、branch两个分支 -> trunk、branch、tag三个分支

  • 开发版、正式版两种版本 ->开发版、内部试用版、正式版三种版本

  • 只有人工的黑盒测试 -> 引入Jekin之类的工具,由测试人员和开发人员一起,写单元测试,自动打包,自动测试

  • 没有做语言本地化处理 -> 考虑语言本地化,为多语言版本做准备

方案

  1. 以最小的改动在现有的基础上实现需求,尽量保持稳定

  2. 在当前的基础上逐步重构

  3. Object-C + CocoaPods + Svn重写

  4. Swift + Carthage + Git重写

iOS和Android统一编程方案

  1. iOS先行开发,Android延迟1~3个月,无统一编程方案

  2. iOS、Android、APP网关先讨论,共同开发,在概要设计,API设计上达到统一

  3. 将一部分内容用H5实现,混合架构,这部分两者公用

  4. 将公共部分用C实现,两个平台公用

  5. Facebook的reactnative,阿里的weeks等JS方案

  6. Swift,据说Android将支持Swift,服务端用Swift写已经有人开始探索

架构方面的考虑

  • Controller(场景scene生命周期),AppDelegate(应用App生命周期)只做调度者,不做具体的事,最好连表格的代理都不要做(代码写界面,用一个容器view代替controller的self.view)

  • 以framework的形式进行模块划分,降低耦合度,这要求升级到iOS8

  • 引入ViewModel概念,作为界面和具体逻辑之间的转换接口,隔离界面层,并且让界面层的代码尽量少,方便修改,快速应变

  • 将跳转集中处理,比如第三方库routable-ios,借鉴url的做法对页面统一组织

  • 引入“微服务”概念,包装一些只供外部模块调用的“基础组件”,比如网络,数据库,二维码扫描等等

  • 引入“服务概念”,包装几个跟具体业务无关的“公共业务”,比如支付,登录注册,第三方登录,分享等等

  • 引入“移动网关”概念,作为客户端的后端,后端的前端,并且集成H5、Android、iOS公用的逻辑,笔记日志、统计、黑白名单、安全等等

你可能感兴趣的:(iOS应用改进建议)