首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ios开发小结之重构及随想

ios开发小结之重构及随想

作者头像
rectinajh
发布2018-05-17 15:33:11
6270
发布2018-05-17 15:33:11
举报

抛弃xib

最近项目工期比较宽裕,做了比较多refactor的事情,最重要的一件事情是把项目中的很大一部分的nib/xib文件移除了。关于项目中是否应该使用IB的争论一直很多(如reddit),也没有好的结论。但对于团队开发而言,拒绝IB无疑是一个明智的选择,至少从目前的经历而言,使用nib/xib有以下不足之处: 1. 不方便团队其他成员进行review,nib/xib文件是采用xml,目前主流的review工具(如reviewborad)支持不够好,比较难看明白。 2. nib/xib的xml Scheme定义比较复杂,而且带有ide版本等信息,一个小的修改往往导致一大堆的无关diff,review、merge等开发流程基本无效。 3. 比较难复用,在无觅阅读中,动态有多种类型,每种类型样式不同,但都有同一的用户信息,如果用xib/nib的话,可能就只能每个类型都单独写一遍,导致大量重复代码,重复代码对于工程来说是致命的质量问题(见重构-改善既有代码的设计),在这部分代码有修改时极易引入bug。

外包引入的xib/nib文件问题对我们项目影响很大,在改版的时候几乎都要把人整崩溃(每个xib都机械地修改一遍back按钮)。建议如果是团队开发而非小作坊,而且关注代码质量,有支持迭代打算,抛弃xib/nib吧!

app升级测试

app升级测试是最近感触比较深的一个问题,特别是应用大改版时。在几次升级的过程中总结出了几点:

测试要针对所有的已发布版本(难度有点大,特别是早期版本,尽量吧),否则如果有纰漏被用户卸载可不好玩。

如果版本涉及到本地存储方式的修改,尽量兼容之前的版本,实在搞不定可以重置这些数据,但一定要提示用户(虽然大多数数据时缓存数据和登录信息)。

其他小问题

需要注意ios对文件名长度有限制,因为这个曾导致应用的图片缓存失败!通用的解决方式对原文件名称hash后存储,SDCWebImageView里面有一个很好的算法,可以参考下。 系统版本兼容问题,ios5以下AutoReleasePool只在主线程里有,其他线程不会自动派生,而ios5以上的会自动派生。现在都在ios5以上开发,但如果安装到了ios4.x的设备上可能会导致内存泄漏。 图片资源需要统一管理,单例的Manager进行管理,方便支持换肤等功能。 http://ivoryxiong.org/devops/2013/04/10/ios_dev_refactor_and_thinking/

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016.02.25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档