WeexPlaygroundapp这是阿里巴巴开发的一个专门为了演示Weex轻量级的移动端跨平台动态性技术解决方案,而推出WeexPlaygroundapp演示工具。WeexPlaygroundapp可以让Weex开发者们能够很好的通过简单的组合代码就可以应用到跨平台当中来。WeexPlaygroundapp还在努力达到更高的性能、更高的扩展性、更低的开发成本、更完整的生态和工具链,也同时尝试接入更多的业务,体现出它的更大的价值。
Weex这个轻量级的移动端跨平台动态性技术解决方案,也是阿里巴巴目前所使用的。Weex轻量体积小巧,语法简单,方便上手。Weex可扩展,业务方可自行横向定制native组件和API。Weex高性能,快速加载,快速渲染,体验流畅,拥抱标准:基于Web标准设计语法。
WeexPlayground这个专用给Weex开发者们的实用工具,自然是为了做Weex测试的。Weex作为阿里巴巴淘宝和天猫的PC以及移动端跨平台剧解决方案的最经典的案例够让很多电商和平台采用这样的架构。
Weex与今年的四月在北京发布,阿里巴巴在Qcon大会上宣布跨平台移动开发工具Weex开放内测邀请。Weex能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS、安卓、YunOS及Web等多端部署。开发者只需要在自己的APP中嵌入Weex的SDK,就可以通过撰写HTML/CSS/JavaScript来开发Native级别的Weex界面。Weex界面的生成码其实就是一段很小的JS,可以像发布网页一样轻松部署在服务端,然后在APP中请求执行。
Weex的诞生得益于阿里内部早期研发的一个通过JSON数据描述native渲染的项目WeApp,以及Vue.js这款优秀的前端开源MVVM框架。阿里工程师把WeApp优秀的渲染能力和Vue.js优秀的前端开发体验进行了深度结合,创造出了Weex这款跨平台移动开发工具。目前Weex已经可以支持手机淘宝这样的航母级移动应用,很好的解决了动态性问题,把移动应用本身的灵活性、迭代更新的周期和成本优化到极致。
软件特色
拥抱标准:基于Web标准设计语法
响应式界面:通过简单的模板和数据绑定轻松解决数据和视图的同步关联问题
多端统一:iOS、Android、HTML5多端效果一致,撰写一次就可以轻松达到跨平台的一致性,无需针对多套平台单独开发,省时省力
复杂逻辑描述:动态性不只体现在展示效果的动态性上,更体现在可以实时调整复杂的数据处理方式和逻辑控制方式
组件化:组件之间通过webcomponents的设计完美的隔离,并可以通过特定的方式进行数据和事件的传递
生态&链路:我们为Weex的开发者和使用者在不同维度上提供了各式各样的工具和平台,包括代码打包工具、开发者调试工具、部署平台、Playground、经典案例、入门指南和详尽的文档等。你不是从零开始,你也不是一个人在战斗!
如何工作
基本简介
细节1:顺便说一句,这也是我们认为描述界面的最佳实践。
细节2:由于Weex组件的开发和Web组件的开发非常接近,但是对标准的支持范围和一些细节是有不同之处的,我们会贴心的在transformer里加入了一些友情提醒,帮助大家回避常犯的书写错误。
细节3:native端渲染的时候,我们以图片和文字的形态为主,并大量依赖了标准的CSS样式进行细节的渲染
细节4:我们把框架层面的JS代码全部提前放在了客户端本地,并提前运行做好准备。这样本地生产的JavaScript是非常小的,网络传输的代价也非常低,而在客户端运行的初始化成本也非常低。整条链路都和界面打开速度息息相关
细节5:我们在JS处理界面逻辑的过程中采取了数据监听+依赖收集的策略,既没有通过脏检查,也没有通过全量diffVirtualDOM树的方式,因为通常在移动端,数据变更都是非常小量的,经过我们的实践,这套方案完全可以应付移动端日常的动态性界面需求
细节6:我们对业务上通用常用的组件进行了封装,并且暴露规范化的类型(标签名)、特性、样式、事件、上下级约束等维度的定义。这样所有的业务界面都可以用这些基础的组件搭建而成
细节7:我们对业务上通用常用的API进行了封装,并且暴露规范化的JSAPI
细节8:实际上,除了界面本身可以动态化之外,客户端的JS引擎的代码、还有部分native的实现,我们也准备了相应的动态化机制,也就是说客户端的动态能力本身也是具有动态性的
细节9:我们能够同构HTML5版本和native版本,主要归功于我们在JSBridge、组件定义、API定义方面的高度抽象——当然HTML5的版本在性能和体验上确实有一定的劣势,并不是最理想化的效果,所以核心的主战场还是客户端,这也和目前的移动互联网的形态相吻合.
更新日志
1.集成WeexSDK0.11版本。
2.新增一些炫酷的示例,例如瀑布流。
3.增强稳定性,修复一些bug。
效率