iOS开发---业务逻辑
1. 业务逻辑
iOS的app开发的最终目的是要让用户使用, 用户使用app完成自己的事就是业务逻辑, 业务逻辑的是最显眼开发工作.
但是业务逻辑对于开发任务来说, 只是露在大海表面为上那一小截冰山, 为了支撑业务逻辑, 需要大量的其他功能的开发.
如果只看到了业务逻辑的开发, 而没有全面的审视其他开发工作, 很容易在估计进度, 安排资源, 分解任务等方面估计不足.
那么, 开发一个iOS app, 业务逻辑之外, 或者说在支撑业务逻辑方面, 还有哪些容易忽略的开发工作呢?
2. 身份验证
大多数的app, 会需要一套身份验证系统, 把用户信息进行管理, 验证. 并且该功能在开发的时序上, 应该是靠前的. 会需要开发以下功能:
- 让用户能够注册, 登陆, 登出.
- 关联社交网络的账号, 导入社交账号信息, 解除社交账号绑定.
- 对用户的会话, 或者令牌进行相关处理.
- 针对用户是否登陆, 以及用户的不同类型, 屏蔽, 启用相关功能. 并且在用户登陆成功后, 跳转到登陆前要进入的视图.
4. 自定义控件
赞美伟大的UI设计, 他们进行设计的时候, 总是会考虑惊艳的视觉效果, 容易设计出一些iOS本身不存在的控件. 虽然在github上又大量的第三方开源控件, 但是很难说有和UI设计一致的.
这时候, 要么需要从头开发自定义控件, 要么需要将开源的控件进行代码修改. 通常这都是颇有难度的耗时工作.
3. 性能优化
一个运行缓慢, UI响应延迟的app不是好app, 一个耗费大量手机电量, 占用大量存储控件, 内存的app也不是一个好app, 一个会崩溃的app, 甚至都无法上架.
所有这些问题的解决, 都需要靠性能优化来解决. 这个工作常常需要在功能开发完毕后, 进行一次调整. 其中涉及较多有难度的技术问题, 更是增加了该工作的难度.
4. 测试和调试
很少有一个app, 开发完了之后即完全符合产品设计的意图, 又没有bug. 其实不是很少, 是完全没有.
当app功能开发完成的时候, 会发现不是想要的样子, 或者存在莫名的bug, 需要进行修改. 人们在估计工作量的时候, 很容易按照一次就能无bug完全正确的开发出功能, 这样估计太乐观.
5. 屏幕适配
iOS系统现在有4/4s, 5/5s, 6, 6p, ipad等多种尺寸, app需要支持几种设备, 界面就需要适配几种屏幕.
虽说有auto layout 之类的帮助你完成这项工作, 但是还是常常需要硬编码来进行适配.
想一想每开发完一个功能, 都需要在所有设备上都确认一下ok, 肯定会多花出一些时间.
6. 版本适配
iOS系统目前最多的是iOS7和iOS8, iOS6也有一些. 为了让app安装到更多人的手机上, 需要支持多个iOS版本.
但是, 各个iOS版本可提供的api, 以及系统的行为特性都是不一样的. 对于一些功能, 需要些多套代码, 调用不同的api来实现.
7. app操作引导
就是app使用教程, 做的好的一些app, 都加入了交互式的教程, 这在游戏类或者工具类的app中尤为常见.
这也是一项可能忽略的功能, 当然这个功能不是必须的.
8. 点评引导
为了增加好评率, 一个优秀的app会在合适的时机, 合适的位置, 弹出对话框, 对用户说"亲, 上app store给个五星吧!".
9. 分享
大多数的app需要支持分享, 需要把qq空间, 微信朋友圈, 新浪微博等等的分享集成进来. 集成工作花样繁多, 注册第三方的信息也过程繁琐.
10. 反复迭代
产品经理对产品的认识随着开发也会变化, 有的功能会死掉, 有的功能会变掉, 有的功能会加进来.
如果只看到项目启动时需求列表里的的功能, 并认为最后实现的就是那些, 就略显天真了.
11. 缓存的处理
对于有后端服务器的app, 通常需要对一些网络请求的资源进行缓存. 以图片等较大的文件数据为主.
可以使用第三方的, 也可以自己做, 反正这项工作是摆在那里的.
缓存的有效期, 怎成清除, 允许的最大空间, 也都是要考虑和处理的.
12. app的发布
需要设置app的名称, 关键字, 描述, 制作漂亮的截图, 甚至是视频. 提交之后, 还得等着一周以上的审核时间.
学习:http://www.jianshu.com/p/7e5670e0ca2f