最近…很多人在問我,想做個 App,到底要用什麼工具。嗯…這個問題,真的很難一句話說完。😅
每次打開國外的科技部落格,或是台灣的 PTT、Dcard,看到的都是 React Native 和 Flutter 大戰。 好像全世界只剩下這兩個選擇。但…真的是這樣嗎?老實說,我覺得這個風向有點…太簡化了。
今天不想講得太複雜,就…用聊天的感覺,整理一下我的思路吧。希望能幫到那些跟我一樣,看到一堆專有名詞就頭痛的人。🤔
先說結論:沒有最好的,只有最適合的
我知道這句話很像廢話,但…這是真的。你選的工具,和你「想做什麼」、「團隊有誰」、「有多少錢跟時間」這三件事,是綁死的。
很多人一開始就衝著「效能最好」或「現在最紅」的去,結果卡在半路。例如,一個只有網頁前端工程師的小團隊,硬要去學全新的語言,結果 App 還沒上線,錢就燒完了。這種故事,我聽過太多了…。
怎麼選?從你的「人」和「錢」開始想
在我們跳進去比較那 5 款主流平台之前,我想先聊一個更重要的,就是「預算」跟「團隊組成」。這比技術本身更關鍵。
比如說,我一個朋友的公司,他們是做電商的,內部工程師全是寫 C# 的 .NET 老手。當時大家都在吹捧 Flutter,說他 UI 多漂亮又多順。 他們也想過要不要跟風,但最後還是選了 .NET MAUI。 為什麼?因為團隊不用重學,直接無痛接軌。省下來的時間和學費,夠他們多做好幾個功能了。
你看,這就是現實。技術再炫,也要團隊接得住才有用。尤其在台灣,某些技術的人才庫就是比較少,硬要選的話,光是招人就夠你頭痛了。
主流開發工具,一次攤開來看
好了,心裡有個底之後,我們就可以來看工具了。我把它們分成幾類,這樣比較好懂。
| 開發方式 | 代表工具 | 我的碎碎念… (優缺點) | 誰適合用? |
|---|---|---|---|
| 原生開發 (Native) | iOS: Swift Android: Kotlin |
嗯…就是正統作法。效能沒話說,順到不行,所有手機新功能第一個就能用。 但就是要養兩組人、寫兩套 code,錢包會很痛…維護也麻煩。 | 口袋夠深、對 App 效能和體驗有極致要求的大公司。像是銀行、遊戲 App。 |
| 跨平台開發 (Cross-Platform) | React Native | Meta (Facebook) 出的,Web 前端工程師會很愛,因為用的是 JavaScript/React。 社群超大,找資料方便。 但它…嗯…是透過一個「橋」去跟原生溝通,有時候效能會卡一下,特別是複雜動畫。 | 團隊裡本來就有很多 React 高手,想快速把 Web 經驗搬到 App 上的。 |
| 跨平台開發 (Cross-Platform) | Flutter | Google 的親兒子,主打 UI 一致性跟流暢度。 它自己畫 UI,所以 Android 跟 iPhone 長得一模一樣。效能通常比 RN 好。 缺點是…要學新的 Dart 語言,雖然不難,但終究是個門檻。 | 新創團隊、對 UI 設計有高度要求、想快速開發漂亮 App 的人。 |
| 跨平台開發 (Cross-Platform) | .NET MAUI | 前身是 Xamarin,微軟家的東西。 如果你的團隊是 C# 和 .NET 的信徒,那幾乎是首選。它跟整個微軟生態系整合得很好。不過…社群跟上面兩個比,小了一點。 | 主要用微軟技術棧的企業,特別是需要整合 Windows 桌面的 B2B 應用。 |
| Web 應用 (PWA) | (基於 Web 技術) | Progressive Web App,漸進式網頁應用。簡單說,它就是個「看起來、用起來很像 App 的網站」。不用上架 App Store、不用下載。 2025 年 PWA 的功能又更強了,可以離線用、也能推播通知。 但缺點就是,還是有些原生功能用不到。 | 內容型網站、電商、不太需要複雜硬體功能的服務。適合想快速接觸使用者、又不想被商店抽成的。 |
不同情境,不同選擇
光看表格可能還是很抽象,我用幾個例子來說明好了。
情境一:你是個一人創業者,有個點子想快速驗證
這種情況,我甚至不建議你馬上找工程師寫 code。你可以先試試看「無程式碼 (No-Code)」平台,像是 Bubble 或 Glide。 這些工具用拖拉的方式就能做出一個功能完整的 App,雖然效能和彈性有極限,但拿來驗證市場「到底有沒有人要用你的產品」,成本最低、速度最快。
如果市場反應不錯,再來考慮 PWA 或 Flutter。PWA 不用上架,使用者點個網址就能用,推廣很方便。 Flutter 則是可以讓你用比較低的成本,快速做一個看起來很專業的 App。
情境二:你是中小企業,已經有官網和一些客戶
這時候,你的團隊裡可能已經有網頁工程師了。那 React Native 會是個很自然延伸的選擇。 他們不需要學全新的東西,可以直接把會的技術用上來,開發速度會快很多。
或者,如果你的 App 主要是資訊展示、預約、簡單的會員功能,那做成 PWA 也是個非常好的選項。 使用者不用特別去下載,能降低使用門檻,而且維護成本也比完整的 App 低很多。
情境三:你的 App 需要很高的效能,例如直播或複雜的 3D 功能
…那就別想了,直接用原生開發 (Native)。
這是跨平台框架的痛點。雖然它們一直努力在追上原生,但在處理極度吃重效能的任務時,像是即時影音串流、AR/VR、或是需要大量運算的科學應用,原生 App 的穩定性和效能還是無法被取代的。 這種錢,不能省。
一些常見的迷思或錯誤
聊了這麼多,最後補充幾個大家常搞混的點。
「跨平台 = 寫一次 code 就搞定?」
嗯…理想上是,但現實中,大概是「寫一次,到處修」。
雖然 80-90% 的程式碼可以共用,但你還是會遇到一些 iOS 和 Android 獨有的問題。 比如權限管理、推播通知的設定、或是某些 UI 元件在兩個平台上的小差異。所以,完全不懂原生開發的知識,直接投入跨平台,還是會蠻辛苦的。
「選了 Flutter 是不是就找不到人了?」
幾年前可能是,但現在好很多了。根據一些統計,Flutter 的市佔率一直在快速爬升,甚至在某些地區已經超越 React Native。 在台灣的開發者社群,討論度也越來越高。不過,老實說,跟龐大的 JavaScript/React 開發者比起來,熟悉 Dart/Flutter 的人才庫還是相對小一些。 這是你在做決策時需要考慮的。
「Xamarin 已經沒了,.NET MAUI 能用嗎?」
可以,而且還不錯。Xamarin 確實在 2024 年 5 月停止支援了,.NET MAUI 就是它的正式接班人。 它統一了專案結構,開發體驗比以前好很多,效能也有提升。 如果你的公司是 .NET 的重度使用者,那它絕對是個值得考慮的選項。
呼…不知不覺就說了這麼多。總之,選工具是個綜合題,沒有標準答案。希望今天的分享,能讓你更有方向感一點。別再只聽別人說哪個好,靜下來想一想自己的狀況,答案自然就會浮現。🙂
你正在考慮哪種開發方式呢?或是有用過什麼工具踩過什麼雷?歡迎在下面留言分享你的經驗吧!
