移动应用程序可以使用无服务器架构吗?

混合移动应用程序是行为类似于本机移动应用程序的 Web 应用程序,可以使用无服务器后端进行构建,以提高可扩展性、降低成本并从任何托管位置运行代码。

学习目标

阅读本文后,您将能够:

  • 了解混合应用程序和本机应用程序之间的区别
  • 了解使用无服务器架构构建混合应用程序的方法
  • 了解使用无服务器后端的好处

复制文章链接

移动应用程序可以使用无服务器架构吗?

除 Web 应用程序外,无服务器架构还可用于构建移动应用程序。通过采用无服务器后端的混合移动应用程序,开发人员可以结合无服务器计算的优势,发布能够在几乎任何智能手机或平板电脑上像本机应用程序一样运行的应用程序。随着用户群增长,可以便捷地扩展无服务器移动应用程序。

采用无服务器后端的移动应用程序示意图

什么是混合移动应用程序?

混合移动应用程序和本机移动应用程序就像两辆汽车,它们的外观相同、内饰相同、驾驶方式也大致相同,但引擎盖下的发动机却大不相同。本机应用程序是专门为特定类型的设备和操作系统构建的,其逻辑在设备本身运行。

混合应用程序是使用 HTML、CSS 和 JavaScript 构建的 Web 应用程序,可在“本机包装”中运行,因此它可以在各种设备上像本机移动应用程序一样运行。与常规的 Web 应用程序不同,混合应用程序可以访问特定于平台的功能,包括设备硬件和特定于某种设备类型的推送通知功能。用户可以通过 App Store 或 Google Play 下载这些混合应用程序,并像安装本机应用程序一样予以安装,但由于大多数甚或所有逻辑都托管在云中,下载和安装的次数通常更少。

近年来,由于技术改进消除了性能顾虑,因此混合应用程序变得越来越流行。例如,Uber、Instagram 和 Twitter 都是混合应用程序。与构建本机移动应用程序相反,开发人员有时更喜欢使用混合架构,这样就无需针对不同设备使用多种平台特定的语言来重新构建应用程序。毫不奇怪,构建可在多种设备上运行的应用程序通常可以节省开发和提供持续产品支持的时间。

采用无服务器后端的移动应用程序如何工作?

使用混合移动应用程序,计算将在云中进行,而不是在设备上进行。应用程序的所有云托管计算过程都可以无服务器进行,就像无服务器的 Web 应用程序一样。无服务器 Web 应用程序和无服务器混合移动应用程序之间的唯一主要区别在于前端的本机包装*。

与无服务器的 Web 应用程序一样,应用程序代码由处理所有后端管理流程的无服务器供应商托管。应用程序分为一些小的部分,称为函数,这些函数不依赖于任何特定的服务器。每个函数都会响应触发事件而运行,并且供应商的基础设施会根据需要启动新的函数实例。例如,如果用户在采用无服务器后端的应用程序中点击“购买”按钮,就会触发一个或一系列后端函数,以启动、记录交易并发起用户所购买商品的交付。

构建采用无服务器后端的移动应用程序有什么好处?

无服务器移动应用程序具有与使用无服务器后端构建典型 Web 应用程序相同的优势:

  • 可扩展性:无服务器应用程序可自动扩展
  • 减少开销:供应商管理整个后端
  • 快速更新:开发人员可以一次更新一个功能,而不必一次更新整个应用程序,并且无需等待用户安装更新
  • 即付即用:开发人员只为应用程序使用的计算能力付费,这可以减少持续成本
  • 在任何地方运行代码:可以在边缘网络上运行代码,以减少延迟

要了解有关使用 JavaScript 构建的无服务器应用程序的更多信息,请参阅无服务器 JavaScript 如何工作?

*本机包装如何工作?

混合应用程序可以利用设备的 WebView,像本机应用程序一样运行。WebView 是设备内部的浏览器,可以像浏览器一样显示应用程序,同时为开发人员提供了比常规浏览器更大的灵活性,以便自定义应用程序的外观。此外,大多数 WebView 都允许应用程序通过 API 访问设备上的硬件功能。

例如,当用户打开 Instagram 时,该应用程序感觉就像在设备上运行的本机应用程序。但实际上,是设备的 WebView 在呈现 Instagram 生成的网页。用户首次打开应用程序时看到的图像馈送是一个网页,他们后续访问的所有页面也都是网页,尽管它们看似来自本机应用程序。尽管 Instagram 不是本机应用程序,但 Instagram 也能够访问设备的相机以及存储的照片,并且可以发送推送通知。