Weex Proposal

Status

This proposal has been discussed at http://markmail.org/message/tdt775lpbtnlwd52 and has been accepted for incubation at Apache, vote result at http://markmail.org/message/cnkimnq3r2s6bdq3

Abstract

Weex is a framework for building Mobile cross-platform high performance UI. Weex enables developers to use Web-like syntax to build iOS, Android and Web UI with a single codebase.

Proposal

Weex provide an uniform Web-like syntax for develop native Mobile App UI. By leverage the Javascript engine that enable dynamic update, the process of App interfce and content update can be simple and controllable just like Web.Compared with WebView based UI framework which performance are limited, Weex use build-in native components instead.

Because of tag based syntax that maintain a consistent style with Web standards Weex using. Developers write in this language just like writting in HTML. After transforming to JSBundle by Weex tools, these tags will be rendered by build-in platform-specific components. The logic part of Weex syntax write in Javascript which don't need be compiled control these components.

The vision of Weex is to complement gap between platform-specific Native UI and Web technical based UI in Mobile age. The team behind Weex believe that dynamicly interface update and high performance should be achieved at the same time when people develop a Mobile App. Meanwhile duplicate work between the different platforms should be avoided.

Background

Prior to Weex, in order to develop high performance mobile application we need write at least three different codebase(iOS, Android, Mobile Web) or adopt WebView based UI technique(Apache Cordova for example) which can't satisfy the demand for performance.

A special task force at Alibaba Inc try to provide a solution for this problem has been setup since 2013. At first the team release a cross-platform rendering engine which render a special format JSON to native components on different platform. To output this JSON file the team had build a website which other developer can use to simply design final interface.

Although This solution had worked for a while, we found it not able to meet our UI developer's habits. Most of our UI developer have Web background which make them used to use tag based language to design App interface. Meanwhile we found the JSON file lacks of enough flexibility. The following discussion inspire we start to develop Weex.

Nowaday, Mobile Taobao App which developed by Alibaba Inc, the largest user volume eCommerce App in China has adapted Weex in a lot of UI. In the latest November 11th promotions(Alibaba's annual Singles' Day online shopping event), UI developers from Alibaba Inc have build more then 1,500 pages using Weex, 99.6% of all the promotional pages. The ratio of less than one second page open time is more than 90%, the frame rate is 53.0~58.5(depend on device) due to the high performance of Weex. In addition to user experience improvement, the productivity of page development and the efficiency of content delivery both have been improved.

After open-source and have got a lot of followers in chinese mobile App development community, several of popular Apps listed on chinese top charts have adopted or planning for adopt Weex.(UCWeb, Tmall, YouKu, Suning etc...)

Current Status

Weex has become an open source project since June 2016. It has been used at a lot of Alibaba producted mobile softwares which running on the mobile phone of millions of users.

Weex code repository located at GitHub. All development activities have already happened on GitHub as open source manner.

Community

The community surrounding Weex is a variety of developer which have different technique background.iOS, Android, Web developer must collaborate closely to implement most Weex feature.

Currently total 61 contributors involved in the GitHub development process. Weex repository has received 791 pull requests until Nov 2016.

Beyond committer from Alibaba Inc, Weex community welcome anybody join us. Nowaday Evan You from Vue Technology LLC, Wang Run Xiang from Aipai Inc and lots of GitHub users have contributed source code or document to Weex.

Weex syntax is inspired a lot from Web framework Vue.js. For better future of both Weex&Vue.js, we have cooperated with Vue.js community from begin of Weex. The main author of Vue.js Evan You have became committer & mentor of Weex in the first half of 2016.

At the time of this writing (Nov 2016) Weex GitHub star number is 8249, watch number is 1841, fork number is 1090.

Weex use GitHub issue for problem tracking and technical discussion. Currently 813 issues have been submited, 756 of them have been solved.

Initial Developer

Meritocracy

The intent of this proposal is to start building a diverse developer and user community around Weex following the ASF meritocracy model. After Weex becoming an OpenSource project, we have been working to make an open governance structure for project leadership to encourage individual and company involvement and contributions.

Alignment

The Weex community believes that the Apache Software Foundation promotes and enforces the sort of community that will best serve the future of the project. It is also believed that Weex can enhance the ASF by expand the technical scope of ASF in Mobile age.

Relationships with Other Apache Products

We think Weex is an effective supplement to Apache Cordova. Both Apache Cordova and Weex help developer for leveraging Web development technique in Mobile age. Boot developer the ability of delivering consistent content to different platform. With our sincere heart and determination to open source, we will always keep an open mind for Apache community.

Known Risks

Difficult to refuse platform-specific features

"Write Once Run Everywhere" is one of original goal of Weex. But as Weex provides more feature, we have received more suggestions for implement single platform exclusive feature.

Inexperience with build international community

Although we are full of passion about build a successful Opensource project and a community, Weex initial team lack of experience about participate in international community. After consulting with our mentors, we know modesty will be our code of conduct in Apache community.

Homogeneous and Reliance on salaried developers

Since the Weex Project has been mainly developed to date by Alibaba Inc, the vast majority of initial committers to the project are from Alibaba Mobile engineering team. As an Opensource project, Weex project has received lots bug fixes and enhancements from other developers(not Alibaba Employee). We will continue to encourage more independent developers to participate in Weex.

We know Apache Way is about people, not corporations. After Weex developer community grows, we hope the contribution ratio from Alibaba salaried developer will decrease.

Source Code

Documentation

External Dependencies

Required Resources

Sponsors

Champion

Nominated Mentors

Unofficial Mentors

Sponsoring Entity

Next Goals

WeexProposal (last edited 2016-11-29 22:04:02 by edwardyoon)