小程序技术演进史

2019-06-25 10:02 稿源:CSDN公众号  0条评论

小程序

声明:本文来自于微信公众号CSDN(ID:CSDNnews),作者:王安,授权站长之家转载发布。

小程序这个由微信带头的产物,格外鲜明地体现了移动互联网的「时机」这个词,早在微信小程序之前,有力推轻应用的百度,有来自 HTML5 中国产业联盟的 DCloud 所主张的流应用,但最终却都已经淹没在了移动互联网的历史长河之中。唯有微信小程序风生水起,更是带动了巨头们的争相入场。

小程序迎来了专属于中国移动互联网的群雄逐鹿的时代。

本文作者王安即是流应用的创造者,作为移动领域的老兵,他依然在矢志不移地构建移动开发工具框架及生态,从原生应用到 HTML5 再到如今的小程序,他是这段历史的见证者、参与者。从这篇文章中,我们能够鲜活地看到小程序的技术演进历程,以及对于所有开发者来说,终将去往何处。

中国特色的移动互联网时代

58看 www.zhongenkeji.cn 伴随着 QQ 小程序面向用户开放,这个手机端月活 7 亿的巨无霸正式入场。小程序,终于成为了超级 App 的标配。

盘点下已经支持小程序的超级 App:

微信、企业微信、QQ、支付宝、高德地图、手机淘宝、百度、百度贴吧、百度地图、今日头条、抖音……

这些璀璨耀眼的名字,背后都是巨大的流量。

在这群超级 App 的支持下,中国的移动互联网格局被彻底改变。

这个有中国特色的移动互联网时代,被称为“小程序时代”。

这是继手机支付后,中国的移动互联网领先世界的第二个代表事物。

中国的技术标准、开发者生态,第一次得到大规模的普及应用,而且很明显,小程序在功能和体验上均超过了 HTML5。

中国人能建立开发者生态吗?这个命题曾一度让人怀疑。

小程序完成了这一步突破,这是一场值得歌颂的中国技术生态发展史。

让我们来回顾下这场技术生态革命,是如何开始,又将要去向何方。

罗马不是一天建成的

小程序不是一天发明出来的

HTML5 于 2007 年在 W3C 立项,与 iPhone 发布同年。

乔布斯曾期待 HTML5 能帮助 iPhone 打造起应用生态系统。

但 HTML5 的发展速度并不如预期,它虽然成功地实现了打破 IE+Flash 垄断局面的目标,却没有达到承载优秀的移动互联网体验的地步。

于是在 iPhone 站稳脚跟后,发布了自己的 App Store,开启了移动互联网的原生应用时代。

随后的 Android,本来是基于 Linux 的 OS,与之同期的 MeeGo 等竞争对手采用 C + HTML5 的双模应用生态策略,然而 C 的开发难度太大,HTML5 体验又不行。Android 依靠 Java 技术生态,在竞争中脱颖而出。

于是在移动互联网初期,应用生态被定了基调 —— 原生开发。

在那个时候,硬件不行,也没有其他办法,原生开发才能在低配硬件上带来商用体验。

但大家都在怀念 HTML,那种无需安装更新、即点即用,直达二级页面的特点,一直让人迷恋。

国内有一批做浏览器的厂商,尝试去改进 HTML5,他们提出了轻应用的概念。

通过给 WebView 扩展原生能力,补充 JS API,让 HTML5 应用可以实现更多功能。

不过这类业务没有取得成功,HTML5 的问题不止是功能不足,性能体验是它更严重的问题,而体验问题,不是简单地扩展 JS 能力能搞定的。

这类业务发展的顶峰,是微信的 JS SDK。

作为国内事实上最大的手机浏览器,微信为它的浏览器内核扩充了大量 JS API,让开发者可以用 JS 调用微信支付、扫码等众多 HTML5 做不到的功能。

微信 JS SDK 说明文档

但微信团队对这套方案的体验仍然不满意,微信钱包栏目里打车、理财等很多应用虽然嵌入了 JS SDK,但每次点击要等半天白屏,让人用着很痛苦,他们在业内开始寻找新的解决方案。

业内早有专业团队看到了相同的问题。

与浏览器不同,Hybrid 应用是另一个细分领域。它们为开发者提供使用 JS 编写跨平台应用的工具,为了让 JS 应用更接近原生应用的功能体验,这个行业的从业者做出了很多尝试。

笔者所在的 DCloud 即是其中之一,我们提出了改进 HTML5 的“性工能”障碍的解决方案 —— 通过工具、引擎优化、开发模式调整,让开发者可以通过 JS 写出更接近原生 App 体验的应用。

多 WebView 模式,原生接管转场动画、下拉刷新、Tab 分页,预载 WebView……各种优化技术不停迭代,终于让 Hybrid 应用取得了性能体验的突破。

Hybrid 应用和普通的轻应用相比,还有一个巨大的差别:一个是 Client/Server,一个是 Browser/Server。简单来说,Hybrid 应用是 JS 编写的需要安装的 App,而轻应用是在线网页。

C/S 的应用在每次页面加载时,仅需要联网获取 JSON 数据;而 B/S 应用除了 JSON 数据外,还需要每次从服务器加载页面 DOM、样式、逻辑代码,所以 B/S 应用的页面加载很慢,体验很差。

可是这样的 C/S 应用虽然体验好,却失去了 HTML5 的动态性,仍然需要安装、更新,无法即点即用、直达二级页面。

那么 C/S 应用的动态性是否可以解决呢?对此,我们提出了流应用概念,把之前 Hybrid 应用里的运行于客户端的 JS 代码,先打包发布到服务器,制定流式加载协议,手机端引擎动态下载这些 JS 代码到本地,并且为了第一次加载速度更快,实现了应用的边下载边运行。

就像流媒体的边下边播一样,应用也可以实现边用边下。

在这套方案的保障下,终于解决了之前的各种难题:让 JS 应用功能体验达到原生,并且可即点即用、可直达二级页面。

如今看来,这已经变成了常识。但在当年,先驱们做了无数艰辛探索。

这套技术,需要让客户端引擎提前预置在手机上,就像流媒体的普及,建立在 Flash 的装机量巨大的基础上,那么普及这个客户端引擎就变得很重要。

2015 年,360 和 DCloud 合作,在 360 手机助手里内嵌了这个客户端引擎,推出了业内第一个商用的小程序,360 称之为 360 微应用。

微应用实现了在 360 手机助手的应用下载页面,同时出现了“秒开”按钮,点击后直接使用。

并且在 360 手机助手的扫码里,应用的分享里,都实现了扫码获得一个应用,点击分享消息获得一个应用。

在 360 手机助手 3.4 版本中上线的中国第一个小程序

为了做大生态,DCloud 把这套技术标准,捐献给了 HTML5 中国产业联盟,随后,联盟开始推动更多的超级 App 和手机厂商加入,共同推进动态 App 产业的发展。

然而事情并不顺利,巨头们有自己的利益诉求。虽然有一批厂商同意加入联盟共建生态,但最关键的角色,真正的国民应用“微信”,最终决定自立标准、自研引擎,当然技术原理与流应用是基本一致的。

2016 年 1 月 11 日,微信公开课,张小龙罕见露面,公布了微信应用号的计划,为这个大事件亲自站台。

2016 年 9 月 21 日,微信宣布更名应用号为小程序,面向首批开发者内测。从此,这个词被正式定了下来,“小程序”,成为后续一个时代的代名词。而“流应用”、“微应用”则淹没在历史长河中成为一个令人唏嘘的故事。

2017 年 1 月 9 日,微信公开课,小程序面向用户正式推出。

从此后,阿里巴巴、手机厂商联盟、百度、今日头条,陆续推出了自己的小程序平台,其中也有很多波折与故事,在有偶然、有必然的过程中,形成了今天的局面。

小程序大潮卷入了更多人,并形成了更大的浪潮,最终迎来了不可逆转的小程序时代。

声明:本文转载自第三方媒体,如需转载,请联系版权方授权转载。协助申请

相关文章

相关热点

查看更多
?
昆明助孕 | 广州助孕中介 | 厦门代孕 | 哪个网站招聘代孕 | 苏州代孕 | 武汉途欣悦信息服务有限公司 | 广州代孕 | 美国代孕生子 | 广州代孕 | 婴儿花助孕网 | 爱河娱乐网 | 遇见助孕网 | 北京代孕 |
  • 猪肚能健脾胃 美味猪肚汤怎么做
  • 警惕“小意思”埋下“大隐患”
  • 维护社会公平正义的模范检察官—张飚
  • 牛首山召开南京大学整合营销提报会
  • 江苏大力支持民营企业创新发展 打造创新型企业梯队
  • 吉林省网信办主任会议在长春召开
  • 新华社评论员:深刻认识主要矛盾的历史性变化——四论学习贯彻党的十九大精神
  • 国务院办公厅印发《关于深入开展消费扶贫助力打赢脱贫攻坚战的指导意见》
  • 王毅同吉尔吉斯斯坦外长艾达尔别科夫举行会谈
  • 蔡韩同时"出访" 赵少康:韩国瑜"赚钞票" 蔡英文"撒钞票"
  • 始终坚持农村基层党组织的领导地位
  • 家居风水离不开水晶灯的装饰
  • 贵州开通港澳台通行证再次签注自助服务
  • Disciplinary inspectors urged to fulfill duty of political supervision
  • 运城公布7起重大劳动保障违法案件