行動應用程式可以使用無伺服器架構嗎?

混合式行動應用程式是行為類似於原生行動應用程式的 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 不是原生應用程式,它也可以存取裝置的相機和儲存的相片,並且可以傳送推播通知。