top of page

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

  • 作家相片: 馬在飛科技
    馬在飛科技
  • 2023年7月5日
  • 讀畢需時 2 分鐘

已更新:2023年7月24日


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


常有客人會問要寫 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端的開發語言,還有後端及網頁,還有未來的維運。

------------

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

你也可以在Medium上看到馬在飛的文章喔!前往Medium

 
 

© 2022 by Arion Techs Co., Ltd.

105台北市南京東路三段287號9樓

Phone. 0929-522-741

bottom of page