瞻新資訊|網站設計、APP開發、UI/UX設計、LINE Bot開發

APP 開發流程:企業窗口詢問開發到上架要多久,工程師說明審查關卡

APP 開發流程怎麼跑?從規格凍結、技術選型到上架審查完整拆解

很多企業第一次做 APP,是從「找廠商報價」開始的。但真正決定專案順不順的,往往不是報價單上的數字,而是流程有沒有跑對順序。規格沒凍結就開工、原型沒驗證就寫程式、測試只在自己的手機上點一點、送審前才發現隱私政策還沒寫——這些都不是技術問題,是流程問題。

更麻煩的是,流程出錯的代價通常不會立刻顯現。它會延後到開發後期、驗收現場、或送審被退的那一刻才一次爆開,而那時候的修改成本已經是前期的好幾倍。

以下把一個 APP 專案從零到上線拆成六個階段,重點放在最常被低估、卻最容易讓時程整個炸掉的兩件事:測試的深度,以及上架審查。

APP 開發流程的六個階段總覽

先看全貌。每個階段都有明確的產出物,產出物沒交付,就不該進下一階段。

階段 主要產出物 主導角色 最常卡關的地方
需求訪談與規格凍結 需求清單、功能規格書(PRD) 業主窗口 + 專案經理 需求講不完、範圍持續擴張
原型與 UI/UX 設計 線框圖、可點擊原型、設計稿 UI/UX 設計師 用文字想像介面,事後才反悔
技術選型與架構規劃 技術文件、API 規格、資料庫設計 技術主管 選型只看成本,沒看三年後
開發與迭代 每輪可安裝的測試版本 工程團隊 進度黑箱,沒有定期可看的成果
測試與驗收 測試報告、UAT 簽核紀錄 測試人員 + 業主 只測功能,沒測機型與異常流程
上架與上線 商店頁面素材、審查通過、正式版本 專案經理 + 工程 審查被退,時程整個往後推

這張表最重要的訊息是:每一列的「產出物」都是可以拿在手上檢查的東西。如果某個階段結束時拿不出對應文件或可安裝版本,那個階段其實沒有做完,只是被口頭宣告完成而已。

兩位工程師在白板前比較三種行動應用技術方案

需求訪談與規格凍結:決定專案八成成敗

需求訪談不是聽業主講一遍想要什麼功能,而是把「想要」翻譯成「做得出來、也驗收得了」的描述。

一個可用的功能規格,至少要能回答四件事:這個功能給誰用、觸發條件是什麼、成功時畫面怎麼變、失敗或例外時怎麼處理。第四項是最常被略過的,也是後期爭議最多的——沒有網路怎麼辦、付款失敗顯示什麼、同一組帳號在兩支手機登入要不要踢掉、後端逾時要重試幾次。這些問題在訪談時多花半小時釐清,勝過在驗收會議上吵兩個小時。

「規格凍結」的意思不是之後都不能改,而是改動要有明確的處理機制。台灣接案端的經驗分享反覆指向同一個糾紛來源:需求變更的計價方式沒有事先談妥。所以凍結時要一併說清楚三件事:變更如何提出、誰有權核准、對時程與費用的影響怎麼計算。把這段寫進合約附件,比事後憑印象爭論有用得多。

同樣要在這個階段確認的還有原始碼歸屬。專案完成後原始碼是否完整交付、日後自行修改或轉手其他廠商是否受限,這些沒寫清楚,未來換人接手時會非常被動。

原型驗證:用點得動的畫面取代想像

規格文件再詳細,看的人腦中浮現的畫面還是各自不同。原型的價值就在這裡:把抽象的功能敘述,變成可以用手指點的流程。

實務上分兩層。線框圖處理的是資訊架構與動線——哪些內容放同一頁、選單要幾層、主要任務要點幾下才完成。可點擊原型處理的是操作感受——按下去有沒有回饋、跳轉是否合理、找不找得到返回路徑、空狀態長什麼樣子。

這個階段多花一週,通常可以省下開發階段兩到三週的返工。因為改一張設計稿的成本,和改一段已經串好 API、寫完測試的程式碼,差距是數量級的。原型驗證真正的功能,是在成本還很低的時候把誤解逼出來。

技術選型:原生、跨平台還是 PWA

技術選型的核心不是「哪個比較新」,而是「哪個和這個專案的優先順序相符」。三條路線的差異可以這樣理解。

原生開發直接使用 iOS 的 Swift/SwiftUI 或 Android 的 Kotlin/Jetpack Compose,介面由作業系統繪製,最貼合平台規範,也最能完整取用硬體能力。

跨平台框架中,React Native 用 JavaScript 描述介面、再映射到原生元件,Meta 已於近年完成新架構重寫;Flutter 走的是自繪路線,介面由自家繪圖引擎產生,Dart 程式碼直接編譯成機器碼。兩者的共同賣點是一套程式碼同時產出雙平台。

PWA 本質上是網頁,透過瀏覽器能力提供接近 APP 的體驗,可以加到手機主畫面,但不進商店,也拿不到完整的裝置權限。

面向 原生(Swift/Kotlin) 跨平台(React Native/Flutter) PWA
相對開發成本 最高(雙平台各做一套) 最低
相對時程 最長 最短
效能與流暢度 最佳 多數情境足夠 受瀏覽器限制
硬體整合深度 完整(藍牙週邊、感測器、CarPlay、watchOS) 常見功能可用,冷門能力需自寫原生模組 有限
推播通知 完整支援 完整支援 支援程度視平台與系統版本而定
是否進商店
是否需通過審查
後續維護重點 兩套程式碼各自跟進系統改版 框架版本升級是主要風險 瀏覽器相容性
適合情境 效能吃重、深度硬體整合、單一平台專案 雙平台需求、功能以資料呈現與流程操作為主 內容導向、以網頁為核心的服務

表格只能給方向,實際判斷還要看團隊手上有什麼人。一個熟悉 React 的團隊選 React Native,和一個沒有 JavaScript 底子的團隊選 React Native,落地品質會完全不同。技術選型跟著團隊能力走,通常比跟著趨勢走安全。

另外,「其實只要一個好用的手機版網站就夠了」的情況也不少見。若核心需求是內容瀏覽、表單填寫或簡單查詢,先評估手機網站設計的可行性,會比直接投入 APP 務實。不同路線的成本落差確實不小,但那屬於報價結構的討論,可以另外參考請人寫 App 多少錢的費用整理

專案角色分工與交付物:誰該交出什麼

流程之所以會卡,很多時候是因為「誰負責」沒講清楚。把角色與交付物同時定義出來,責任才落得下去。

角色 主要職責 應交付的具體成果
業主窗口 決策、提供業務規則、確認設計與驗收 需求優先順序、各階段的書面確認、UAT 簽核
專案經理 排程、風險控管、變更管理 時程表、週報、變更紀錄、風險清單
UI/UX 設計師 動線與介面設計 線框圖、可點擊原型、設計規範與切圖
前端/APP 工程師 介面實作與 API 串接 可安裝測試版本、原始碼與版本紀錄
後端工程師 伺服器、資料庫、API API 文件、資料庫結構、部署說明
測試人員 驗證品質與相容性 測試計畫、缺陷清單、測試報告

其中最容易被低估的是業主窗口的角色。業主端不是只出錢等交付,而是要在每個檢查點做出決策;窗口人選若無權決策,訊息要層層上報再回來,時程一定會被拉長。

開發與迭代:讓進度是看得見的

APP 開發最怕的狀況是「三個月後才第一次看到東西」。合理的做法是把開發切成兩到三週一輪的迭代,每一輪結束都交付一個可安裝的版本,讓業主實際點過。

搭配的基礎建設有三樣:版本控制(Git,含分支策略與程式碼審查)、自動化建置與發佈流程,以及缺陷追蹤系統。這三樣不是為了讓報價單好看,而是決定日後出問題時「查不查得出來、回不回得去」。近年 AI 輔助開發也大幅改變了工作方式與交付節奏,這部分在 2026 軟體開發趨勢中有更完整的討論。

業主端在這個階段的責任是:每一輪都要真的去點,並在當輪內給回饋。累積到最後一次才一口氣提二十項修改,時程一定會被推遲,而且很多修改會因為互相衝突而需要重新討論。

測試要測到什麼程度才算夠

「點過了沒問題」不是測試。一個交付得出去的 APP,測試至少分四層。

單元測試驗證單一函式或模組的邏輯正確,例如折扣計算、日期換算、稅額進位。整合測試驗證模組之間串接無誤,特別是 APP 與後端 API 的資料往返、第三方金流或登入服務的回應處理。

跨機型與跨版本測試處理的是碎片化問題。Android 機型與系統版本差異極大,iOS 則要涵蓋還在支援期的版本與不同螢幕尺寸;瀏海、動態島、小尺寸螢幕、深色模式、系統大字級都是常見翻車點。使用者驗收測試(UAT)由業主依規格文件逐條確認,這是驗收的正式依據,不該只看一次功能展示就簽字。

還有一類最容易漏掉:異常流程測試。斷網、弱網、權限被拒絕、後端逾時、儲存空間不足、通話中斷、App 被系統回收後再開啟——這些情境在真實使用中很常見,卻幾乎不會出現在展示影片裡,也因此最容易在上線後變成客訴。

正式送審前,兩大平台都提供官方的測試發佈管道。iOS 端的 TestFlight 分內部與外部兩軌:內部測試最多 100 位開發團隊成員、不需審查即可發送;外部測試最多可達 10,000 人,但需經過 beta 審查,且每個版本有 90 天有效期。Android 端的 Google Play 測試軌道分內部、封閉、開放三種,內部測試最多 100 人,封閉測試以 Email 名單管理,開放測試則任何人都能加入並回饋。

上架審查:最容易被低估的關卡

很多專案的時程是在這一步失控的。原因不是審查很慢,而是團隊完全沒有為審查做準備。

Apple 的審查實況

依 Apple 官方的 App Review 說明,平均而言 90% 的送審案件在 24 小時內完成審查。也就是說,審查本身其實很快——真正拖時程的,是被退件之後的來回修改。

開發者收到上架審查退件通知,同事拿著送審前檢查清單提醒

同一份官方資料指出,超過 40% 未解決的問題與準則 2.1「App 完整性」有關。這條準則要求的其實都是基本功:

  • 若 APP 有登入功能,必須提供可用的測試帳號,而且後端服務要開著。這是最常見的退件原因之一,不少團隊送審時後端還連著已關閉的測試環境。
  • 所有連結必須有效,隱私政策與客服聯絡方式都要能點得開。
  • 送審前必須在實機測試過,審查過程中閃退幾乎必退。
  • 商店頁面的截圖與說明必須與實際功能一致,不得留有 placeholder 文字或空白頁面。
  • 內購項目必須完整、可見、可運作。

App Review Guidelines 分為安全、效能、商業、設計、法務五大章節,其中還有兩條特別值得中小企業注意。

準則 4.2 最低功能要求明白排除「把網站重新包裝成 APP」的做法。純行銷素材、廣告、網頁剪貼、內容聚合、連結集合都會被退。若企業的規劃只是把官網塞進 WebView,這條會直接擋下來。

準則 5.1.1 隱私與資料蒐集要求在 App Store Connect 與 APP 內都提供隱私政策連結,明確說明蒐集哪些資料、如何蒐集、所有用途,並確認第三方 SDK 提供同等保護。其中 5.1.1 第五項特別規定:只要 APP 支援註冊帳號,就必須在 APP 內提供刪除帳號的功能,不能要求使用者聯絡客服或走外部管道。這一條在台灣專案中被漏掉的比例相當高,而且它牽動的是規格設計,不是上架前補得完的東西。

若確定審查結果有誤,可向 App Review Board 申訴,但須提出具體理由,且每次送審只能申訴一次,申訴前也要先回覆 Apple 的補件要求。

Google Play 的審查與新帳號門檻

Android 這邊有一個容易被忽略的規定。依 Google Play 官方說明2023 年 11 月 13 日之後建立的個人開發者帳號,必須先完成封閉測試才能申請正式版發布:至少 12 位測試人員、連續參與 14 天,中斷後再加入不列入計算。完成後提出正式版存取權申請,審查通常在 7 天內完成,偶爾更久

這條規定有兩個實務重點。第一,它針對的是個人帳號,公司或機構帳號不適用——但若專案圖方便用了個人帳號註冊,就會踩到這道門檻,而且無法回頭。第二,這 14 天是硬性等待,無法用加班壓縮,必須在排程時就預留進去。企業客戶的正確做法,是專案一啟動就以公司名義申請開發者帳號,並確認登記資料與證件英譯一致。

送審前的自我檢查清單

把常見退件原因整理成表,送審前逐項對照,通常可以避開絕大多數的第一次退件。

退件類型 具體情況 事前可做的準備
App 完整性 測試帳號失效、後端環境關閉、審查中閃退 送審前開好專用測試帳號與環境並實機測過
連結與資訊 隱私政策連結失效、客服資訊過期 送審前逐一點過所有外部連結
最低功能 只是把網站包裝成 APP 規格階段就確認有原生價值的功能
隱私合規 未說明資料用途、缺少刪除帳號功能 設計階段就把帳號刪除納入規格
商店素材 截圖與實際畫面不符、說明含 placeholder 上架素材與最終版本同步製作
權限說明 相機、定位權限的用途字串過於籠統 逐項撰寫具體的權限用途說明
帳號機制 支援註冊卻無法在 APP 內刪除帳號 規格納入帳號刪除與資料處理流程

這張清單的價值在於:上面每一項都應該在送審前一週就完成,而不是等審查回覆才開始處理。

上線之後:更新節奏與熱修機制

上架不是終點。APP 的特性是使用者手上會同時存在多個版本,所以上線後的流程反而更需要紀律。

第一是版本策略。明確定義哪些屬於修正版本、哪些屬於功能版本,並決定最低支援的系統版本與 APP 版本,避免無限期支援舊版本而讓維護成本失控。

第二是問題回報與熱修機制。原生 APP 的每次更新都要重新送審,因此嚴重問題的修復速度取決於審查。Apple 對確有嚴重問題的案件提供加急審查申請,但那是例外機制,不能當成常態依賴。比較穩健的做法,是在架構設計時就把可能需要臨時調整的內容(公告文案、功能開關、參數設定)改為由後端下發,這樣不必送審就能即時調整。這個決定要在技術選型階段做,事後補會很痛。

第三是監控。閃退率、API 錯誤率、關鍵流程完成率,這三項數據能在使用者抱怨之前先發現問題。沒有監控的 APP,等於要靠客訴當作品質儀表板。

作業系統每年改版一次,這是必然要面對的維運節奏——新版 iOS 或 Android 推出後,介面相容性、權限行為與 API 支援都可能改變。相關的成本結構,同樣可參考前面提到的費用整理。

時程怎麼估才不會失準

估時程最常見的錯誤,是只算「寫程式的天數」。實際上一個專案的日曆時間,還包含業主端的決策時間、設計確認的來回、測試修正的循環,以及審查的等待。

比較務實的估法是分三塊處理。

可控時間是團隊自己能掌握的開發與設計工時,這部分可以靠人力調度壓縮,但壓縮有極限。

協作時間取決於業主端的回覆速度。這部分要在專案啟動時就約定回覆期限,例如設計稿三個工作天內確認、規格疑問兩個工作天內回覆。沒有約定的話,它會是最不可預測的變數。

固定等待時間則是完全壓縮不了的部分,包括 Google Play 新個人帳號的 14 天封閉測試、正式版存取權審查的 7 天,以及每次送審的排隊時間。這些天數應該在排程一開始就先扣掉,而不是最後才發現。

另外要預留返工緩衝。原型驗證做得越紮實,這塊緩衝可以越小;但完全不留緩衝的排程,幾乎沒有例外都會延期。

若專案已經走到要把構想整理成可執行規格的階段,瞻新資訊提供從需求訪談、原型驗證到上架送審的整段流程規劃,可以先從釐清規格範圍與交付物開始談起。

APP 開發流程常見問題

一個 APP 專案從開始到上架大概要多久?

沒有單一答案,取決於功能數量與決策速度。可以確定的是,除了開發工時之外還要加上壓縮不了的固定等待:Google Play 新個人開發者帳號需要 12 位測試者連續測滿 14 天,正式版存取權審查通常再 7 天,Apple 端則平均 90% 的送審在 24 小時內完成審查。排程時把這些先扣掉,再談開發天數會準得多。

規格凍結之後真的完全不能改需求嗎?

可以改,但要走變更流程。凍結的用意不是禁止調整,而是讓每一次變更都有明確的提出方式、核准者,以及對時程與費用的影響評估。台灣專案最常見的糾紛,正是變更的計價方式沒有事先談妥,導致雙方對「這算不算額外工作」認知不同。

做跨平台會不會品質比較差?

不一定,關鍵在功能性質。以資料呈現、表單流程、內容瀏覽為主的 APP,跨平台框架的表現通常足夠。但若需要深度硬體整合、持續高幀率的圖形運算,或要延伸到 CarPlay、watchOS 等周邊平台,原生開發仍有明顯優勢。另一個現實考量是團隊熟悉度:不熟的框架再好,也做不出穩定的成品。

把公司官網包成 APP 送審會過嗎?

大機率不會。Apple 的 App Review Guidelines 準則 4.2 明確要求 APP 必須提供超越「重新包裝網站」的價值,純網頁剪貼、連結集合、行銷素材都在排除範圍內。如果需求本質上就是在行動裝置上瀏覽網頁內容,做好響應式的手機網站會是更合理也更省成本的選擇。

APP 有會員註冊功能,需要特別注意什麼?

必須在 APP 內提供刪除帳號的功能。Apple 準則 5.1.1 第五項規定,只要支援帳號註冊,就要讓使用者能在 APP 內直接刪除帳號,不能要求聯絡客服。此外隱私政策必須同時放在 App Store Connect 與 APP 內,並清楚說明資料蒐集項目、用途,以及第三方 SDK 的處理方式。這些都要在規格階段就納入,不是上架前補得完的。

上架被退件之後要重新排隊嗎?

是的,修正後重新送審會重新進入審查流程。所以第一次送審的準備品質特別重要——依 Apple 官方資料,超過 40% 的未解決問題集中在「App 完整性」,也就是測試帳號、連結、閃退、metadata 這類基本項目。送審前逐項自我檢查,比事後申訴有效率得多,何況每次送審只能申訴一次。

驗收要怎麼做才不會事後爭議?

依規格文件逐條確認,而不是看一次功能展示。正式的做法是進行使用者驗收測試(UAT),由業主端依照當初凍結的功能規格逐項勾稽,並留下簽核紀錄。同時要把異常流程納入驗收範圍,例如斷網、權限被拒、付款失敗時的系統行為,這些正是上線後最容易出事的地方。

開發者帳號要用公司名義還是個人名義申請?

企業專案建議一律用公司或機構名義。除了品牌識別與帳號延續性之外,Google Play 那條「12 位測試者連續 14 天」的封閉測試門檻只適用於個人帳號,用公司帳號可以避開這段硬性等待。申請時要留意登記資料與證件的英文譯名、地址是否一致,資料不符會拖延審核。

流程跑得穩,比跑得快更省錢

回頭看,APP 開發流程裡真正決定成敗的環節,幾乎都不在寫程式那一段。規格有沒有凍結、原型有沒有驗證、測試有沒有涵蓋異常流程、審查條款有沒有在設計階段就納入規格——這些前置工作做足了,開發階段自然順;做不足,省下來的時間會在退件、返工和爭議裡加倍還回去。

對中小企業來說,最值得建立的觀念是:流程不是報價單上用來湊項目的名詞,而是把風險提前暴露出來的工具。每一個檢查點的存在,都是為了讓錯誤在成本最低的時候被發現。當一份專案計畫裡看得到明確的階段、產出物與檢查點,它通常也就比較不容易出事。