WeexConf 2017:Weex 新版发布,推出 Market 插件市场

  • 徐川

2017 年 1 月 20 日

话题:移动语言 & 开发架构前端

本文首发于移动开发前线微信公众号(ID:bornmobile),欢迎关注 InfoQ 旗下移动垂直号!

1 月 12 日,InfoQ 记者应邀参加阿里在杭州举办的 WeexConf 2017 线下活动,这次活动不仅介绍了 Weex 的最新进展和未来展望,也带来了丰富的技术分享,目前整场活动的演讲视频和 PPT 已放出,可以在这里下载。

本文根据活动上午的分享整理而成。

Weex 生态体系

Weex 是阿里巴巴发布的跨平台开发框架,它于 2016 年 6 月底正式开源,在约半年时间里获得超过 10000 star,并入选 Apache 孵化器项目。

目前,阿里主要 App 均已使用 Weex,覆盖会场、活动、社交、搜索等场景,在 2016 年双十一覆盖了超过 99% 的主会场。并且 Weex 已有多家外部公司应用,包括富途证券、Ping++、饿了么、众安保险、今日头条等。

Weex 启用新官网和新 Logo

Weex 启用了新视觉形象,为阿里云资深视觉设计师曳影设计。

同时,Weex 启用了新官网,优化了中文文档和使用手册,并发布了市场Market

Weex 理念的重新诠释

在活动上,天施回顾了 Weex 的发展,并重新诠释了其设计理念。

Weex 有一句口号,叫“Write once run everywhere”,这个理念之前 Java、Qt 等也曾经提过,并取得了一定的成功,但在移动时代,很多人认为它不再适合移动开发,原因是 Android 和 iOS 巨大的平台差异,以及截然不同的技术栈。因此,React Native 在发布时采用了另一个口号:“Learn once write everywhere”,使用相同技术为两个平台的不同设计分别编写代码,并实现一定程度的代码重用。

天施认为,随着时代发展,实际上“Write once run everywhere”又开始变得可行,因为从 iPhone 发布到现在,移动互联网已经经过了 10 年发展,两大平台的创新开始进入平缓阶段,并且随着互相借鉴,两个平台的差异在逐渐缩小。Weex 在整合不同平台 API 上所花的精力并没有想象中大。

同时,“Write once run everywhere”不代表不尊重端的特点,Weex 支持原生扩展,来利用目标平台独有的特性。Weex 的语法在设计上遵守了 HTML5 规范及最新的规范草案,同时为移动端特殊情况留下可扩展的空间,Weex 团队认为这是连接原生和 Web 的最佳方案。

Weex 插件机制和组件市场

与之前相比,Weex 在架构上做了调整,增加了 Market 层,即第三方组件和插件。

Market 是 Weex 团队最新发布的开放式插件市场,支持由官方团队、合作伙伴和社区开发者提交的套件和插件。Weex 将提供一个可插拔的插件层,通过其构建系统将第三方插件和 Weex SDK 集成到一起。

Market 是 Weex 发展上很重要的一步,从架构上,可插拔的插件层让 Weex 变得更加灵活,从社区化上,Market 将有助于让更多的开发者参与到 Weex 生态的建设上来。

Weex 与 Vue 2.0 生态互通

在 2016 年 9 月份,Weex 团队宣布 Vue.js 作者尤雨溪加入团队担任技术顾问,随后在 Weex 和 Vue 生态互通上做了大量工作。

目前,Weex 的 0.9 版本已经支持 Vue 2.0 语法,并对一些特性做了增强,并且还计划支持 vue-cli、vuex、vue-router 等工具和周边库,在未来,Weex 还计划支持绝大部分 vue 第三方工具和组件。

在 Vue.js 中有一个非常棒的 HackerNews Demo,Weex 团队将其使用 Vue 2.0 和 Weex 进行了重写,对于从 Vue 转过来的开发者将是很好的学习材料。

通过这次生态互通,Vue 开发者在移动设备上可以更方便的迁移至 Weex,两者进行生态绑定,可以在社区和宣传上形成合力。

Rax:使用 React 语法写 Weex 应用

Rax 是基于 React 标准的渲染引擎,由淘宝 FED 负责人圆心带领团队研发,目前已经开源:https://github.com/alibaba/rax ,团队在 React 和 React Native 上有深厚积累,他们之前开发了 React-Web,兼容 React Native API 的 Web 框架。

Rax 在 Weex 中的定位是替换 JS Framework,使用兼容 React 语法的 DSL,通过 Weex 和 Rax,你可以将 React App 进行少量改动即可迁移至 Weex。

Rax 架构设计如下:

Rax 采用 Weex 作为其 iOS 和 Android 平台的容器,对于 Weex 来说意义重大,在之前 React 与 React Native 相互绑定,使用了 React 就不得不使用 React Native,而现在 React 开发者又多了一种选择。与此相对的是,React Native 没有办法从 Vue 生态中获取开发者。从竞争角度来看,对 Weex 非常有利。

当然,Rax 的眼光并不局限于 Weex,除 Weex 之外,还支持 Browser 和 Node.js 等其它环境,可以说是非常具有野心的一个开源项目。

目前 Rax 已经在阿里内部获得广泛应用。

总结

本次 WeexConf 上 Weex 发布的内容非常丰富,可以说是 Weex 发展上的又一座里程碑。Weex 作为国内首个加入 Apache 孵化器的移动开源项目,在社区和生态上的建设是它能否成功孵化的重要指标。这次的 Market 和与 Vue 生态的打通让我们看到了它的努力,而 Rax 也让 Weex 获得了更多潜在的开发者,可以说是交上了一份相当不错的答卷。

移动语言 & 开发架构前端