经过一个多月的努力终于把第一个版本完成了,虽然功能不太多,但确实花了比较多的精力去学习和研究。其实还有很多可以完善的地方,总感觉好像永远都做不完,经常会想到一些可以增加的功能。由于项目时间的关系,只能暂时到一个阶段,再加上已经超过比较多的原先的需求。功能上主要是配合网络平台进行客户端的操作,以浏览为主,结合部分手机的优势,比如拨打电话、发短信、导入本地通讯录等特色功能。
趁着周末有时间总结一下:
1、总体的时间分配:
最初的一两周都在研究与适应Mac环境,由于我的笔记本CPU不支持VT所以没有办法安装Mac系统,只能用公司的黑苹果,后来申请了Mac mini。除此之外还要搞好xcode的证书配置、真机调试等细节的问题。
用了一到两周时间适应Xcode及开发语言等。搞定自定义类、方法、委托等基础的知识。
通过时间的磨练越来越有感觉,用了大半周的时间终于适应与解决内存泄漏的问题,解决闪退的问题。
一周多的时间增加组件,提升程序应用性,加入了异步加载、异步请求等操作。
中间最多的就是研究控件如何使用,还好网上的资源比较丰富,具体的问题一般都会有解决办法。
2、界面设计与交互
整体的感觉就是界面上不需要想太多,用最原始的控件处理业务也是非常的漂亮。不像Android平台很多都需要自定义界面,造成开发的麻烦与标准性不高。目前使用到最多的就是UITableView控件,用于列表显示与信息展示;而后是UIWebView控件来显示HTML的内容;整体布局使用UITabBarController,肯定会用到很多的NavBar。
3、学习资源比较少
开源的资源相对少一些,但SDK的功能确实挺强大。
4、开源组件的使用
1)SBJSON用于解析Json格式的数据,由于网络传输的格式是Json所以这个组件肯定是必须的
2)ASIHTTP用于网络请求的处理,刚开始只是使用最原始的NSURLConnection,但后来发现使用ASIHTTP组件可以更好的控制请求队列以及图片上传、进度条显示等功能。
3)SDWebImage用于显示Web端图片的异步处理,结合TableView使用非常的方便。
4)MBProgressHUD用于显示进度条及等待的无限菊花,不过建议可以使用简化版本的SVProgressHUD这个更容易使用一些,后期会做一下调整
5)EGORefreshTableHeaderView用来实现微博刷新的功能,但目前还没有用得上的地方。
总结这些内容其实在IOSBoilerplate这个项目中已经整合好了,大家如果有兴趣可以直接下载该项目即可。不过我自己把每一个组件组合起来,在这个过程中也学习到了很多开发的技巧,多看一些开源的优秀代码对自我的提升有很大的作用。
后续要增加的功能和用到的技术:
1)GPS的应用,结合地图信息可以计算距离提供时间安排的参考;提供相关的地图截图作为附件邮件发送等。
2)通讯录的强化,结合通讯录的数据作为数据来源之一,进行细致的加工处理
3)本地持久化处理,结合Sqlite进行数据的储备,增加该功能后需要再考虑数据同步更新的问题。
4)TableView的分页处理优化,支持拖动、手动分页等功能
5)增加View切换的动画效果
6)iPad版本的研发。个人总感觉iPad应用才会更实际一些,不过目前iPad用的人可能会少一些,先把iPhone版本搞得完美一些再说。
7)结合UIImageView与PageControl做一个识人小游戏,增加CoverFlow的方式查看员工照片等。
更多细节可以关注微博:http://weibo.com/eulbq