2008年,苹果发布AppStore,Google发布Android 1.0,自此开发者群体里有一群人开始涉足移动互联网,我们开始做App了。随着智能手机和移动网络的普及,越来越多的产品服务实现无线化。
在南天(介绍)QCon的分享中可以看到,不到10年的时间里移动开发者已经超过300万,iOS和Android双平台App总数近500万。面对日益成熟的智能手机用户,他们对体验的要求越来越高,作为移动开发者也将面临更大的问题和挑战,开发一款应用,不再是单纯的写一种代码。移动领域知识需求也正在经历一场大爆炸:跨平台,Hybrid,数据统计,内存管理,网络优化,传感器,等等各方面知识扑面而来。所幸不论是社区还是厂商,都在积极的分享他们的开发经验,开放他们的服务能力,贡献他们的开发工具,在很大程度上补齐了移动开发者的能力缺口。
在淘宝,我们的应用经历了从0到亿的过程,在这个过程里我们不断的遭遇挑战,定义问题,产出方案。多人多团队平行开发,模块复用,动态加载,增量更新,快速修复,研发效率,特色体验,版本解偶,等等。在解决这些问题的过程中,阿里巴巴做了各种尝试,大规模使用HTML,升级框架全栈开发,容器化开发组件接入模式,优化网络协议,改造无线TLS,使用HTTP2.0,跨平台界面框架,等等一系列方案。
时至今日,在淘宝,我们的开发生态已经逐渐成型,完善的基础设施支撑,让业务开发可以没有后顾之忧,专注业务逻辑实现;先进的开发模式,不同团队可以独立开发各自的组件,独立开发,独立编译,独立运行,互不干扰。动态发布模式,通过Hotpatch框架和增量发布机制,让发布不再纠结。组件库和动态界面框架,解决业务组件在功能开发中最关注的跨平台问题。
在阿里巴巴,淘宝走在前边趟过了一个一个坑。我们希望整个移动开发领域的生态也能尽早建成,让移动开发者从万物生长,百花齐放早日过渡到各司其职,繁荣有序。
南天的分享中我们看到,移动开发生态会基本区分界面渲染,逻辑处理和底层设施三个层面。而淘宝在这三个层面上对社区的回馈思路有所区别:在基础设施上以云开放的方式对移动开发者提供支持。通过阿里云和阿里百川两个开发平台,为开发者提供云推送,HTTPDNS,移动加速,数据采集等丰富的服务。
在界面渲染上则会开源内部沉淀的框架级产品——Weex。Weex与Web,Hybrid一脉相承,继承了跨平台和高实时性有点,具备标准语言,通用IDE等优势,着力解决了Native运行性能和体验问题。为开发者在应用级,界面级和组件级提供支持,开发者可以根据具体情况选择Weex的支撑层级,循序渐进。
移动开发者似乎重走了20年前PC互联网初现时期的历史,用蛮荒形容我们过去近10年的环境似乎有些耸听,但退步是必然的。至此,我们欣喜的看到在阿里巴巴,在淘宝内部开发生态已经形成,整个移动开发领域生态渐成,移动开发前景光明。
作为一名移动开发者,在生态渐成的过程中,我们也要升级个人能力,找到自己在生态中的角色。在日益繁荣,日益有序的环境中,持续成长。