前言
本來參考Flutter | 老孟及自己在學習中對一些資料的收集。希望能幫到想學習flutter的開發者。
Flutter 階段
千呼萬喚始出來,主角-Flutter終于登場了,Flutter是谷歌的移動UI框架,可以快速在iOS和Android上構建高質量的原生用戶界面。
Flutter
吸收了前面的經驗,它既沒有使用WebView
,也沒有使用原生控件進行繪制,而是自己實現了一套高性能渲染引擎來繪制UI
,這個引擎就是大名鼎鼎的Skia
,Skia
是一個2D
繪圖引擎庫,Chrome
和Android
都是采用Skia
作為引擎。Flutter
完美的解決了跨平臺代碼復用和性能問題,大家都在感嘆:似乎UI迎來了終極解決方案
。
Flutter局限性
Flutter
并不是無所不能的,當你選取Flutter
作為技術方案時,首先要了解Flutter
無法實現哪些功能。
UI平臺一致性
由于Flutter
使用自己的引擎
進行UI渲染
,而不是用原生控件
渲染,導致控件顯示效果和原生不是完全一樣,雖然肉眼看起來基本一樣,但還是有一些細微的差別,尤其當Android
和iOS系統
升級導致原生控件效果發生變化時,Flutter開發
的App
并不會進行相應的變化,如果您的App
需要原生控件保持完全一致,Flutter
可能并不適合您。-
動態化更新
動態化功能在國內來說是一項非常重要的功能,
Google官方
已經明確現階段不會實現動態化功能
。
此功能并不是技術上
無法實現,更多的還是政策和法律上
的約束。
因此如果您的App
需要動態化
功能,那么Flutter
可能并不適合您。
總結
既然Flutter
已經如此優秀了,那是不是以后使用Flutter
就可以了呢?答案是否定的,未來很長一段時間應該是原生、Hybird、React Native、Flutter
共存時代。
- 原生開發是無法完全避開的,一些硬件(比如藍牙、傳感器等)功能、音視頻和
ARVR
等相關功能必須使用原生開發
,有人說我開發藍牙功能沒用寫原生代碼啊,直接引入即可,你沒有寫,那是因為有人為你封裝好了第三方插件。 -
Hybird
雖然有一些缺陷,但依然有其使用的場景,比如京東、天貓App
中的營銷活動都是是H5
實現的。 -
React Native
可以使用原生控件渲染,因此,如果您需要使用原生控件而又想跨平臺,React Native
是不錯的選擇。
官方學習地址
Flutter環境配置
flutter安裝和配置
英語比較好的,看英文官網:https://flutter.dev/docs/get-started/install
中文:https://flutter.cn/docs/get-started/install
中國的網絡環境下使用 Flutter
,請先看一下這篇文章
創建Flutter 項目
設置應用程序名稱和圖標
App調試運行
打包部署
Flutter Package
Flutter Package
文本組件
基礎組件
布局組件
定位裝飾權和重組件
手勢識別組件
滾動和大數據組件
Sliver系列組件
功能性組件
App級別組合
組件總結和實戰
動畫
路由
數據庫儲存和網絡請求
混合開發
國際化
Flutter | 老孟
Flutter | 老孟
Flutter組件
flutter實戰
flutter源碼分析
flutter優秀文章
flutter插件
Drat
插件開發 pub
Dart異步與網絡請求
Dart中的異步
異步async、await和Future的使用技巧