迷你應用程式開發人員工具

開發人員體驗

現在我已介紹過迷你應用程式本身,接下來要著重於各種超級應用程式平台的開發人員體驗。在所有平台上開發迷你應用程式時,都必須使用超級應用程式平台免費提供的 IDE。雖然還有更多,但我想著重介紹最熱門的四種,以及第五種快速應用程式,以供比較。

迷你應用程式 IDE

與超級應用程式一樣,大多數 IDE 僅提供中文版本。請務必安裝中文版,不要安裝有時會提供的英文 (或海外) 版本,因為這些版本可能不是最新版。如果您是 macOS 開發人員,請注意並非所有 IDE 都已簽署,因此 macOS 會拒絕執行安裝程式。您可以自行承擔風險,按照 Apple 說明所述略過此步驟。

迷你應用程式入門專案

如要快速開始開發迷你應用程式,所有超級應用程式供應商都會提供可立即下載及測試的示範應用程式,有時也會整合到各種 IDE 的「New Project」(新專案) 精靈中。

開發流程

啟動 IDE 並載入或建立 (試用) 迷你應用程式後,第一步一律是登入。通常只要使用 IDE 產生的 QR code,透過已登入的超級應用程式掃描即可。你極少需要輸入密碼。登入後,IDE 會識別您的身分,讓您開始程式設計、偵錯、測試,以及將應用程式送交審查。以下是上段提及的五個 IDE 的螢幕截圖。

WeChat 開發人員工具應用程式視窗,顯示模擬器、程式碼編輯器和偵錯工具。
WeChat 開發人員工具,內含模擬器、程式碼編輯器和偵錯工具。
Alipay 開發人員工具應用程式視窗,顯示程式碼編輯器、模擬器和偵錯工具。
Alipay 開發人員工具,內含程式碼編輯器、模擬器和偵錯工具。
百度開發人員工具應用程式視窗,顯示模擬器、程式碼編輯器和偵錯工具。
Baidu 開發人員工具,內含模擬器、程式碼編輯器和偵錯工具。
ByteDance 開發人員工具應用程式視窗,顯示模擬器、程式碼編輯器和偵錯工具。
ByteDance 開發人員工具,內建模擬器、程式碼編輯器和偵錯工具。
快速應用程式開發人員工具應用程式視窗,顯示程式碼編輯器、模擬器和偵錯工具。
Quick App 開發人員工具,內含程式碼編輯器、模擬器和偵錯工具。

如您所見,所有 IDE 的基本元件都非常相似。您一律會使用以 Monaco 編輯器為基礎的程式碼編輯器,以及與 VS Code 相同的專案。在所有 IDE 中,都有以 Chrome 開發人員工具前端為基礎的偵錯工具,並經過一些修改,稍後會詳細說明 (請參閱「偵錯工具」)。IDE 本身會實作為 NW.jsElectron 應用程式,而 IDE 中的模擬器則會實作為 NW.js <webview> 標記Electron <webview> 標記,這些標記則是以 Chromium <webview> 標記為基礎。如果您對 IDE 內部結構感興趣,通常只要使用 Chrome 開發人員工具檢查即可,鍵盤快速鍵為 Control+Alt+I (在 Mac 上為 Command+Option+I)。

Chrome 開發人員工具用於檢查百度開發人員工具,顯示 Chrome 開發人員工具「Elements」面板中的模擬器 WebView 標記。
使用 Chrome 開發人員工具檢查 Baidu 開發人員工具,會發現模擬器是以 Electron <webview> 標記的形式實現。

模擬器和實際裝置測試與偵錯

模擬器與 Chrome 開發人員工具的裝置模式類似。您可以模擬不同的 Android 和 iOS 裝置、變更比例和裝置方向,也可以模擬各種網路狀態、記憶體壓力、條碼讀取事件、非預期終止和深色模式。

雖然內建模擬器足以大致瞭解應用程式的行為,但裝置端測試 (如同一般網頁應用程式) 仍無可取代。只要掃描 QR code,就能測試開發中的迷你應用程式。舉例來說,在 ByteDance 開發人員工具中,使用實體裝置掃描 IDE 動態產生的 QR code,即可連往雲端託管的迷你應用程式版本,然後立即在裝置上測試。ByteDance 的運作方式是,QR code 背後的網址 (example) 會重新導向至代管網頁 (example),其中包含具有特殊 URI 配置的連結,例如 snssdk1128://,可在各種 ByteDance 超級應用程式 (如抖音或今日頭條) 中預覽迷你應用程式 (請參閱這個範例)。其他超級應用程式供應商不會經過中繼頁面,而是直接開啟預覽畫面。

ByteDance DevTools 顯示 QR code,使用者可以透過抖音應用程式掃描,在裝置上查看目前的迷你應用程式。
ByteDance 開發人員工具顯示 QR code,使用者可透過抖音應用程式掃描,立即在裝置端進行測試。
在公司各種超級應用程式中預覽 ByteDance 迷你應用程式的中繼到達網頁,在一般電腦瀏覽器中開啟,以進行反向工程程序。
用於預覽迷你應用程式的 ByteDance 中繼到達網頁 (在電腦版瀏覽器中開啟,顯示流程)。

雲端預先發布版遠端偵錯功能更是令人期待。只要掃描 IDE 產生的特殊 QR code,迷你應用程式就會在實體裝置上開啟,電腦則會執行 Chrome 開發人員工具視窗,以進行遠端偵錯。

手機正在執行迷你應用程式,筆記型電腦上執行的 ByteDance 開發人員工具偵錯工具會檢查迷你應用程式,並醒目顯示部分 UI。
使用 ByteDance 開發人員工具,在實體裝置上以無線方式遠端偵錯迷你應用程式。

Debugger

元素偵錯

如果您曾使用 Chrome 開發人員工具,對迷你應用程式進行偵錯時,會感到非常熟悉。不過,兩者之間仍存在一些重要差異,因此工作流程會根據迷你應用程式進行調整。迷你應用程式 IDE 並非使用 Chrome 開發人員工具的「Elements」面板,而是採用專為特定 HTML 方言量身打造的自訂面板。舉例來說,如果是 WeChat,面板會稱為「Wxml」,代表 WeiXin 標記語言。在百度開發人員工具中,這項功能稱為「Swan 元素」。ByteDance 開發人員工具將其稱為 Bxml。Alipay 將其命名為 AXML,而快應用程式則將面板簡稱為 UX。我將在稍後深入探討這些標記語言。

使用 WeChat 開發人員工具的「Wxml」面板檢查圖片。這表示使用的代碼是 `image` 代碼。
使用 WeChat 開發人員工具檢查 <image> 元素。

自訂元素的運作原理

透過 about://inspect/#devices 在實體裝置上檢查 WebView 時,會發現 WeChat 開發人員工具刻意隱藏了真相。WeChat 開發人員工具顯示 <image> 的位置,實際上我看到的是名為 <wx-image> 的自訂元素,且該元素只有一個子項 <div>。值得注意的是,這個自訂元素並未使用 Shadow DOM。這些元件的詳細說明請見下文

使用 Chrome 開發人員工具檢查在實際裝置上執行的 WeChat 小程式。WeChat 開發人員工具回報我正在查看 `image` 標記,但 Chrome 開發人員工具顯示我實際處理的是 `wx-image` 自訂元素。
使用微信開發人員工具檢查 <image> 元素時,會發現該元素實際上是 <wx-image> 自訂元素。

CSS 偵錯

另一個差異是 CSS 各種方言的新長度單位 rpx,適用於回應式像素 (稍後會詳細說明這個單位)。WeChat 開發人員工具使用與裝置無關的 CSS 長度單位,讓您更直覺地為不同裝置大小進行開發。

在微信開發人員工具中,檢查頂部和底部邊框間距皆為 `200rpx` 的檢視區塊。
使用 WeChat 開發人員工具檢查檢視區塊中以回應式像素 (200rpx 0) 指定的邊框間距。

成效稽核

效能是迷你應用程式的重中之重,因此 WeChat 開發人員工具和其他一些開發人員工具整合了 Lighthouse 啟發的稽核工具,也就不足為奇了。稽核的重點領域包括總分、效能、體驗和最佳做法。您可以自訂 IDE 的檢視畫面。在下方的螢幕截圖中,我暫時隱藏了程式碼編輯器,以便為稽核工具提供更多螢幕空間。

使用內建稽核工具執行成效稽核。分數會顯示總分、效能、體驗和最佳做法,每項滿分 100 分。
WeChat 開發人員工具內建的稽核工具,會顯示總分、效能、體驗和最佳做法。

API 模擬

開發人員不必設定個別服務,因為模擬 API 回應是 WeChat 開發人員工具的內建功能。開發人員可透過簡單易用的介面設定 API 端點和所需的模擬回應。

在 WeChat 開發人員工具中,為 API 端點設定模擬回應。
WeChat DevTools 整合的 API 回應模擬功能。

特別銘謝

本文由 Joe MedleyKayce BasquesMilica MihajlijaAlan Kent 和 Keith Gu 審查。