APP開發:Native vs. React native vs. Flutter vs. KMM 孰佳?

Native vs. React native vs. Flutter vs. KMM 孰佳?

大家好,我是馬在飛的飛。

常有客人會問要寫 APP 要用那一種比較好,這類的問題網路上回答不少,但基本上要看你做什麼來決定,對於非技術領域的人卻無從判斷起:到底我的APP ,業務邏輯難不難?效能吃不吃重?畫面複不複雜?所以等於還是沒回答,所以我針對非技術底的客戶從商業角度來建議:

我先簡單描術一下自己的APP的經歷
(年紀大了,時間會有一些誤差,但每一種都踩過坑),

2010 iOS objectC, android java ( MVC )
2012 phoneGap / JQueryMobile / Sencha touch (html5, web)
2016 React-native (redux)
2017 Android Kotlin ( RX, MVVM, data-binding) iOS Swift (MVP, MVVM, VIPER, other design pattern )
2018 React-native (hooks)
2019 Flutter (mvvm, scoped , provider, provider,)
2020 Flutter ( bloc)

直接說結論:如果你來找我們做APP,我首推 flutter / react-native,原因很簡單: 節省時間和金錢,Time to market 愈早愈好(MVP的概念)

Q1. 那有沒有可能有 RN/Flutter 做不到的功能?有,但機率很小,如果真發生,我們有native
Q2. 那 flutter 和 rn 有沒有差別?有: 對經營者來說,很大的差在維運(找工程師來維謢)
1. 找我們外包APP後的功能新增或維運交給我們, 我們會用 flutter,效能較佳,社群支援度提升很快。
2. 如果你要自己找工程師維運可選 RN,因為產品不只APP,也會有後端甚至Web, RN 用 node-js ,可以寫 Server (express, AWS lambda, …), 也可以寫 Web (react js, vue …),在台灣 小公司/新創 要找工程師不好找,如果只有nodeJS可增加人力效率。

當然有另一種選擇是用 flutter + AWS amplify 變成偏前端的全端工程師,但這變成你的商業邏輯都集中在APP上,另一種相反做法,則讓APP只是資料呈現和操作互動,讓主要的還輯在後台;各有優缺點:(個人偏好第二種)
1. 集中在APP端,Server的負載低,費用也低,但是一但有發現bug, 改完APP重新送審,中間的等待堪稱煎熬。
2. 另一種做法就剛好相反,但Server的費用高,但如果發生問題,大部分要解決可能更新 Server 就好了。

最後身為一個APP工程師,目前 flutter 的 漲勢看好,但 react-native / react 的 Hooks 確實好用簡單;但不管那種,你都最好都要有 native 的基礎,才能應對各種問題,而 KMM, 雖然沒寫過,但能理解,在 kotlin/swift 寫習慣後再回去寫別的語言都會很懷念它們的好,但做一個產品涉及到的不光只是APP端的開發語言,還有後端及網頁,還有未來的維運。

若你有軟體開發或專案管理的需求,請點擊此並留下你的需求,我們會盡快與你聯繫

前往馬在飛科技官網

--

--

馬在飛科技用不一樣的管理思維,帶給你更好的軟體外包體驗。從系統規劃、UI/UX設計到軟體開發、保固維護,全方位專業團隊為你服務,並依循敏捷開發的精神,讓你能隨時掌握專案進度,並快速地取得產出,獲得市場回饋。讓馬在飛與你一起從無到有創作屬於你的產品,開創新的數位生活體驗!

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
馬在飛科技

馬在飛科技

馬在飛科技用不一樣的管理思維,帶給你更好的軟體外包體驗。從系統規劃、UI/UX設計到軟體開發、保固維護,全方位專業團隊為你服務,並依循敏捷開發的精神,讓你能隨時掌握專案進度,並快速地取得產出,獲得市場回饋。讓馬在飛與你一起從無到有創作屬於你的產品,開創新的數位生活體驗!