6月24日参加infoq举行的GMTC移动技术大会,并做了1场演讲,还参加了晚上的Swift3.0闭门交换会议,受益很多。
6月24日上午是全部大会,首先是手机淘宝的长恭,微信的赵原,京东的王永杰做了移动未来开发展望的开场演讲。然后是Facebook初期员工覃超做了Facebook App演进进程的演讲,主要介绍了Facebook App各个版本的技术实现和经验总结,印象比较深的有下面几点:要选择对用户优化的技术而不是对开发团队优化的技术;现在FacebookApp已是通过appurl scheme跳转的组件化项目,主要是iOS原生技术实现,Facebook已有1000多iOS工程师,全部项目只有1个codebase,使用Mercurial做版本管理,git已太卡了,使用Buck编译项目;新技术的接受曲线,到达高潮后会有1个低谷,然后走向正常的发展阶段。
然后是Square的邵震的演讲Mobile Growth的方法和实践,是近几年流行的增长黑客相干的实践,介绍了Growth实践中的1些心得,最重要的是保存,工程师驱动,通太高层战略推动底层履行。然后介绍了1些A/B Testing系统的实践。Deep Link的趋势和使用,就是通过1些网页链接进入App。
下午的演讲分3个分会场,我主要参加了Swift分会场和插件化分会场。Swift分会场第1场是傅若愚的Swift函数式编程,函数式编程是个不太容易讲的话题,主要是触及的概念比较多,这个演讲有比较易懂的方式介绍了函数式编程。
Swift分会场第2场是我的演讲From Java/Android To Swift iOS,主要是分享Android开发者如何快速上手Swift开发,和1些Swift项目经验和开源框架,还介绍了Swift3.0的1些新特性,感兴趣的可以下载ppt看看。
然后去了插件化专场,听林光亮介绍了Small插件化插件,他主要先分析了Android插件化的各种技术和插件化框架,然后介绍了small插件化框架的实现思路和技术实现。这个插件化方案我感觉是目前比较公道的,技术上也比较先进,希望后面项目能用上。
最后是聚划算的朴诚介绍聚划算的Luaview动态化开发实践,LuaviewSDK提供了1种动态化能力,合适原生App的某些页面嵌入动态内容,性能很好,和React Native,weex等插件化方案比较,是1种更轻量的插件化方案。
25日上午参加的是架构演进专场,第1场是手机天猫解耦之路,介绍了天猫iOS App演进进程和组件化开发技术,通过BeeHive框架实现解耦依赖,统跳协议解耦界面,印象深入的是活用了Web服务器的UrlRewrite技术,通过正则表达式Rewrite URL。
第2场是滴滴李贤辉滴滴iOS组件化优化与实践。介绍了滴滴iOS App组件化的背景,70个开发人员,7条业务线,70万代码。代码冲突多,发布困难。介绍了1些组件化的专项技术,业务线接入,页面结构,导航管理组件,同享地图组件,灰度系统apollo等,干货很多,值得回去仔细研究学习。
上午第3场是iOS遗留代码重构,从CoreData迁移到Realm说起。介绍了抽象分支的概念,通过抽象层替换旧代码模块。特性开关,4种实现方式,如后台服务,ab test框架。通过适配器模式透明支持coredata和RealmDB持久化服务。最后介绍了Realm的坑,不支持集联删除,不支持多态,难以理解的反向关联。遗留代码的重构确切是个麻烦的事情,这个演讲对iOS项目的重构有1定参考价值。
下午参加了性能优化专场,第1场是微信叶润桂的演讲《微信客户端怎样应对弱网络》。前面主要介绍介绍了针对TCP/IP协议的移动网络优化,介绍了各种算法。然后讲授了微信发图片协议合并优化,上传图片后,由图片服务器直接通过内网和业务服务器通讯。低本钱重传,下降重传的包大小,或使用流式协议。渐进式图片,有损上传和下载。最后安利了后面打算开源的Mars跨平台开源网络组件。
第2场是杨刚的360手机卫士性能优化之路,首先介绍了性能优化的各种问题,lint和Findbugs,自有代码检测工具,基于jenkins平台的检测系统。aspectj重写器,实现网络静态埋点的例子。然后介绍了性能监控,进程的冷热启动等。由于360手机卫士总是优化手机杀其他App的进程,这兄弟发问环节被问的比较愁闷。
最后听的演讲是支付宝App的性能稳定性和运维实践,介绍了支付宝App3个阶段的架构演进,性能优化实践和超级App的运维体系介绍。
全部大会大概有30多场演讲,很多都是各大公司的实践经验分享,干货很多,对我来讲帮助比较大的是安卓的插件化和iOS的组件化开发,由于业务发展需要,这些技术后面需要逐渐引入了。
上一篇 webAPP 背景图设置
下一篇 SpringMVC各种参数的绑定