如何打造高质量的APP 服务系统开发部技术分享第四期 徐斌
前言 听众跨度大,广度优先 纯手工打造,多听少看 个人经验谈,欢迎拍砖
为什么要做高质量的APP 做软件和做游戏的区别? 开发自身成长 团队技术氛围
高质量的APP具备哪些特点 UI设计&交互设计 速度 稳定性 安全性 兼容性 流量&耗电量
UI设计&交互设计 前期-仿IOS. 中期-寻求差异化. 后期-MD风格+公司主色调.
速度 速度和效果的关系:互相争夺CPU,互相掩护 用动画拖延执行时间. 代码执行效率低下,影响帧数
稳定性 crash率 应用恢复深度
安全性 接口安全 代码安全 数据安全
兼容性 屏幕兼容性:横屏/竖屏,iphone/pad. 版本兼容性:高sdk独占.低sdk兼容
流量&耗电量
黑科技 插件化/hotfix 进程常驻
怎么做 事前:编码手段 事中:程序设计 事后:监控优化
编码 规范.决定能不能做事情. 风格.决定能把事情做得多好.
规范篇 参考<<xx编程规范>>,针对项目实际情况微 调. CodeReview 代码提交规范.
风格篇 严谨,思虑周全. 技术评审,针对具体问题的实现思路. 多看优秀代码. 是否用轮子以及用合适的轮子.
设计 跨页面的事务处理方式 避免反复的网络请求 适当的loading样式和错误提示 尽可能快的显示数据 实体感觉,鲜明形象,有意义的动画
跨页面的事务处理 用户操作 事件传递
避免反复的网络请求 Request整合 适时刷新 缓存
loading和error提示 供用户浏览的页面 供用户输入的页面 多样化的错误提示
尽可能快的显示数据 预加载数据 阶段性展示 减少组件数量和嵌套层数
因视频文件较大,邮件传播的ppt中以url代替视频 http://v.youku.com/v_show/id_XNzMxNzY0NjYw.html
监控 IDE输出信息 Crash统计 网络质量统计 行为统计
性能分析常用工具 DDMS:内存分析,方法耗时分析.Network/Gpu使用 情况. HierarchyViewer:UI层级分析,绘制过程各阶段耗时 分析. leakcanary:apk形式监控内存泄露. 手机开发者选项:调试/网络/绘图/监控
UI设计&交互设计 速度 稳定性 安全性 兼容性 流量&耗电量 UI设计师+编码风格+程序设计 监控优化 监控,架构设计 规范 需求优化,规范 编码风格
从头开始or优化? 紧急程度 时间成本 团队认可程度
时间从哪里来? 开发时间:做一个高效率的码农. 维护时间:没有bug的世界是怎样的?
职业素养 仔细阅读需求文档. 对待bug的态度. 思维不局限,眼光放长远. 深思熟虑,一气呵成,避免非需求引起的代码 重写.
拆分/各司其职 纵向:MVC-MVP-MVVM(业务模块结构统一) 横向:AOP(http,file,device,log...)
善假于物也 开发工具 调试工具 翻墙工具 打包工具 脚本 其他黑技能
谢谢