Flutter(以前叫Sky)是一個Google推出的基于Dart語言的跨平臺開發(fā)框架甚淡,類似于Facebook的React-Native。其目的是為開發(fā)者提供一套可以兼容IOS和Android的開發(fā)工具,當(dāng)然,也是Google未來新系統(tǒng)Fuchia的官方開發(fā)工具。
Flutter和React-Native相比還是不太成熟的,截至筆者寫此文章時(20180206):React-Native在Github上有59440個star赢赊,而Flutter只有10073個,而且只有alpha版本级历。
但是Flutter還是有相當(dāng)多的優(yōu)勢的:
- Dart語言:Dart語言有著比JS更復(fù)雜更嚴(yán)謹(jǐn)?shù)恼Z言結(jié)構(gòu)释移,比如類型安全,更容易寫出穩(wěn)定的代碼寥殖,因此更適合做軟件開發(fā)玩讳;
- 性能更優(yōu):React的JS和原生代碼的通訊存在性能瓶頸,然而Flutter直接將Dart代碼編譯成了原生代碼嚼贡,因此可以直接訪問原生代碼熏纯,沒有橋接的性能瓶頸問題。
- 更快的渲染:Flutter在原生canvas基于skia庫完全重新定制了一套控件粤策,使用了更高效的布局方式樟澜,并且其畫布摒棄了傳統(tǒng)的矩形更新方案,而是用了更高效控件樹來更新視圖,因此它可以實現(xiàn)高達(dá)120fps的刷新率秩贰。
- 更高級的特效實現(xiàn):Flutter內(nèi)置了MD風(fēng)格控件和IOS風(fēng)格控件霹俺,開發(fā)者直接使用自帶控件就可以實現(xiàn)比較美觀的效果。而且內(nèi)置了非常豐富的動畫萍膛,比如hero動畫(類似于安卓shareelement)吭服,可以快速實現(xiàn)各種炫酷效果;
- 兼容性:IOS 8.0+蝗罗,Android 4.0+ 這個應(yīng)該不需要多解釋了;
但是它的劣勢也很明顯:
- 目前尚未發(fā)布穩(wěn)定本蝌戒,所以也只能先自己玩一玩串塑,開發(fā)個個人項目什么的
- 軟件庫比較少,F(xiàn)lutter的軟件庫主要來自Dart的package北苟,而后者多年來不慍不火
- 由于需要兼容兩個平臺桩匪,因此,無法訪問平臺特性相關(guān)內(nèi)容友鼻,如果需要的話傻昙,那只能在各自的項目里做好相關(guān)模塊然后包裝成dart package供flutter使用(聽說不是很復(fù)雜O_o)
1. 環(huán)境配置
flutter官方IDE為Intellij的IDEA,只要安裝“flutter”插件就可以了彩扔。但是需要自己從官網(wǎng)下載flutter SDk妆档。
如果你懂全局代理,你可以
- choice A
git clone -b dev https://github.com/flutter/flutter.git
# 然后吧flutter/bin加到Linux環(huán)境變量里或者windows的Path中
flutter doctor
- Choice B
flutter官方專門講解了如何在中國下載sdk(可是只給了Linux命令)
Linux系統(tǒng):
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系統(tǒng):(我猜應(yīng)該時這么寫虫碉,沒試過贾惦,就加倆環(huán)境變量的事嗎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
# 下邊這步其實相當(dāng)于你自己手動把flutter/bin加到Path中
set PATH=%PATH%;%cd%/flutter/bin
cd flutter
flutter doctor
打開IDEA,新建工程 > Flutter > 一路Next到Finish敦捧,只用改個像樣的工程名字就行须板。