纠正对微信小程序的一个认知

小程序是 native 还是 web

最近关于小程序的新闻和讨论甚嚣尘上,笔者周围各处都充满了溢美之词。

“哇,这个小程序体验好棒…”。

作为一个写过 hello world 的程序员,简要纠正一点小程序技术实现上的疑虑:

目前的微信小程序使用的是 html web 技术来实现的,而不是完全的 native,native 目测 10%不到。
至于性能和体验的话,我用眼睛大致测试了下,比最新的 iOS chrome 浏览器要低个 10% 以上。

简单的说,目前的小程序大致等于:专门适配的 html 网页 + native 标题栏/动画 + disable zoom。

小程序的技术实现,我引用官方文档中的重要部分:

三端的脚本执行环境聚以及用于渲染非原生组件的环境是各不相同的:

在 iOS 上,小程序的 javascript 代码是运行在 JavaScriptCore 中,是由 WKWebView 来渲染的,环境有 iOS8、iOS9、iOS10
在 Android 上,小程序的 javascript 代码是通过 X5 JSCore来解析,是由 X5 基于 Mobile Chrome 37 内核来渲染的
在 开发工具上, 小程序的 javascript 代码是运行在 nwjs 中,是由 Chrome Webview 来渲染的

未来是否可能是 native

完全可能。从组件化、抽象化的 template DSL + 去掉陈旧的浏览器那套 DOM 操作能力来看,小程序面向开发者订立了一套实现可充分扩展的开发者界面。

基本组件既可以在现在使用 web 技术来实现,也可以在未来升级为使用 native 来实现。

结语

诚然,对于小程序这个期望提供“用完即走”体验的应用解决方案来说,技术框架永远不是影响最大的,准入审核机制、 粘性用户基数、开发者生态这些也都是重要的基础能力/资源。

注:转载请注明本文原始出处blog of faywong