來吧!Flutter(1)-我為甚麼選擇Flutter?
根據 Datareportal 網站所公布,在 2020 年四月中,有 51 億人口使用行動裝置上網,佔全世界人口的 66%。現今行動裝置市場幾乎完全由 Android 以及 iOS 所佔有(Android 約七成、iOS 約三成,資料來源 statecounter 網站),換算下來,Android 的裝置有約 35 億,而 iOS 的裝置有 16 億左右。
使用行動裝置上網的的數量已經超過使用電腦上網的數量,而且這個數量還會持續上升。同時,在 AppStore/Google PlayStore 上的 App 也超過了兩百萬個。當然,這個數字也是不斷增加。
當世界的行動裝置平台被一分為二的同時,開發的語言也根據平台被分成兩類,Android:JAVA、Kotlin,iOS:ObjectC、Swift。
一般來說,要開發一款能在雙平台上線的App,需要兩組工程師(或是一名很強的工程師)。不過同一專案,還是會因為 Android 以及 iOS 工程師能力不同及平台特性不同,導致兩個平台上會有操作、效能上的差異。甚至會有獨有的 bug 存在。
所以跨平台的框架,一直都是一個熱門的選項,對於工程師來說只要維護一個 codebase,就能夠擁有兩個平台的 App,可以減少開發時間,減少橫向溝通的時間,減少 debug 時間,但是跨平台的框架與 Native Language 相比還是被認為有效能問題。
2018/12/05 由 Google 開發的 Flutter 1.0 正式釋出,它改善了跨平台框架效能的問題,輕鬆的就能產生出漂亮的 App。而且他的野心很大,他連 Web 的市場也不放過。
Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.
雖然在 Flutter 問世的 5 年前,已經有 Facebook 釋出的 React-Native 搶攻跨平台的市場。我自己本身沒有使用過 React-Native,但是在 Flutter vs Native vs React-Native: Examining performance 文章中,有這樣的結論:
In summary, not all cross-platform apps are slow. What’s more than that, Flutter apps have higher performance than Swift apps.
Flutter 釋出的時間比起其他跨平台的框架還要晚,但是這也給了 Google 機會,可以把其他框架的缺點補足,趁勢超越其他的框架。這也就是為什麼我選擇 Flutter 的原因。