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)

用户喜欢...

如何在IAR中配置CRC参数

STM32全系列产品都具有CRC外设,对CRC的计算提供硬件支持,为应用程序节省了代码空间。CRC校验值可以用于数据传输中的数据正确性的验证,也可用于数据存储时的完整性检查。在IEC60335中,...


Semblant在中国深圳设立新客户创新中心

为电子行业提供创新保护性纳米材料和应用的全球领导品牌Semblant在中国深圳设立了一个客户创新中心。新设施的设立...


应生产力变革之运而生:戴尔商用客户端新品亮相科技峰会

以“智行践远就绪数字未来”为主题的 2017戴尔科技峰会于2017年8月29、30日在上海世博中心成功举办。随着云计算、大...


大数据正在改变客户服务的5种方式

大数据将在未来几年继续改变客户服务。组织正在依靠数据来了解客户需求,并提供他们所需的解决方案。 客户服务...


如何在异构处理器上跑Linux?来DAC大会就知道了

Linux已经成为嵌入式系统通用操作系统的选择,支持由半导体供应商开发的高端SoC。大多数供应商使用开源Linux发行版,然后构建支持特定SoC设备树的定制发行版,包括SoC外设所需的驱动程序...


为人工智能领域客户提供数据服务,爱数智慧想要成为行业的送水人

作者:石亚琼 专家预测,2018年,62%的大企业将会使用人工智能技术。Tractica预测,2024年人工智能市场规模将增长至...


北美智能工厂最大客户仍为汽车制造业

2015年北美智能工厂市场成长强劲,因为汽车制造业和石油天然气产业等纷纷采用,不料2016年原料成本提高和政府颁布...


下一代数据分析将如何改善企业与客户的互动?

2000年,彼得·莱曼(Peter Lyman)和哈尔·瓦里安(HalR. Varian)开展了一项史无前例的研究。用计算机存储术语来说,他...


鼎桥赢得“智慧机场”客户 市场规模破百亿

随着国家对机场的建设及投资力度的不断加大,中国正迎来一轮智慧机场信息化升级的高峰。“智慧机场”的建设与...


人工智能技术触达车险理赔 险企担忧客户信息流失

继连续向基金公司、银行等金融机构开放了财富号及人工智能技术后,蚂蚁金服将触角伸向了保险行业。在5月推出“...