Flutter調(diào)研結(jié)果

1:原生開發(fā)與跨平臺技術(shù)對比

1.1 原生開發(fā)

原生應用程序是指某一個移動平臺(比如iOS或安卓)所特有的應用,使用相應平臺支持的開發(fā)工具和語言,并直接調(diào)用系統(tǒng)提供的SDK API,原生開發(fā)有以下主要優(yōu)勢:

  • 可訪問平臺全部功能(GPS、攝像頭);
  • 速度快、性能高、可以實現(xiàn)復雜動畫及繪制,整體用戶體驗好;

主要缺點:

  • 平臺特定,開發(fā)成本高;不同平臺必須維護不同代碼,人力成本隨之變大;
  • 內(nèi)容固定,動態(tài)化弱,大多數(shù)情況下,有新功能更新時只能發(fā)版;

1.2 跨平臺技術(shù)簡介

針對原生開發(fā)面臨問題,跨平臺技術(shù)應運而生,根據(jù)其原理,主要分為三類:

  • H5+原生(Cordova、Ionic、微信小程序)
  • JavaScript開發(fā)+原生渲染 (React Native、Weex、快應用)
  • 自繪UI+原生(QT for mobile、Flutter)

下面主要說一下第三種(自繪UI+原生)跨平臺技術(shù)方案(其他方案介紹請查看移動技術(shù)簡介 )這種技術(shù)的思路是,通過在不同平臺實現(xiàn)一個統(tǒng)一接口的渲染引擎來繪制UI,而不依賴系統(tǒng)原生控件,所以可以做到不同平臺UI的一致性。<mark>注意,自繪引擎解決的是UI的跨平臺問題,如果涉及其它系統(tǒng)能力調(diào)用,依然要涉及原生開發(fā)</mark>基于此目前Flutter的優(yōu)缺點如下:

主要優(yōu)點

  • 性能高;由于自繪引擎是直接調(diào)用系統(tǒng)API來繪制UI,所以性能和原生控件接近。
  • 靈活、組件庫易維護、UI外觀保真度和一致性高;由于UI渲染不依賴原生控件,也就不需要根據(jù)不同平臺的控件單獨維護一套組件庫,所以代碼容易維護。
  • 開發(fā)效率:Flutter的熱重載可幫助開發(fā)者快速地進行測試、構(gòu)建UI、添加功能并更快地修復錯誤。在iOS和Android模擬器或真機上可以實現(xiàn)毫秒級熱重載,并且不會丟失狀態(tài)。

主要缺點

  • 動態(tài)性不足;為了保證UI繪制性能,自繪UI系統(tǒng)一般都會采用AOT模式編譯其發(fā)布包,所以應用發(fā)布后,不能像Hybrid和RN那些使用JavaScript(JIT)作為開發(fā)語言的框架那樣動態(tài)下發(fā)代碼。
  • 現(xiàn)階段APP啟動速度低于原生APP,因為Appqi因存在Flutter運行時環(huán)境的初始化過程
  • 特定功能性能略低于Native:混合?;虿糠止δ苄枰贜ative來實現(xiàn)
  • Flutter不支持直接操作攝像機、GPS等硬件以及平臺相關(guān)的一些服務

針對移動端的系統(tǒng)底層的一些服務以及硬件相關(guān)的操作,目前有兩種方案:

1: flutter官方插件管理平臺pub提供了一些基礎(chǔ)的插件開發(fā)者使用.這些插件的基本原理是內(nèi)部封裝iOS和android端的原生API,對上層調(diào)用者提供統(tǒng)一的dart接口(例如:操作攝像頭的camera 插件,用于本地文件存儲的shared_preferences 插件)。

2:開發(fā)者自己開發(fā)一些插件供Flutter調(diào)用(需要對兩端系統(tǒng)sdk都比較了解)

2:Flutter應用概況

2.1.國內(nèi)使用Flutter的主流應用

2.2.國外使用Flutter的主流應用

  • oGoogle Ads
  • oHamilton Musical
  • oAbbey Road Studios
  • oReflectly
  • oAppTree:僅Android

2.3.Flutter社區(qū)App列表

Flutter社區(qū)App列表
這個社區(qū)收集了熱度較高的Flutter App數(shù)據(jù),總數(shù)為346個,其中92個為開源項目

2.4.GitHub的Flutter項目列表

GitHub的Flutter項目列表
GitHub上flutter相關(guān)的項目有23,323個,其中分布于各平臺的特性插件大致有5K+,Android的有400+

總結(jié):
經(jīng)過調(diào)研我認為,F(xiàn)lutter確實解決了UI的跨平臺問題,UI層面性能接近原生,目前確實發(fā)展十分迅速,但是生態(tài)遠遠沒到成熟的地步,這對于資源有限的應用開發(fā)團隊來說是很致命的,且現(xiàn)在在開發(fā)調(diào)試上還是有些痛苦的,比如無法準確定位錯誤堆棧等。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容