极客邦科技与阿里百川达成战略合作 Weex 宣布开源

阅读数:2063 2016 年 4 月 21 日

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

4 月 21 日,由 InfoQ 主办的QCon 全球软件开发大会在 北京举行。超过 150 名国内外技术专家将为大家带来一场技术盛宴。在大会的开幕式上,极客邦科技与 InfoQ 中国创始人霍泰稳,和阿里巴巴资深总监,淘宝 移动平台及新业务事业部、阿里百川负责人庄卓然(花名南天)共同宣布,极客邦科技与阿里百川达成战略合作,共建移动开发者生态。

同时,庄卓然还宣布,阿里百川移动应用全新技术解决方案 Weex正式开放内测,并将于 6 月全面开源。Weex 在官网提供了 Android Demo 下载,iOS 版正在准备中。

在过去一年里,极客邦科技迎来了高速发展,除了面向 5 年以上经验技术人的InfoQ之外,还创建了面向初级开发者的在线学习平台StuQ、面向企业内部开发者的内训服务GIT、面向高级技术管理者和决策者的EGO,以整合全球优质学习资源,帮助技术人和企业成长作为自己的使命。

阿里百川是阿里巴巴集团无线开放平台,通过“技术、商业及大数据”的开放,提供移动场景下的高内聚、开放式、行业领先的技术产品矩阵、成熟的商业组件和完善的服务体系,帮助移动开发者快速搭建 APP、加速 APP 商业化进程,全方位赋能移动开发者及移动创业者。

两者的结合,将为中国的移动开发者营造更优秀的社区氛围和成长环境。

Weex:阿里对移动开发最佳实践的最新思考

在上午的 Keynote 上,庄卓然向参会者做了《从万物生长到繁荣有序——重新思考移动开发》的演讲,回顾了过去十年移动开发技术的发展,分享了手淘对移动 开发最佳实践的思考,并介绍了手机淘宝推出的移动开发解决方案 Weex。在演讲过后 InfoQ 记者对庄卓然进行了采访,了解了 Weex 的更多细节。

Weex 是官方支持 iOS/Android/HTML5 三大平台的跨平台开发框架,使用 HTML/CSS/JS 开发原生应用,其原理类似 React Native,但理念有所不同。同时受到 Web Component 和Vue.js项目的启发,采用接近 HTML 标准的 DSL 进行开发,其在架构中的定位相当于 MVVM 中的 View 和 ViewModel。

从演讲和项目官网的介绍中我们可以知道,Weex 有如下特性:

  • 轻量级。低侵入性,简单易用。
  • 可扩展。丰富的内建组件。可扩展的 API,事件支持全面。
  • 高性能。快速启动和渲染,更好的用户体验。

官网上给出的 DSL 的例子如下,可以看到几乎就是 HMTL5:

复制代码
<template>
<div class="container">
<div class="logoContainer">
<image class="logo" src="http://t.cn/Rq9bcDm">
</image>
<text class="desc">
A framework for building Mobile cross-platform UI
</text>
</div>
<div class="textContainer">
<text class="text">Hello weex</text>
</div>
</div>
</template>
<style>
.logoContainer {
width: 750px;height: 500px;
align-items: center;justify-content: center;
background-color: #0054DC;
}
.logo {
width: 378;height: 84;
}
.desc {margin-top: 40px;font-size: 24px;color: #ccc;}
.textContainer {
width: 750px;padding-top: 200px;
align-items: center;justify-content: center;
}.text {font-size: 48px;}
</style>

与 React Native 的“Learn Once, Write Everywhere”——即重视平台的独立性的理念不同的是,Weex 重提“Write Once Run Everywhere”的说法,屏蔽底层硬件差异,一次编写即可生成三个平台的代码。

另外由于采用 Vue 模板的语法,使用 Weex 编写界面更加自然,符合前端开发习惯,无学习门槛。并且这样一来,Weex 开发将可直接利用现有开发工具的代码补全、错误检查等功能,提升开发效率。而 React Native 目前只有 Facebook 自己开发的一个尚不成熟的 IDE Nuclide,在这方面 Weex 更胜一筹。

Weex 支持三种与现有项目集成的方式,分别是:

  • Full Page。即整个页面都由 Weex 生成。
  • HTML5 组件。即 HTML5 页面里嵌入 Weex 生成的原生 UI 组件。
  • Native 组件。Weex 生成组件同样可以与原生代码编写的 UI 混搭。

据庄卓然介绍,Weex 的前身是 WeApp,一个用 JSON 配置原生 UI 组件来实现动态化 的框架,Weex 继承了这一点并做得更彻底,同时吸收 React Native、Web Component、Vue.js 等优秀项目和标准的思想,从而形成现在的项目,可以说是面向自身业务的解决方案的升级进化版本。在去年双十一大促 中,Weex 担任了双十一主会场的任务,取得了圆满成功。

目前,使用 Weex 需要在项目官网申请内测,最终会在 6 月份开源,在这期间,手淘技术团队将继续打磨这一项目。