简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》 | iOS DevCamp | 7月27日 北京
主题简介:很多iPhone应用产品的开发,并没有多少技术亮点,而更多的是对各种iOS开发技术的灵活掌握和应用,以及经验的积累。本演讲将结合讲师这些年自学iPhone开发的历程,结合自己多个应用开发实践的案例,与大家分享iOS开发的技术实践,内容将涉及:开源框架的选择,如何搭建程序架构从而写更干净的代码,如何有效使用内存和防止内存泄露,如何巧妙运用快捷键,快速加载图片的实践过程,等等。这些看似普通的技术点,将蕴含着讲师这些年iOS开发技术实践的最重要的总结。
演讲嘉宾:陈剑飞,儒果网络科技(麻麻帮)创始人。上海交大毕业后从事HP/Cisco硬件产品经理超过10年,2010年开始自学iPhone程序开发,是国内最早一批从苹果应用商店淘金的个人开发者之一。目前团队获得来自创新工场的天使投资,重点关注移动终端的亲子育儿社区。
推荐指数:3星半
推荐理由:实实在在的实践总结,很多的to do ¬ to do 的 tips,简单中的不简单。
不足之处:总结略显简短。
现场评分:3.6
【讲师现场靓照】
【幻灯片在线观看】*:
备注:* 因为炫姐姐对SlideShare这一平台的偏爱,尽管需要使点小技巧才能上传分享,但是炫姐姐还是坚持选择了这一功能强大却简洁好用的平台。一来对国外这些开发出优秀的工具和平台、造福于互联网和人类的团队表示致敬,二来则是对国内对于这些优秀的工具和平台的限制表示一下立场。读者如果不能正常浏览,那么需要像炫姐姐一样用点小技巧。而对于那些还是不知道炫姐姐在说什么的小白读者,可以移步到这里查询原因。
【幻灯片下载页面】: iOS DevCamp幻灯片分享:社区类iPhone应用开发的技术实践 | 麻麻帮 陈剑飞 http://download.csdn.net/detail/shiningxyy/4473583 -来自CSDN下载频道(不需要积分,自由下载)
【幻灯片内容刚要】:
1. iOS DevCamp Produced by CSDN
2. 简单中的不简单 社区类iOS应用开发的技术实践分享 陈剑飞, 麻麻帮创始人
3. 开始协作之前 • 代码缩进 – 函数声明中的空格 – 行长度是否要限制?限制多少? – 结尾”{“的位置 – 代码中的空行 • 变量命名规则 – 选择合适的词 (Info? Data? Object?) – 变量名长短 – 类变量的下划线 – 大小写 (匈牙利命名法?驼峰命名法?)
4. 开始协作之前 • 函数命名规则 – 清晰有效,不会有歧义 – 慎用缩写(SND, PSWD, IMG),写全称 – 不同类中相似方法,尽量用同样的名字 • 注释要求 – 大部分情况下函数名和变量名应该能说明问题 – 不要用注释临时删除代码 – 不需要注释的代码是最整洁的代码
5. 开始协作之前 • 语法相关 – 对于空值的判断 – 对于布尔变量的判断 – 代码主路径 – Dealloc方法中的代码顺序 – Protocal 和#pragma的使用 • Project文件夹的组织
6. 工欲善其事,必先利其器 • Xcode的键盘快捷 • Xcode 标记工具 • -‐Xcode辅助工具
7. 程序员的职业修养 • 整洁代码 – 没有孤立的数字 – 短函数 – 不复制代码 • 代码洁癖 • 阶段性重构的必要性 • 面向对象的思考 • Modal-‐View-‐Controller 架构
8. 踩在巨人的肩膀上 • 常见开源框架选择 – ASIH5pRequest – SVProgressHUD – SDWebImage – TouchJSON – EGORefreshTableHeaderView • 保持代码更新 (gitHub) • 熟读源代码 • 改造合适自己的版本
9. 社区类应用特点 产品设计对策 • 用户是内容的产生者 • 需要简化输入,图片上 传,视频上传等 • 支持横屏输入,语音输入 • 支持文字草稿,文字复制 • 服务器和手机端有大 • 精简数据传输 量数据交互 • 本地缓存机制实现与更新 策略 • 用户对于刷新和等待 • 异步与同步选择 的忍受度低 • 长时间操作的提示分类
10. 社区类应用特点 技术实现 • 设计统⼀一的跳转方式 • 大量页面跳转 (程序内URL) • 在传统View Controller基础• 多数页面需要和服 上设计多个继承类,封装 务器交互 了大量与服务器同步交互 或者异步交互的方法 • 设计统⼀一的通知管理器,• 通知频繁 管理全局服务器通知,在 每次与服务器的数据传输 中,放置通知字段
11. 实例一:瀑布流实现中的若干问题 • UIScrollview + 自定义View • 视频首帧图片延迟加载 • 内存效率问题, 如何释放不 需要显示的图片所占用的内 存 • 动态加载效果
12. 实例二:有关通知的设计 • 三个层次的通知 – Push NoZficaZon – 程序内通知 – 通知中心 • 与服务器每次交换数据都含有 通知结构 {name=“xxx”, code=“xx”, data=“”, noZf=“”} • 每个页面都含有通知显示
13. 关于 Memory Warning • 图片和视频占用内存多,Memory Warning 是经常的,在viewDidUnload中释放非必须 资源,注意,该资源应该能被viewDidLoad 中重新创建,不然不应该释放 • 尽量用真机测试,不然无法发现潜在 memory warning 问题 • 如果在程序中可预见性的会产生大量 autorelease对象,应该自建autorelease pool