Flutter(以前叫Sky)是一個Google推出的基于Dart語言的跨平臺開發框架,類似于Facebook的React-Native。其目的是為開發者提供一套可以兼容IOS和Android的開發工具,當然,也是Google未來新系統Fuchia的官方開發工具。
Flutter和React-Native相比還是不太成熟的,截至筆者寫此文章時(20180206):React-Native在Github上有59440個star,而Flutter只有10073個,而且只有alpha版本。
但是Flutter還是有相當多的優勢的:
- Dart語言:Dart語言有著比JS更復雜更嚴謹的語言結構,比如類型安全,更容易寫出穩定的代碼,因此更適合做軟件開發;
- 性能更優:React的JS和原生代碼的通訊存在性能瓶頸,然而Flutter直接將Dart代碼編譯成了原生代碼,因此可以直接訪問原生代碼,沒有橋接的性能瓶頸問題。
- 更快的渲染:Flutter在原生canvas基于skia庫完全重新定制了一套控件,使用了更高效的布局方式,并且其畫布摒棄了傳統的矩形更新方案,而是用了更高效控件樹來更新視圖,因此它可以實現高達120fps的刷新率。
- 更高級的特效實現:Flutter內置了MD風格控件和IOS風格控件,開發者直接使用自帶控件就可以實現比較美觀的效果。而且內置了非常豐富的動畫,比如hero動畫(類似于安卓shareelement),可以快速實現各種炫酷效果;
- 兼容性:IOS 8.0+,Android 4.0+ 這個應該不需要多解釋了;
但是它的劣勢也很明顯:
- 目前尚未發布穩定本,所以也只能先自己玩一玩,開發個個人項目什么的
- 軟件庫比較少,Flutter的軟件庫主要來自Dart的package,而后者多年來不慍不火
- 由于需要兼容兩個平臺,因此,無法訪問平臺特性相關內容,如果需要的話,那只能在各自的項目里做好相關模塊然后包裝成dart package供flutter使用(聽說不是很復雜O_o)
1. 環境配置
flutter官方IDE為Intellij的IDEA,只要安裝“flutter”插件就可以了。但是需要自己從官網下載flutter SDk。
如果你懂全局代理,你可以
- choice A
git clone -b dev https://github.com/flutter/flutter.git
# 然后吧flutter/bin加到Linux環境變量里或者windows的Path中
flutter doctor
- Choice B
flutter官方專門講解了如何在中國下載sdk(可是只給了Linux命令)
Linux系統:
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
git clone -b alpha https://github.com/flutter/flutter.git
export PATH="$PWD/flutter/bin:$PATH"
cd ./flutter
flutter doctor
Windows系統:(我猜應該時這么寫,沒試過,就加倆環境變量的事嗎O_o)
set PUB_HOSTED_URL=https://pub.flutter-io.cn
set FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
git clone -b alpha https://github.com/flutter/flutter.git
# 下邊這步其實相當于你自己手動把flutter/bin加到Path中
set PATH=%PATH%;%cd%/flutter/bin
cd flutter
flutter doctor
打開IDEA,新建工程 > Flutter > 一路Next到Finish,只用改個像樣的工程名字就行。