本文是個(gè)人學(xué)習(xí) Flutter 過程中的筆記,內(nèi)容包含查閱的資料和自己實(shí)踐的總結(jié)。
基本認(rèn)識(shí)
Flutter是Google開發(fā)的一套全新的跨平臺(tái)、開源UI框架,支持iOS、Android系統(tǒng)開發(fā),并且是未來新操作系統(tǒng)Fuchsia的默認(rèn)開發(fā)套件。
Flutter的目標(biāo)是使同一套代碼同時(shí)運(yùn)行在Android和iOS系統(tǒng)上,并且擁有媲美原生應(yīng)用的性能,F(xiàn)lutter甚至提供了兩套控件來適配Android和iOS(滾動(dòng)效果、字體和控件圖標(biāo)等等),為了讓App在細(xì)節(jié)處看起來更像原生應(yīng)用。
Flutter開辟了一種全新的思路,從頭到尾重寫一套跨平臺(tái)的UI框架,包括UI控件、渲染邏輯甚至開發(fā)語言。渲染引擎依靠跨平臺(tái)的Skia圖形庫來實(shí)現(xiàn),依賴系統(tǒng)的只有圖形繪制相關(guān)的接口,可以在最大程度上保證不同平臺(tái)、不同設(shè)備的體驗(yàn)一致性,邏輯處理使用支持AOT的Dart語言,執(zhí)行效率也比JavaScript高得多。
Flutter同時(shí)支持Windows、Linux和macOS操作系統(tǒng)作為開發(fā)環(huán)境,并且在Android Studio和VS Code兩個(gè)IDE上都提供了全功能的支持。Flutter所使用的Dart語言同時(shí)支持AOT和JIT運(yùn)行方式,JIT模式下還有一個(gè)備受歡迎的開發(fā)利器“熱刷新”(Hot Reload),即在Android Studio中編輯Dart代碼后,只需要點(diǎn)擊保存或者“Hot Reload”按鈕,就可以立即更新到正在運(yùn)行的設(shè)備上,不需要重新編譯App,甚至不需要重啟App,立即就可以看到更新后的樣式。
以上內(nèi)容摘自這里
系統(tǒng)要求
安裝并運(yùn)行Flutter,開發(fā)環(huán)境必須滿足以下最低要求:
- 操作系統(tǒng)::macOS (64-bit)
- 磁盤空間::700 MB (不包括Xcode或Android Studio的磁盤空間)。
安裝過程中,不足會(huì)提醒,騰出空間后可繼續(xù)。 - 工具: Flutter 依賴下面這些命令行工具.
bash,mkdir,rm,git,curl,unzip,which
安裝 Flutter
1、下載安裝包
- 去 官網(wǎng) 下載 macOS 的 Flutter 的壓縮包。(別在中文網(wǎng)下載,避免不是最新的)
2、解壓縮安裝包
解壓縮 Flutter 到本地目錄。比如,我在 /Users/xxx目錄下,創(chuàng)建了一個(gè)development文件夾,存放 Flutter:
cd ~
#創(chuàng)建文件夾
mkdir development
cd development
#unzip ~/Downloads/<你剛剛下載的Flutter壓縮文件>
unzip ~/Downloads/flutter_macos_v1.0.0-stable.zip
3、設(shè)置PATH環(huán)境變量
3.1、臨時(shí)添加到PATH(不建議)
添加 Flutter 工具到PATH,由于當(dāng)前就在 /Users/xxx/development,直接用 pwd
#export PATH=<flutter sdk 存放路徑>/flutter/bin:$PATH
export PATH=$PATH:`pwd`/flutter/bin
執(zhí)行echo $PATH可以查看是否設(shè)置成功, 但是這種方式只能暫時(shí)針對(duì)當(dāng)前命令行窗口設(shè)置PATH環(huán)境變量,關(guān)閉命令行窗口重新開啟,echo $PATH查看,則沒有之前的設(shè)置。所以不建議如此。
3.2 永久添加到PATH
- 打開/創(chuàng)建
$HOME/.bash_profile,由于我之前已經(jīng)創(chuàng)建了該文件/Users/xxx/.bash_profile,故直接編輯:
vim ~/.bash_profile
- 添加Flutter到PATH,路徑即為上面Flutter SDK 安裝目錄,一定要正確。
#這是我之前添加的GO的PATH,和下面不沖突
export PATH=$PATH:$GOBIN
#Flutter_SDK_Path:Flutter SDK 安裝目錄,如上面的/Users/xxx/development
export PATH=$PATH:<Flutter_SDK_Path>/flutter/bin
- 使用鏡像:
由于在國(guó)內(nèi)訪問Flutter有時(shí)可能會(huì)受到限制,F(xiàn)lutter官方為中國(guó)開發(fā)者搭建了臨時(shí)鏡像(不定期查閱避免失效),可以將如下環(huán)境變量也加入到用戶環(huán)境變量中:
#國(guó)內(nèi)用戶需要設(shè)置
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
- 保存.bash_profile,并退出編輯模式,刷新當(dāng)前窗口:
source ~/.bash_profile
關(guān)于zsh的配置
若終端為zsh,啟動(dòng)終端時(shí),默認(rèn)不會(huì)加載$HOME/.bash_profile,有如下兩種方式處理,任選其一即可。
1、 可以在$HOME/.zshrc文件中添加source ~/.bash_profile指令,然后保存.zshrc并退出,刷新當(dāng)前窗口source ~/.zshrc
2、 直接將上述關(guān)于flutter的配置,添加到$HOME/.zshrc文件,然后保存并退出,刷新當(dāng)前窗口source ~/.zshrc查看設(shè)置結(jié)果:
echo $PATH
4、執(zhí)行檢查Flutter的安裝
執(zhí)行以下指令,檢查Flutter是否需要安裝其他依賴:
flutter doctor
如本人執(zhí)行后,終端報(bào)錯(cuò)如下:
? libimobiledevice and ideviceinstaller are not installed. To install with Brew, run:
brew update
brew install --HEAD usbmuxd
brew link usbmuxd
brew install --HEAD libimobiledevice
brew install ideviceinstaller
? ios-deploy not installed. To install with Brew:
brew install ios-deploy
根據(jù)以上提示,執(zhí)行安裝。安裝過程中可能會(huì)空間不足,則清除空間后繼續(xù)安裝。最后再次執(zhí)行flutter doctor檢查:
[?] Flutter (Channel stable, v1.0.0, on Mac OS X 10.13.5 17F77, locale zh-Hans-CN)
[!] Android toolchain - develop for Android devices (Android SDK 27.0.3)
! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
[?] iOS toolchain - develop for iOS devices (Xcode 9.4.1)
[?] Android Studio (version 3.0)
? Flutter plugin not installed; this adds Flutter specific functionality.
? Dart plugin not installed; this adds Dart specific functionality.
[?] VS Code (version 1.30.1)
[?] Connected device (1 available)
由于本人目前只考慮iOS的支持,故先忽略Android的支持。所以以上已經(jīng)滿足要求。
5、 其他
官方也提供了以下 clone 的方式來安裝Flutter,本人并沒具體實(shí)踐:
#國(guó)內(nèi)用戶需要設(shè)置官方提供的鏡像
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
#clone
git clone -b dev https://github.com/flutter/flutter.git
#設(shè)置環(huán)境變量
export PATH="$PWD/flutter/bin:$PATH"
cd ./flutter
#檢查flutter
flutter doctor
配置IDE
本人選擇使用的是 VS Code。當(dāng)然也可以配置其他編輯器,詳見官網(wǎng).
1、下載 VS Code
去 VS Code官網(wǎng) 下載安裝最新穩(wěn)定版本。
2、安裝 Flutter 和 Dart 插件
- 啟動(dòng) VS Code
- View > Command Palette,即 查看 > 命令面板
- 輸入
install,選擇 Extensions: Install Extensions,即 擴(kuò)展:安裝擴(kuò)展 - 輸入
flutter,在列表中選中 Flutter 進(jìn)行安裝(會(huì)同步安裝 Dart 插件) - 安裝完畢,點(diǎn)擊 Reload to Activate,即 重新加載
3、檢查
- View > Command Palette,即 查看 > 命令面板
- 輸入
doctor,選擇 Flutter: Run Flutter Doctor - 查看 OUTPUT 面板查看信息,若有報(bào)錯(cuò)根據(jù)提示解決即完成配置。
創(chuàng)建第一個(gè) Flutter 項(xiàng)目
- 啟動(dòng) VS Code
- View > Command Palette,即 查看 > 命令面板
- 輸入
flutter,選擇 Flutter: New Project - 輸入項(xiàng)目名,點(diǎn)擊回車確認(rèn)
- 確認(rèn)項(xiàng)目存放的路徑
- 等待,當(dāng)看到 lib/main.dart 文件,就表示創(chuàng)建成功。
運(yùn)行 Flutter 項(xiàng)目
- VS Code 窗口底部狀態(tài)條,選擇真機(jī)或者模擬器。
- Debug > Start Debugging,或者直接點(diǎn)擊 F5 。
- 等待程序啟動(dòng),可在 Debug Console (調(diào)試控制臺(tái))查看啟動(dòng)進(jìn)度。