close
当前位置: 物联网在线 > 技术文库 > ios >

Weex 是如何在 iOS 客户端上跑起来的

Weex 是如何在 iOS 客户端上跑起来的

前言

2016年4月21日,阿里巴巴在Qcon大会上宣布跨平台移动开发工具Weex开放内测邀请。Weex能够完美兼顾性能与动态性,让移动开发者通过简捷的前端语法写出Native级别的性能体验,并支持iOS、安卓、YunOS及Web等多端部署。

近一年来,ReactNative 和 Weex 这些跨平台技术对Native开发者来说,冲击是巨大的。Native在开发App的时候存在一些弊端,比如客户端需要频繁更新,iOS更新时间还要受到审核的牵制;iOS、Android和前端同时开发同一个需求,在人员成本上消耗大;Hybrid的性能和Native相比又差了一点。

ReactNative 和 Weex的出现,就是为了解决这些痛点的。

Weex 是如何在 iOS 客户端上跑起来的

从4月21号宣布内测以后,短短两周就有超过5000名开发者申请。

Weex 是如何在 iOS 客户端上跑起来的

2016年6月30日阿里巴巴正式宣布Weex开源。号称可以用Web方式,开发Native级性能体验的亿级应用匠心打造跨平台移动开发工具Weex在开源首日就登上Github趋势榜首位,截止目前为止,Weex在GitHub上的Star数已经到达了13393了。成为中国2016年在Github上最热门的开源项目之一。

目录

1.Weex概述

2.Weex工作原理

3.Weex在iOS上是如何跑起来的

4.关于Weex,ReactNative,JSPatch

一. Weex概述

Weex从出生那天起,仿佛就是和ReactNative是“一对”。

Weex 是如何在 iOS 客户端上跑起来的

ReactNative宣称“Learn once, write anywhere”,而Weex宣称“Write Once, Run Everywhere”。Weex从出生那天起,就被给予了一统三端的厚望。ReactNative可以支持iOS、Android,而Weex可以支持iOS、Android、HTML5。一统三端就解决了前言里面说的第二个痛点,同时开发浪费人员成本的问题。

Weex 是如何在 iOS 客户端上跑起来的

Native移动开发者只需要在本地导入Weex的SDK,就可以通过HTML/CSS/JavaScript网页的这套编程语言来开发Native级别的Weex界面。这意味着可以直接用现有Web开发的编辑器和IDE的代码补全、提示、检查等功能。从而也给前端人员开发Native端,较低的开发成本和学习成本。

Weex 是如何在 iOS 客户端上跑起来的

Weex是一种轻量级、可扩展、高性能框架。集成也很方便,可以直接在HTML5页面嵌入,也可嵌在原生UI中。由于和ReactNative一样,都会调用Native端的原生控件,所以在性能上比Hybrid高出一个层次。这就解决了前言里面所说的第三个痛点,性能问题。

Weex 是如何在 iOS 客户端上跑起来的

Weex非常轻量,体积小巧,语法简单,方便接入和上手。ReactNative官方只允许将ReactNative基础js库和业务JS一起打成一个JS bundle,没有提供分包的功能,所以如果想节约流量就必须制作分包打包工具。而Weex默认打的JS bundle只包含业务JS代码,体积小很多,基础JS库包含在Weex SDK中,这一点Weex与Facebook的React Native和微软的Cordova相比,Weex更加轻量,体积小巧。把Weex生成的JS bundle轻松部署到服务器端,然后Push到客户端,或者客户端请求新的资源即可完成发布。如此快速的迭代就解决了前言里面说的第一个痛点,发布无法控制时间,

Weex 是如何在 iOS 客户端上跑起来的

Weex中Native组件和API都可以横向扩展,业务方可去中心化横向灵活化定制组件和功能模块。并且还可以直接复用Web前端的工程化管理和监控性能等工具。

知乎上有一个关于Weex 和 ReactNative很好的对比文章 weex&ReactNative对比 ,推荐大家阅读。

Weex在2017年2月17日正式发布 v0.10.0 ,这个里程碑的版本开始完美的兼容Vue.js开发Weex界面。

Weex又于2017年2月24 迁移至 Apache 基金会,阿里巴巴会基于 Apache 的基础设施继续迭代。并启用了全新的 GitHub 仓库: https://github.com/apache/incubator-weex

故以下源码分析都基于v0.10.0这个版本。

二. Weex工作原理

Weex 是如何在 iOS 客户端上跑起来的

上图是官方给的一张原理图,Weex是如何把JS打包成JS Bundle的原理本篇文章暂时不涉及。本篇文章会详细分析Weex是如何在Native端工作的。笔者把Native端的原理再次细分,如下图:

Weex 是如何在 iOS 客户端上跑起来的

Weex可以通过自己设计的DSL,书写.we文件或者.vue文件来开发界面,整个页面书写分成了3段,template、style、script,借鉴了成熟的MVVM的思想。


(责任编辑:ioter)

用户喜欢...

数字双胞胎如何在物联网支持的环境中推动创新

动态数字表示或数字双胞胎正在迅速改变行业设计,构建和操作其产品和流程的方式。Gartner预测,到2021年,一半的大型工业公司将使用数字双子机,从而使这些机构的有效性得到10%的提高。...


电动汽车绝缘电阻如何在线检测?

电动汽车是一个复杂的机电一体化产品,其中的许多部件包括动力电池、电机、充电机、能量回收装置、辅助电池充...


对话赛灵思:33年老牌芯片厂如何在AI浪潮里新兴业务年增46%

随着移动互联网红利日渐式微,一个更具备颠覆性、更具备革命性的王朝正悄然来临——人工智能(AI)。在下一个十年里,云计算、机器学习、AI芯片等相关产业将以迅猛的势头持续占领市...


客户投诉器件功耗太大,“元凶”原来是它!

selina 在 周五, 11/24/2017 - 09:48 提交 为什么我的处理器功耗大于数据手册给出的值? 在之前的文章中,我们谈到了一个功耗过小的器件——是的,的确有这种情况——带来麻烦的事情。但这种...


SaaS:从功能、数据到生态以及客户成功的一场变革

不知不觉“终结软件”的呐喊已经走过了近二十年,SaaS已经走进千家万户,人们不再纠结是否要“终结软件”,也没...


华为客户荣获2017全球智慧城市博览会两项大奖两项提名奖

在2017年全球智慧城市博览会上,华为在智慧城市领域的四位客户以他们在提供高质量市民服务、实现可持续发展方面...


迈来芯宣布上线中文官方网站以加速融入中国市场,更好的服务中国客户

全球微电子技术公司——迈来芯(Melexis)宣布,定于2017年11月正式上线中文官方网站。迈来芯电子科技(上海)有限...


CPU VS GPU,Core Animation是如何在这两个处理器之间分配工作的?

CPU VS GPU 关于绘图和动画有两种处理的方式:CPU(中央处理器)和GPU(图形处理器)。在现代iOS设备中,都有可以运行不同软件的可编程芯片,但是由于历史原因,我们可以说CPU所做的工作都...


如何在密集PCB布局中,最大限度降低多个isoPower器件的辐射

selina 在 周五, 10/20/2017 - 08:47 提交 集成隔离电源isoPower®的iCoupler®数字隔离器采用隔离式DC-DC转换器,能够在125 MHz至200 MHz的频率范围内切换相对较大的电流。在这些高频率下工作可能会增加对...


英特尔发布首款客户端级傲腾固态盘,助力用户畅享极致游戏体验

英特尔今天宣布推出英特尔傲腾固态盘 900P系列,这是首款采用英特尔傲腾技术为台式机和工作站用户打造的固态盘。...