為什麼以『前端』分類讓行動開發團隊在跨部門協作時遇上困境?

Published on: | Last updated:

你是不是也遇過這種場面:產品會議上,PM 說「這功能 web 都做好了,手機就做個畫面接一下 API 吧」,然後你腦內警鈴大響,因為你知道接下來會發生三件事——時程被壓扁、責任變模糊、最後 bug 爆炸還要你背。

我先把結論丟桌上:把 mobile 叫做「frontend」會直接把 iOS/Android 的平台責任切掉,連帶讓預算、排程、招募、品質門檻一起下滑,最後你得到的不是「省事」,是「線上事故的機率變大」。

  • 先問一句:你們的職稱/JD 會寫「Frontend Mobile Developer」嗎?
  • 再問一句:誰負責 crash、ANR、cold start、離線、推播、深連結?有名字嗎?
  • 現場驗屍:App Store/Google Play 卡審、分批上線、回滾,不是你按一下就有。
  • 最常見誤判:把「UI」當成全部,忽略 lifecycle、電量、網路、權限、裝置差異。
  • 最省吵架的做法:拿數字:啟動時間、崩潰率、ANR、掉幀、重試矩陣。
圖 1(Type 1 流程圖):當有人說「mobile 就是 frontend」時,你怎麼像偵探一樣追問到真相
圖 1(Type 1 流程圖):當有人說「mobile 就是 frontend」時,你怎麼像偵探一樣追問到真相

手機不是前端,是前線

行動 App 是獨立的平台工程工作流,不是把 Web 畫面搬進手機;iOS 與 Android 牽涉 App Store 上架、生命周期、裝置 API、效能預算與資安責任,所以「把 mobile 當 frontend」會讓範疇、時程與品質門檻一起失真。

講到「前線」我不是在喊口號啦,我是說:用戶下單、登入、付款、定位、推播、掃碼、拍照上傳——很多公司的營收入口就卡在手機那個小小的畫面裡。

你把它當「只是 UI」,就像把便利商店的收銀台當成「只是桌面」。

桌面壞掉,錢就收不到。就這樣。

具體一點:Web 的部署你可以自己掌控(上線、回滾、灰度、熱修),但 mobile 你要面對 App Store/Google Play 審核、分批釋出、版本滲透率、甚至使用者不更新。這不是情緒,這是流程。

而且手機還有一個很現實的東西:電量。

你在後台跑太兇,使用者只會記得「你這 App 很耗電」,然後刪掉。沒有第二句。

Web client 不等於 mobile app

Web app 是瀏覽器的應用,mobile app 是 iOS/Android 平台的應用;兩者可以共用後端服務與商業規則,但平台架構、生命周期、權限與效能限制不同,所以不能用同一個「前端心智模型」硬套。

你看 Netflix、Shopify、Facebook、WhatsApp 這種等級的產品,web、iOS、Android 各自有 client,後端可能共用一堆東西,但 client 端不會「假裝大家都一樣」。

因為一樣就會出事。

我在一些團隊看過那種「web 畫面做完了,mobile 跟著切」的節奏,前兩週看起來很順,第三週開始出現:

  • 同一個畫面在低階 Android 掉幀,滑一下像在拖行李箱
  • iOS 因為背景任務被系統殺掉,離線資料回來就亂序
  • 深連結沒想好,推播點了進不去正確頁
  • 權限彈窗順序不對,轉換率掉一截,還找不到原因

這些都不是「把 CSS 調一調」能解的問題。

圖 2(Type 2 懶人包圖卡):常見的「把 mobile 當 web」四種誤會
圖 2(Type 2 懶人包圖卡):常見的「把 mobile 當 web」四種誤會

為什麼一句 frontend 會害到你們的預算和權力

職稱與用語會改寫組織期待:把 mobile 稱為「frontend」會讓團隊被期待只做呈現層,進而被砍掉架構、效能、資安、可觀測性與發版治理的預算與決策權,最後手機端在規劃桌上拿不到位置。

這段有點像心理戰,但其實很機械:詞 → 期待 → 預算 → 人力 → 成果。

你去看徵才寫「Frontend Mobile Developer」或「Mobile UI Engineer」,聽起來好像只是描述工作內容,但它默默把責任切成「你只要把設計稿變成元件」。

那 crash 呢?

ANR 呢?

隱私同意流程呢?

都會變成「反正有人會處理」。然後沒有人。

標題會塑造期待,期待會塑造預算,預算會塑造你在會議室裡能不能說話。

在台灣的現場感:你只要去 104 或 LinkedIn 看一圈,就會看到「前端 + mobile」混在一起的 JD;然後公司又很愛說「我們要快」。快可以,但你得先承認流程不同。

再插一個小小的在地點:iOS 這邊你不只要過 App Store Review Guideline,那個隱私標示(Privacy Nutrition Labels)跟 ATT(AppTrackingTransparency)流程,你做電商、廣告、分析 SDK 的時候,真的會被問到。

Android 也一樣,Google Play 的政策更新不是擺設。

你不把這些算進「mobile 的工作」,那是誰的工作?

技術真相:mobile 會碰到一整串你躲不掉的東西

嚴肅的 mobile app 需要端到端工程能力,包含 CI/CD、發版列車、feature flags、崩潰門檻、併發與生命周期、離線同步、裝置 API、效能監控與資安合規,所以 mobile 工程不是單純 UI 實作。

我知道你可能會想吐槽:「有些 App 就是 webview 包一包啊。」

對,有。

但那是例外,不是你拿來當組織設計的基準。

把清單攤開:

  • 架構與發版:CI/CD、SAST、release trains、feature flags、staged rollouts、crash-driven gates、App Store 限制、hotfix 通道
  • 併發與生命周期:Swift Concurrency、Kotlin Coroutines、前景/背景切換、排程但不要把電量榨乾、不要卡 UI thread
  • 資料與可靠性:本地儲存、衝突解決、offline-first sync、行動網路節流、backoff + retry 策略
  • 體驗與系統 API:推播、in-app 通知、deep links、universal links、widgets、定位、藍牙、相機、生物辨識
  • 效能與遙測:cold start / warm start 預算、ANR、記憶體壓力、disk I/O、trace 等級的可觀測性與隱私界線
  • 資安與合規:Keychain/Keystore、device attestation、傳輸安全、PII 控制、同意流程、GDPR 類型的要求(你產品出海就會碰)
  • 規模與模組化:feature modules、共享 design system、server-driven UI 但不踩爆效能與可及性
  • 端上 AI:輕量模型、embeddings、推論的安全護欄、能不出裝置就不出裝置的資料路徑

你看,這哪裡像「只是前端」。

而且這些東西有個共同點:你不做,使用者會用一星評論幫你做「公告」。很快的那種。

圖 3(Type 3 多視角示意圖):同一個 App,Web 與 Mobile 在「看不到的地方」差在哪
圖 3(Type 3 多視角示意圖):同一個 App,Web 與 Mobile 在「看不到的地方」差在哪

風險矩陣:你把 mobile 當 frontend 之後,通常怎麼爆

把 mobile 定位成「frontend」最常引爆的是四類風險:時程失真、品質門檻失守、資安與隱私缺口、以及責任歸屬不清;這些風險會在上線後以崩潰率、ANR、轉換率下滑與緊急修版成本的形式回到你身上。

我不想用很玄的詞,我用一個表。

你可以拿去會議室放投影片,或直接貼到群組。

風險事件 觸發徵兆 影響範圍 嚴重度 機率 你可以立刻做的動作
時程被「web 速度」綁架 一句「UI 很快吧」+ 沒人提 App Store/版本滲透率 排程、跨團隊依賴、上線窗口 把「審核時間、分批釋出、回滾方式」寫進里程碑;沒有就不估
Crash/ANR 被當成「使用者手機爛」 只追功能,不看崩潰門檻;上線後才開始裝監控 評分、留存、客服量 先定 crash-free users、ANR rate 的門檻,當成發版 gate
離線與同步沒人認領 API 成功就算完成;沒寫 retry/backoff;沒測弱網 交易、資料一致性、客訴 畫出 retry matrix:弱網、斷網、切換 Wi‑Fi/4G、重登
推播/深連結變成「最後再接」 需求文件只寫「支援推播」;沒定 deep link 路由與權限 行銷活動、轉換、追蹤 把推播 payload、deep link schema、fallback 行為定成規格
隱私與同意流程踩雷 SDK 先加再說;ATT/隱私標示當成上架前 checklist 上架、法遵、品牌信任 先盤點資料欄位與用途;同意流程與事件上報一起設計
責任邊界模糊,最後變成「誰都不是」 「這個應該後端做吧」vs「前端自己處理」吵不停 品質、速度、團隊士氣 畫 ownership map:sync、通知、deep link、design tokens、analytics

拿得出手的證據:你在會議室可以直接用這些問法

當有人把 mobile 當「只是 frontend」時,最有用的是拿具體指標與邊界來問:cold start 預算、ANR、崩潰率、離線路徑、重試策略、發版流程與責任地圖;這些問題會把「語言降級」還原成「工程現實」。

我喜歡用「問問題」代替吵架。偵探那套。

你可以照抄:

  • 延遲:「這畫面從點到看到內容,我們的 cold start / warm start 目標是多少秒?」
  • 可靠性:「斷網、弱網、切換基地台時,這個流程怎麼走?重試幾次?間隔怎麼算?」
  • 效能:「Android 的 ANR rate 我們要壓在多少?掉幀要怎麼量?」
  • 資安:「登入 token 放哪?Keychain/Keystore?有 device attestation 需求嗎?」
  • 發版:「今天 5 點出事,我們能不能立刻修?如果不能,最短路徑是什麼?審核要幾天?」
  • 邊界:「sync、推播、deep link、analytics event、design tokens,誰負責?名字寫出來。」

你看,這些問題一問,大家就會開始安靜。

安靜不是因為你兇,是因為現實被搬上桌。

圖 4(Type 4 比較圖):Web 與 Mobile 哪些原則相通,哪些地方硬不一樣
圖 4(Type 4 比較圖):Web 與 Mobile 哪些原則相通,哪些地方硬不一樣

跨平台不是原罪,但不是免死金牌

跨平台方案可以是商業選擇,但一旦需求牽涉深度原生 API、複雜背景任務或嚴格效能門檻,就會產生明確的工程成本與限制;所以跨平台應該是架構決策,而不是用來壓縮 mobile 範疇的口頭禪。

這段我會講得很保守,因為太多人把它當宗教戰。

我不想。

你可以用一個很土但有效的判斷:如果你的產品需要「定位常駐 + 藍牙 + 背景同步 + 推播精準導頁 + 低耗電」,你還想用「反正一套打天下」去談,那多半會痛。

會痛在哪?

debug 痛、效能痛、最後排程也痛。

但如果你的 App 真的只是資訊展示、流程很短、裝置 API 幾乎不碰,那跨平台就可能是合理選項。

這不是立場,是條件。

不同族群怎麼選:你是誰,就用哪一套決策

Mobile 團隊要不要獨立成「平台」與「一等公民」,取決於產品是否依賴可靠性、效能、裝置 API 與發版治理;如果你的使用者情境越接近「即時、交易、推播、定位、弱網」,就越該把 mobile 當作核心工程而不是附屬前端。

好,這段我用群組聊天的口氣講,因為你可能只是想要一個「那我到底怎麼選」的答案 😅

  • 如果你是外食族電商或即時配送:那個「下單成功」跟「定位準不準」會直接影響客訴量。你就別把 mobile 當 UI 了,離線、重試、推播導頁、地圖 SDK 的行為都要有人扛。
  • 如果你是夜班或輪班工具:背景任務、通知可靠性、低電量模式的行為要先想好。不然使用者半夜收不到通知,你的產品就像沒插電。
  • 如果你是親子族群的內容或學習 App:裝置限制、家長控管、登入切換、資料同步要穩。小孩不會跟你「稍後再試」,他會直接按叉叉。
  • 如果你是銀髮族常用服務:字體縮放、動態字級、VoiceOver/TalkBack、按鈕點擊區域、流程不要繞。這些不是設計師單獨能解,工程要一起扛。
  • 如果你只是活動頁或短期行銷包裝:那你可以用比較薄的 mobile 層,甚至 webview,但要誠實寫在需求與風險上,不要假裝「跟原生一樣」。

講到銀髮我突然想到一個很現實的點:在台灣,很多服務要接簡訊 OTP、金融驗證、或是政府相關的身分流程(你知道的,那些頁面偶爾長得很…嗯),手機端的可用性一爛,客服電話就會響到你懷疑人生。

好,拉回來。

我自己的偏見與一個小提醒

把 mobile 當「只是 frontend」不是省成本,而是把風險延後到上線後用更貴的方式付;真正省麻煩的做法是把 mobile 當獨立 workstream,提早定義效能預算、可靠性門檻、資安與發版流程,讓責任邊界清清楚楚。

我會承認我有偏見:我看到「就做個畫面」這句話就會想追問十個問題。

因為太常見了。

你以為你在省,結果是在買一張「之後一定要加班」的預付卡。

工具與標準這邊,給你幾個能落地的:

  • Apple App Store Review Guidelines上架審核與政策規則的那本,需求一碰到付款、隱私、追蹤就要翻
  • Google Play policy centerAndroid 上架政策與資料安全相關規範,尤其是 SDK 與資料收集
  • Android ANR 與啟動時間指標:你至少要能說出「我們要看哪個指標」而不是「感覺有點卡」
  • iOS Instruments:抓啟動、記憶體、I/O 的工具,會用一次你就知道「原來卡在這」
  • OWASP MASVS如果你們產品碰到帳號、金流、敏感資料,這套行動資安驗證標準可以當共同語言

不要全做。

先挑一個你們現在最常被罵的點,建立「可量」的門檻。

圖 5(Type 5 雙欄對照):把 mobile 當 frontend vs 把 mobile 當平台,結果差在哪
圖 5(Type 5 雙欄對照):把 mobile 當 frontend vs 把 mobile 當平台,結果差在哪

Mobile 不是房子的油漆;它是門口、走廊、客廳,用戶三秒內就決定要不要留下來。

小挑戰:你今天就挑一個你們正在做的 mobile 需求,做一件事就好——把「誰負責 crash/ANR、誰負責離線同步、誰負責推播與 deep link」寫成三行字,貼到你們的群組裡。

不需要吵。

你只是在把責任照出來。

如果貼出去之後,大家開始問「欸那 ANR 是什麼」,那就更好了。案件有線索了 😉

Related to this topic:

Comments

撥打專線 LINE免費通話