开发者体验
现在,我已经介绍了迷你应用本身,接下来将重点介绍各种超级应用平台的开发者体验。在所有平台上开发迷你应用都需要使用超级应用平台免费提供的 IDE。虽然还有更多类型,但我将重点介绍四种最常见的类型,并将第五种类型(即快应用)作为对比对象。
迷你应用 IDE
与超级应用一样,大多数 IDE 仅提供中文版本。您实际上需要确保安装的是简体中文版,而不是有时可用的英语(或海外)版本,因为后者可能不是最新版本。如果您是 macOS 开发者,请注意并非所有 IDE 都已签名,这意味着 macOS 会拒绝运行安装程序。您可以按照 Apple 帮助中所述的步骤绕过此限制,但需自行承担风险。
迷你应用入门级项目
为了让您快速上手开发迷你应用,所有超级应用提供商都提供了可立即下载和测试的演示版应用,这些应用有时还集成在各种 IDE 的“新建项目”向导中。
开发流程
启动 IDE 并加载或创建(演示版)迷你应用后,第一步始终是登录。通常,您只需使用 IDE 生成的二维码,通过超级应用(您已登录)进行扫描即可。您很少需要输入密码。登录后,IDE 会知道您的身份,让您可以开始编程、调试、测试和提交应用以供审核。以下是上文中提到的五种 IDE 的屏幕截图。
如您所见,所有 IDE 的基本组件都非常相似。您始终可以使用基于 Monaco Editor 的代码编辑器,该项目也是 VS Code 的依托平台。所有 IDE 中都包含一个基于 Chrome 开发者工具前端的调试程序,但经过了一些修改,我们稍后会详细介绍这些修改(请参阅调试程序)。IDE 本身是作为 NW.js 或 Electron 应用实现的,IDE 中的模拟器则是作为 NW.js <webview> 标记或 Electron <webview> 标记实现的,而这些标记又基于 Chromium <webview> 标记。如果您对 IDE 内部结构感兴趣,通常只需使用 Chrome 开发者工具通过键盘快捷键 Control+Alt+I(在 Mac 上为 Command+Option+I)进行检查即可。
<webview> 标记实现的。
模拟器和真实设备测试和调试
该模拟器与您可能熟悉的 Chrome 开发者工具的设备模式类似。您可以模拟不同的 Android 和 iOS 设备、更改缩放比例和设备屏幕方向,还可以模拟各种网络状态、内存压力、条形码读取事件、意外终止和深色模式。
虽然内置模拟器足以让您大致了解应用的行为方式,但与常规 Web 应用一样,设备端测试是不可替代的。只需扫描二维码,即可测试正在开发中的迷你应用。例如,在 ByteDance DevTools 中,使用真实设备扫描 IDE 动态生成的二维码可打开云端托管的迷你应用版本,然后即可在设备上立即进行测试。在字节跳动中,二维码后面的网址(示例)会重定向到托管的网页(示例),该网页包含使用特殊 URI 架构(例如 snssdk1128://)的链接,以便在各种字节跳动超级应用(例如抖音或头条)中预览迷你应用(示例)。其他超级应用提供商不会通过中间页面,而是直接打开预览。
更具吸引力的功能是基于云的预览版远程调试。只需扫描同样由 IDE 生成的特殊二维码,迷你应用就会在实体设备上打开,同时在计算机上运行 Chrome 开发者工具窗口以进行远程调试。
Debugger
元素调试
任何使用过 Chrome DevTools 的用户都非常熟悉迷你应用调试体验。不过,由于存在一些重要差异,因此工作流程需要针对迷你应用进行量身定制。迷你应用 IDE 使用的是专为其特定 HTML 方言量身定制的面板,而不是 Chrome 开发者工具的“元素”面板。例如,在微信中,该面板称为 Wxml,代表微信标记语言。在百度开发者工具中,它称为 Swan 元素。ByteDance 开发者工具将其称为 Bxml。Alipay 将其命名为 AXML,而 Quick App 则简单地将该面板称为 UX。我会在稍后深入探讨这些标记语言。
<image> 元素。
自定义元素的内部机制
通过 about://inspect/#devices 在真实设备上检查 WebView 后,我们发现微信开发者工具故意隐瞒真相。在微信开发者工具中显示 <image> 的位置,我实际看到的是名为 <wx-image> 的自定义元素,其唯一子元素为 <div>。值得注意的是,此自定义元素不使用 Shadow DOM。我们将在后面详细介绍这些组件。
<image> 元素后发现,它实际上是一个 <wx-image> 自定义元素。
CSS 调试
另一个区别是,CSS 的各种方言中针对自适应像素的新长度单位 rpx(稍后会详细介绍此单位)。WeChat 开发者工具使用与设备无关的 CSS 长度单位,让针对不同设备尺寸进行开发变得更加直观。
200rpx 0) 中指定的内边距。
性能审核
性能是迷你应用的核心,因此微信开发者工具和一些其他开发者工具集成了一款借鉴了 Lighthouse 的审核工具,这并不令人意外。审核的重点领域包括总体、效果、体验和最佳实践。您可以自定义 IDE 的视图。在下面的屏幕截图中,我暂时隐藏了代码编辑器,以便为审核工具留出更多屏幕空间。
API 模拟
模拟 API 响应是微信开发者工具的一部分,而无需开发者设置单独的服务。借助简单易用的界面,开发者可以设置 API 端点和所需的模拟响应。
致谢
本文由 Joe Medley、Kayce Basques、Milica Mihajlija、Alan Kent 和 Keith Gu 审核。