本篇文章2240字,读完约6分钟
文/龙翔
历史车轮
网络应用程序挑战本机应用程序已经有很多年了。 以各大企业有志的大型操作系统为例,有名的噪音暂时住在LG电视的webos上。 google在教育行业还是由混的不错的chromeos、三星和intel主导的,但是雷声大的tizen、mozilla是面向低端设备的firefoxos。 也有开发、封装web/hybrid应用程序的产品。 cordova、克罗斯沃克、nw.js、电子产品。 虽然在各个行业可能都很成功,但整体现状和状况并不能说web app对native app的世界造成了足够的威胁。
但是,web app也在不断反思和发展,最近一系列技术改革的创新和快速发展使web app成为操作系统最优先事项的目标与以前明确了。 让我们来看看“扬长避短”之后的web app能否真正与native app掰腕。
扬长
网络应用程序的长度首先来自网络。 web不是某个屏障中的封闭庭院,而是提供标准支持的终端可以平等访问的野蛮生长的开放草原。 web协议栈可以即时更新世界各地的网页,使之成为通过url相互连接的互联网。 回顾w3cpackagedapp (小部件)标准和sysapps (系统应用程序工作组)的衰退也在很大程度上依赖于放弃web的这些核心竞争力。
web app的长度也来自html、css和javascript。 虽然招致众多诟病,但也是最广泛采用的开发工具。 新的es6、web组件标准也变得具有更强的开发、表现力。 当然,html的语义词表达也是检索的基础之一,web app的索引制作和发现很容易。
“避免太短”
web app的短少首先是缺乏能力。 cordova等工具是与native api的桥梁,但包装后的web app的“长度”是多少? 为此,web标准化组织努力提供各种硬件访问的接口。 另一方面,service worker提出了通过简单添加web app本身存在的api来处理无法解决的重要问题。
其一,web app没有后台运行的能力,web worker可以在后台运行,但依赖于页面,页面不存在时不能运行。
其二,用url访问的网页相互孤立,可以用web messaging相互通信,但是这是一个弱的联系,需要和消息传播之间的网页有关联。
service worker在新的web app编程模型和api集中统一处理了这两个问题。 简单地说,service worker是一个生命周期短、以事物为导向的后台线程,用于解决来自系统及其控制的页面的事情。 目前可通过service worker实现的功能有:替代凹陷的应用程序缓存的可编程脱机缓存、推送消息、后台同步(后台同步) service worker可以是许多需要跨页面解决能力的入口。 例如,如果怀念web intents,服务工作器也可能成为复活的平台。 在service worker中注册intent,然后在事情发生时启动该worker,您可以选择与不同的intent worker进行比较,打开不同的页面,或者聚焦于打开的页面。
通过辅助w3c manifest标准,web app理论上能够超越浏览器,成为系统的一部分。
web app的长短也是性能。 当然,性能问题不是与本机app比较和评价高,而是客户的体验。 虽然各浏览器制造商在javascript中表现更高,但最近的大型企业和参与的web assembly提案让业界更加期待。 设想一下,浏览器直接运行的游戏引擎代码可能是优化的二进制中间表示形式( ir ),也可能是缓存的后端转换的机器代码。 另外,在渲染引擎方面,60fps的性能也是近年来blink的首要目标,我相信edge、webkit等也不会向后拉。
渐进式网络应用程序
“扬长避短”之后的web app应该以什么样的形式进入系统成为系统的一员呢? alex russell最近提出了渐进的web app理念,可以在安卓上看到萌芽。
在android chrome上通过检索和链接发现网页并采用。 如果此页面或整个域的页面在一定时间内被多次访问,浏览器会认为这些页面可以升级到app,并显示一个弹出对话框,让客户选择是否在系统上安装此web app。 该web app可以拥有与本机app相同的权利,如启动主界面、独立的应用程序选择栏等。 目前,chrome指定,只有采用服务工作器和manifest的网页将升级并安装到web app上,以保证app的质量。
这种渐进的web app理念,在我看来可以类比人与人之间的交往,一个身体可以从陌生人那里熟悉,然后相信。 展开想象,web app的权限管理也能循序渐进吗? 安全、隐私级别高的api访问控制将根据你对这个app的信任度进行适应。
总结
各种web操作系统和hybrid封装工具正在挑战native app主导的世界,随着web技术的进一步成熟,open web也越来越像native app一样以渐进的方式成为系统的一部分。 期待有一天自由、平等、开放的web会成为开发者的优先平台。
作者:龙翔目前是英特尔开源软件中心的高级软件开发工程师,从事多年的网络平台开发,也是chromium开源项目的committer。
注:本论文是作者独立的观点,不代表本技术的角度。
《易语中的》是本科技旗下积分制作的专栏作家平台,欢迎投稿! 投稿渠道: tougao @服务别名
来源:成都新闻网
标题:“WebApp与Native App再战一轮?”
地址:http://www.cdsdcc.com/cdkjsh/18412.html