2015 从老项目的迭代维护到新项目的开发

OLD APP#


旧项目的用户引导页, 修改密码功能, 智能情景. 从空调的控制入手到熟悉公司自定义的控制协议.

NEW APP#


新项目重构主体视图的抽屉界面结构, 登陆界面和主内容界面分离, 添加一个选择启动界面的工具类. 减少AppDelegate中多余的代码, 清晰模块分工. 以及对已有功能的移植和修改,新功能的增加.

写了一些轮子, 下拉列表; 多级列表; 手势+tabBarVC+navigationVC 配合的抽屉控件; alert style and action sheet style自定义alertView; 有些是从开源轮子基础上改成适合使用的轮子.

讯飞语音的集成, BNF语法做语义解析, 实现语音控制.

TCP/UDP 的socket 通信在项目中的使用, 接收数据与自定义协议的解析, 以及解析结果在内部模块的分发处理. HTTPS适配的一些了解.

SUMMARY#


刚开始接触老项目的时候,做了一些UI方面不涉及到核心功能的工作. 紧接着接触了其中一个主要功能模块,在完善功能的过程中踩了几个自定义协议的坑,主要因为刚开始对业务的不熟悉. 被代码中的一些命名,数据模型处理,magic number困扰了一段时间. 后来也在新项目中对这些部分做了重构.

由于之前对网络部分的了解仅仅局限于HTTP请求, 对于项目中使用的Socket通信并不十分熟悉.然而在实际使用的过程中发现并没有想象的那么复杂.

新项目中摒弃了拖文件夹的方式,转而使用cocoapods来管理三方框架,尽量让文件结构更清晰些. 其间我们也做了智能逻辑,语音控制,内外网切换,三方登陆,账号的注册和密码找回,智能设备控制,红外设备的学习等等功能.包括对旧有功能的移植和重构,这段过程中也对UI界面做了多次的改版.新产品将与硬件交互的功能大部分都挪到网关上去了,避免Android和iOS客户端做重复工作和频繁升级,提高了工作效率,降低和硬件开发的沟通成本. 未来UI部分可能还会有频繁的改版.

PROBLEM#


  • 缺少一个直观的任务分配和进度管理
  • 设计&产品&开发缺少快速高效的沟通
  • 测试环节不够人性化
  • Code Review

NEXT STEP#


增进团队合作的效率, 使用工具增进开发流程的规范.

Watch的开发, 3DTouch, 以及考虑Swift2.0在项目中的使用. 在掌握了iOS开发表面层的使用技术后, 需要学习更加深入的技术, 程序架构的设计. 自学能力的提高.

推荐阅读更多精彩内容