迷你应用编程方式

哪些做法对迷你应用效果较好

在本章中,我想从 Web 开发者的角度探讨从研究迷你应用中学到的经验教训,或者回答“以迷你应用方式开发应用”意味着什么这个问题。

组件

与其重新发明轮子,让开发者再构建一次标签页、折叠式动作条、轮播界面等常见界面范式的实现,不如让迷你应用直接提供一组可扩展的默认组件,以备您需要时使用。在 Web 上,同样有许多选项,其中一些选项已在“迷你应用组件”章节中列出。理想情况下,Web 上的组件库的构建方式应能让您自由组合使用这些库。在实践中,很多时候,在使用组件时,您需要接受某个设计系统的某些限制,或者组件库的发布方式是“全部或全无”,而无法轻松地将单个组件添加到项目中。不过,有些原子组件可以单独使用,有些库(例如 generic-components)则是故意不设置样式的。找到并使用这些方法似乎是个不错的主意。

模型-视图-ViewModel

Model-View-ViewModel (MVVM) 架构模式有助于将通过标记语言开发图形界面(视图)与开发后端逻辑(模型)分离开来,这意味着视图不依赖于任何特定的模型平台。虽然该模式有一些已记录的缺点,但总的来说,对于复杂程度与迷你应用相当的应用,该模式非常适用。它在搭配丰富的模板库时效果尤为出色(请参阅下一章)。

页面级思考

调试迷你应用会发现,它们本质上是多页面应用 (MPA)。 这有很多优点,例如,它允许进行简单的路由,并实现无冲突的每页样式设置。用户已成功将 MPA 架构应用到渐进式 Web 应用。以网页为中心思考还有助于管理各个网页的 CSS 和 JavaScript 文件等资源,以及图片和视频等其他资源。 最重要的是,如果您不加载任何其他内容,则通过这种方式构建意味着您可以免费获得基于路由的代码分块。在这种情况下,每个页面都只会严格加载其正常运行所需的内容。

构建流程

迷你应用没有明显的构建流程。 在 Web 上,Snowpack 等现代构建工具会利用 JavaScript 的内置模块系统(称为 ESM),以避免不必要的工作,并确保无论项目规模如何,速度始终保持快速。虽然网站软件包等技术还处于起步阶段,但可以轻松添加到构建流程中。

强大的功能

Web 平台最近新增了许多功能。现在,您可以通过蓝牙USBHID串行NFC 访问设备。在 Web 上,这些强大的功能可直接在 WebView 中运行的迷你应用中使用,这些应用依赖于 JavaScript 桥接。因此,您不针对 JavaScript 桥接提供的 API 进行编程,而是针对没有中间角色的浏览器 API 进行编程。

致谢

本文由 Joe MedleyKayce BasquesMilica MihajlijaAlan Kent 和 Keith Gu 审核。