简单中的不简单,iPhone应用开发实践总结:《社区类iPhone应用开发的技术实践》 | iOS DevCamp | 7月27日 北京
主题简介:很多iPhone应用产品的开发,并没有多少技术亮点,而更多的是对各种iOS开发技术的灵活掌握和应用,以及经验的积累。本演讲将结合讲师这些年自学iPhone开发的历程,结合自己多个应用开发实践的案例,与大家分享iOS开发的技术实践,内容将涉及:开源框架的选择,如何搭建程序架构从而写更干净的代码,如何有效使用内存和防止内存泄露,如何巧妙运用快捷键,快速加载图片的实践过程,等等。这些看似普通的技术点,将蕴含着讲师这些年iOS开发技术实践的最重要的总结。
演讲嘉宾:陈剑飞,儒果网络科技(麻麻帮)创始人。上海交大毕业后从事HP/Cisco硬件产品经理超过10年,2010年开始自学iPhone程序开发,是国内最早一批从苹果应用商店淘金的个人开发者之一。目前团队获得来自创新工场的天使投资,重点关注移动终端的亲子育儿社区。
【幻灯片在线观看】*:
<iframe src="http://www.slideshare.net/slideshow/embed_code/13838599" width="597" height="486" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen=""> </iframe>
备注:* 因为炫姐姐对SlideShare这一平台的偏爱,尽管需要使点小技巧才能上传分享,但是炫姐姐还是坚持选择了这一功能强大却简洁好用的平台。一来对国外这些开发出优秀的工具和平台、造福于互联网和人类的团队表示致敬,二来则是对国内对于这些优秀的工具和平台的限制表示一下立场。读者如果不能正常浏览,那么需要像炫姐姐一样用点小技巧。而对于那些还是不知道炫姐姐在说什么的小白读者,可以移步到这里查询原因。
【幻灯片下载页面】: iOS DevCamp幻灯片分享:社区类iPhone应用开发的技术实践 | 麻麻帮 陈剑飞 http://download.csdn.net/detail/shiningxyy/4473583 -来自CSDN下载频道(不需要积分,自由下载)
【幻灯片内容刚要】:
1. iOS DevCamp Produced by CSDN
2. 简单中的不简单 社区类iOS应用开发的技术实践分享 陈剑飞, 麻麻帮创始
3. 开始协作之前 • 代码缩进 -‐ (void)someMethod 参考: { – 空格长度(2?4?) 1. [someOther boolValue]) { if (Apple “Coding Guidelines for – 函数声明中的空格 //Do something important Cocoa” – 行长度是否要限制?限制多少? } 2. } Google “ObjecZve-‐C Style – 结尾”{“的位置 Guide” – 代码中的空行 改写为 • 变量命名规则 3. ZDS “Code Style Guide” – 选择合适的词 (Info? Data? Object?) -‐ (void)someMethod { – 变量名长短 if (![someOther boolValue]) return; – 类变量的下划线 – 大小写 (匈牙利命名法?驼峰命名法?) //Do something important }
4. 开始协作之前 • 函数命名规则 -‐ (void)someMethod 参考: { – 清晰有效,不会有歧义 1. [someOther boolValue]) { if (Apple “Coding Guidelines for – 慎用缩写(SND, PSWD, IMG),写全称 //Do something important Cocoa” – 不同类中相似方法,尽量用同样的名字 } 2. } Google “ObjecZve-‐C Style • 注释要求 Guide” – 大部分情况下函数名和变量名应该能说明问题 改写为 – 不要用注释临时删除代码 3. ZDS “Code Style Guide” – 不需要注释的代码是最整洁的代码 -‐ (void)someMethod { if (![someOther boolValue]) return; //Do something important }
5. 开始协作之前 -‐ (void)someMethod 参考: { • 语法相关 1. [someOther boolValue]) { if (Apple “Coding Guidelines for – 对于空值的判断 //Do something important Cocoa” – 对于布尔变量的判断 } 2. } Google “ObjecZve-‐C Style – 代码主路径 Guide” – Dealloc方法中的代码顺序 改写为 – Protocal 和#pragma的使用 3. ZDS “Code Style Guide” • Project文件夹的组织 -‐ (void)someMethod { if (![someOther boolValue]) return; //Do something important }
6. 工欲善其事,必先利其器 • Xcode的键盘快捷 – Command + Up – Command + L – Shia + Command + F – Command + F • Xcode 标记工具 – #pragma mark – 行标记 – //TODO: //FIXME: //MARK: //!!!: //???:(从Xcode4开始写在{}内无效) – #warning • -‐Xcode辅助工具 – Instruments (Leak, AllocaZon, Zombie) – Analyze
7. “⼀一个程序员的职业修养” • 整洁代码 推荐阅读: – 没有孤立的数字 Robert. C. MarZn (著) 韩磊(译) – 短函数 人民邮电出版社 – 不复制代码 • 代码洁癖 • 阶段性重构的必要性 • 面向对象的思考 • 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
14. 谢谢 jobs@mamabang.com
分享到:
相关推荐
简单中的不简单,iPhone应用开发实践总结:社区类iPhone应用开发的技术实践 | 麻麻帮 陈剑飞 主题简介:很多iPhone应用产品的开发,并没有多少技术亮点,而更多的是对各种iOS开发技术的灵活掌握和应用,以及经验的...
地理信息系统导论,科学出版社,陈剑飞等,翻译,,,,,,
2. 27 2. 27 2. 27 2. 27 1. 61 2. 60 3. 18
广东工业大学实习报告 "姓 名"陈剑飞 "学 号"3108002721 " "专业班级"信息工程学院 电子信息工 "实习时间"2011/7/13 –2011/8/30 " " "程(4) " " " "实习单位"深圳天祥质量技术服务有限公司广州分公司(Intertek ...
多面体BiVO4的合成及光催化性能研究,陈剑飞,于然波,采用水热-煅烧两步法制备了多面体BiVO4,用XRD,TG/DTA,SEM,UV-vis DRS表征多面体BiVO4的物理化学性质,并且以10 mg/L亚甲基蓝(MB)为目标降