【Flutter 3.1】Flutter vs NativeScript - 回憶篇
離上一篇Flutter的文章,算算了有三年了吧,這篇只是單純比較、回憶一下而已。其實個人一直認為手機多平台開發是斜門歪道,但自從Flutter 3.0出現之後,似乎有了希望。
作業環境
項目 | 版本 |
---|---|
CPU | Apple M1 |
macOS | Big Sur 12.3 arm64 |
Xcode | 13.2 arm64 |
Android Studio | 2021.1.1 arm64 |
Flutter | 3.1.0 arm64 |
NativeScript | 8.2.3 arm64 |
William碎碎唸
-
科技越進步,人就要學得越多、越全能,10年前的全端打字工是:Web (前端) + 資料庫 (後端),自從新前端 - 智慧型手機的出現,現在的全端打字工是:Web (前端) + 手機 (前端) + 資料庫 (後端),記得以前出名的雙平台開發平台有:Apache Cordova (PhoneGap) - Adobe / React Native - Facebook / Xamarin - 微軟 / MobileFirst - IBM,都是大廠想強勢以自己的產品主宰手機軟體開發市場,結果都是失敗,沒什麼影響力…
-
尤其是Apache Cordova是以Web技術,載入和UI介面的反應都比原生的程式慢,簡單來說就是把網頁放在手機內,而在App Store 審核指南 - 4.2 - 最低功能要求的規範之下,相當是結束了Cordova日後發展的可能性,之前一開始有使用過,跑起來真的很慢…
-
另外就是React Native,記得當年是紅,因為是Facebook出版的嘛,加上有Airbnb強力推廣,讓它一下子就一飛沖天,但後面Airbnb也跳船了,RN是一項嶄新技術,雖然加速了開發速度,然而伴隨而來的「痛點」也不少,最主要還是兩系統的使用習慣不同,硬要做成一模一樣的長相,而且原本可以各別用原生元件解決的事,硬要寫成一個共用的套件來維護,真的是一件匪夷所思的事…
-
再來就是微軟的Xamarin,應該是抱著對Windows Mobile / Windows Phone失敗的怨念吧?想東山再起,Palm PDA表示…;筆者兩個都買過,Palm PDA滿適合看小說的,Windows Mobile的話,就是縮小版的Windows,一下就沒電了,但可以玩遊戲;個人以為,iPhone之會成功,是它不像微軟把Windows放在手機裡,而是單獨一套系統,手機不可能一直充電,所以電池續航力非常的重要…
-
最後是就Flutter,因為Android是自己公司的系統,所以不管怎麼樣,至少會支援Andoird系統的手機 (就算Apple不讓Flutter寫的程式上架),又加上Debug工具 - 類Chrome系列的市佔率約75%,所以它還進一步可以寫網頁,如今居然連macOS / Linux / Windows的桌面程式都可以寫,真的太可怕了…
比較
-
其實兩邊安裝的軟體都差不多,相信使用的技術應該也是大同小異…
-
iOS支援最低版本:flutter - iOS 11 / nativescript - iOS 9
-
資料夾結構…
-
Run完手機雙平台的大小,可以看得出來Flutter小巧很多…
-
Debug模式,不難看出flutter是以自身的元件設計的,nativescript是以html去做處理…
-
Layout模式:flutter - 直接用畫的 / nativescript - 使用原生的UIKit
-
Web框架支援,這可能是Flutter要跨網頁的欠點之一
-
套件支援 - Flutter有Dart packages / NativeScript有NativeScript Marketplace
後記
- 個人認為還是原生的最好,兩邊都學…
- 其實我個人是網頁派的,想往後端走 (Vue + Golang),不過看來單就手機系統而言,NativeScript應該是由網頁的方向來看手機端的,而Flutter是由手機端出發,所以學Flutter應該是比較理想的,比較不會做出長得像網頁的APP。
- NativeScript適合網頁人員學習,Flutter適合手機人員學習
- 如果要兩邊長得像的,請選NativeScript;如果要依照手機的設計習慣,請選Flutter;找工作,請選Flutter…
- 最後…兩邊的基本功還是要有,千萬不要聽信網路傳言,只學flutter就可以了,到最面的上架、推播…等事情,還是要去原IDE去做相關的設定比較簡單,因為iOS跟Android本來就是不一樣的系統,就像帆船、太空船都是船嗎?