最近踏入跨平台開發,過去有開發過 Xamarin 和 Ionic 的我,原先對跨平台不屑一顧,不過在遇到 Flutter 之後,開始有不一樣的期待!為什麼呢?
第一,開發效率比其他跨平台程式語言還要好;第二,成果效能不輸給原生開發。
在此節錄高手的電子書內容,跟著前人的腳步學習,代表好的開始~😀
其實在幫忙維護公司產品時,覺得花太多時間在編譯上,每次編譯動輒一分鐘以上,若不小心動到核心檔案,編譯時間可能將近 5 分鐘,等待的過程我會滑手機,或是想著下一步要怎麼改動程式碼,行雲流水的思緒被中斷,實在不是很爽快呢~
因緣際會接觸了 Flutter 跨平台開發,第一次聽到 Flutter 是在港商公司,我的 Leader 耳聞 Google 最新跨平台技術誕生,就跟老闆提議可考慮用此技術來改善 UI/UX 不平衡的狀況。不久,老闆就裁掉 50 多人的 IT 部門,很快再招募新一批人馬,使用 Flutter 快速迭代開發,我看到上架到 App Store,下巴差點沒掉下來⋯⋯
如今已過兩年,Flutter 發展得比 React Native 還要蓬勃,想必是其有過人之處!😌
首先來了解,原生開發的特色與有何優缺點~
原生開發
原生應用程序是指某一個移動平台(比如 iOS 或 Android)所特有的應用,使用相應平台支持的開發工具和語言,並直接調用系統提供的 SDK API。
比如 Android 原生應用就是指使用 Java 或 Kotlin 語言直接調用 Android SDK 開發的應用程序;而 iOS 原生應用就是指通過 Objective-C 或 Swift 語言直接調用 iOS SDK 開發的應用程序。
原生開發有以下主要優勢:
- 可訪問平台全部功能(定位、相機、藍芽、陀螺儀);
- 速度快、性能高、可以實現複雜動畫及繪製,整體用戶體驗非常好;
主要缺點:
- 平台特定,開發成本高;不同平台必須維護不同代碼,人力成本隨之變大;
- 內容固定,動態化弱,大多數情況下,有新功能更新時只能發新版;
在移動互聯網發展初期,業務場景並不復雜,原生開發還可以應對產品需求迭代。但近幾年,隨著物聯網時代到來、移動互聯網高歌猛進,日新月異,在很多業務場景中,傳統的純原生開發已經不能滿足日益增長的業務需求。主要表現在:
- 動態化內容需求增大;當需求發生變化時,純原生應用需要通過版本升級來更新內容,但應用上架、審核是需要周期的,這對高速變化的互聯網時代來說是很難接受的,所以,對應用動態化(不發新版也可以更新應用內容)的需求就變的迫在眉睫。
- 業務需求變化快,開發成本變大;由於原生開發一般都要維護 Android、iOS 兩個開發團隊,版本迭代時,無論人力成本,還是測試成本都會變大。
總結一下,純原生開發主要面臨動態化和開發成本兩個問題,而針對這兩個問題,誕生了一些跨平台的動態化框架。
跨平台技術簡介
針對原生開發麵臨問題,人們一直都在努力尋找好的解決方案,而時至今日,已經有很多跨平台框架(注意,本書中所指的「跨平台」若無特殊說明,即特指 Android 和 iOS 兩個平台),根據其原理,主要分為三類:
- H5+ 原生(Cordova、Ionic、微信小程序)
- JavaScript 開發+原生渲染(React Native、Weex、快應用)
- 自繪 UI+原生(QT for mobile、Flutter)
居然沒有 Xamarin 介紹,太令人驚訝啦⋯⋯可能是作者沒有做研究吧!?抑或是 Xamarin 已經沒落?!替微軟哭哭~😂
想起 2019 年,跟我交接的 House 聊到~
我:兩平台兩人分別開發,如果時程是兩個月,那麼 Flutter 一個人開發兩平台,時程可以是 1.75 個月嗎?
他:2.6~2.8
他:Native:2人 x 2個月,Flutter:1人 x 2.8個月
我:厲害喔!
我:看來預算若夠的話,顧兩個人來寫會比較快🤓
參考:移動開發技術簡介
Comments on: "[Flutter] 原生與跨平台 (Native and Hybrid)" (1)
Flutter 起風了嗎?
讚讚