Flutter 搭建開發環境和創建首個項目

本文是個人學習 Flutter 過程中的筆記,內容包含查閱的資料和自己實踐的總結。


基本認識

Flutter是Google開發的一套全新的跨平臺、開源UI框架,支持iOS、Android系統開發,并且是未來新操作系統Fuchsia的默認開發套件。

Flutter的目標是使同一套代碼同時運行在Android和iOS系統上,并且擁有媲美原生應用的性能,Flutter甚至提供了兩套控件來適配Android和iOS(滾動效果、字體和控件圖標等等),為了讓App在細節處看起來更像原生應用。

Flutter開辟了一種全新的思路,從頭到尾重寫一套跨平臺的UI框架,包括UI控件、渲染邏輯甚至開發語言。渲染引擎依靠跨平臺的Skia圖形庫來實現,依賴系統的只有圖形繪制相關的接口,可以在最大程度上保證不同平臺、不同設備的體驗一致性,邏輯處理使用支持AOT的Dart語言,執行效率也比JavaScript高得多。

Flutter同時支持Windows、Linux和macOS操作系統作為開發環境,并且在Android Studio和VS Code兩個IDE上都提供了全功能的支持。Flutter所使用的Dart語言同時支持AOT和JIT運行方式,JIT模式下還有一個備受歡迎的開發利器“熱刷新”(Hot Reload),即在Android Studio中編輯Dart代碼后,只需要點擊保存或者“Hot Reload”按鈕,就可以立即更新到正在運行的設備上,不需要重新編譯App,甚至不需要重啟App,立即就可以看到更新后的樣式。

以上內容摘自這里


系統要求

安裝并運行Flutter,開發環境必須滿足以下最低要求:

  • 操作系統::macOS (64-bit)
  • 磁盤空間::700 MB (不包括Xcode或Android Studio的磁盤空間)。
    安裝過程中,不足會提醒,騰出空間后可繼續。
  • 工具: Flutter 依賴下面這些命令行工具.
    bash, mkdir, rm, git, curl, unzip, which

安裝 Flutter

1、下載安裝包

  • 官網 下載 macOS 的 Flutter 的壓縮包。(別在中文網下載,避免不是最新的)

2、解壓縮安裝包

解壓縮 Flutter 到本地目錄。比如,我在 /Users/xxx目錄下,創建了一個development文件夾,存放 Flutter:

cd ~
#創建文件夾
mkdir development

cd development
#unzip ~/Downloads/<你剛剛下載的Flutter壓縮文件>
unzip ~/Downloads/flutter_macos_v1.0.0-stable.zip

3、設置PATH環境變量

3.1、臨時添加到PATH(不建議)

添加 Flutter 工具到PATH,由于當前就在 /Users/xxx/development,直接用 pwd

#export PATH=<flutter sdk 存放路徑>/flutter/bin:$PATH
export PATH=$PATH:`pwd`/flutter/bin

執行echo $PATH可以查看是否設置成功, 但是這種方式只能暫時針對當前命令行窗口設置PATH環境變量,關閉命令行窗口重新開啟,echo $PATH查看,則沒有之前的設置。所以不建議如此。

3.2 永久添加到PATH

  • 打開/創建$HOME/.bash_profile,由于我之前已經創建了該文件 /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
  • 使用鏡像:
    由于在國內訪問Flutter有時可能會受到限制,Flutter官方為中國開發者搭建了臨時鏡像(不定期查閱避免失效),可以將如下環境變量也加入到用戶環境變量中:
#國內用戶需要設置
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
  • 保存.bash_profile,并退出編輯模式,刷新當前窗口:
source ~/.bash_profile
  • 關于zsh的配置
    若終端為zsh,啟動終端時,默認不會加載$HOME/.bash_profile,有如下兩種方式處理,任選其一即可。
    1、 可以在$HOME/.zshrc 文件中添加 source ~/.bash_profile 指令,然后保存.zshrc并退出,刷新當前窗口 source ~/.zshrc
    2、 直接將上述關于flutter的配置,添加到$HOME/.zshrc 文件,然后保存并退出,刷新當前窗口 source ~/.zshrc

  • 查看設置結果:

echo $PATH

4、執行檢查Flutter的安裝

執行以下指令,檢查Flutter是否需要安裝其他依賴:

flutter doctor

如本人執行后,終端報錯如下:

? 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

根據以上提示,執行安裝。安裝過程中可能會空間不足,則清除空間后繼續安裝。最后再次執行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的支持。所以以上已經滿足要求。

5、 其他

官方也提供了以下 clone 的方式來安裝Flutter,本人并沒具體實踐:

#國內用戶需要設置官方提供的鏡像
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
#設置環境變量
export PATH="$PWD/flutter/bin:$PATH"
cd ./flutter
#檢查flutter
flutter doctor

配置IDE

本人選擇使用的是 VS Code。當然也可以配置其他編輯器,詳見官網.

1、下載 VS Code

VS Code官網 下載安裝最新穩定版本。

2、安裝 Flutter 和 Dart 插件

  • 啟動 VS Code
  • View > Command Palette,即 查看 > 命令面板
  • 輸入 install,選擇 Extensions: Install Extensions,即 擴展:安裝擴展
  • 輸入 flutter,在列表中選中 Flutter 進行安裝(會同步安裝 Dart 插件)
  • 安裝完畢,點擊 Reload to Activate,即 重新加載

3、檢查

  • View > Command Palette,即 查看 > 命令面板
  • 輸入 doctor,選擇 Flutter: Run Flutter Doctor
  • 查看 OUTPUT 面板查看信息,若有報錯根據提示解決即完成配置。

創建第一個 Flutter 項目

  • 啟動 VS Code
  • View > Command Palette,即 查看 > 命令面板
  • 輸入 flutter,選擇 Flutter: New Project
  • 輸入項目名,點擊回車確認
  • 確認項目存放的路徑
  • 等待,當看到 lib/main.dart 文件,就表示創建成功。

運行 Flutter 項目

  • VS Code 窗口底部狀態條,選擇真機或者模擬器。
  • Debug > Start Debugging,或者直接點擊 F5
  • 等待程序啟動,可在 Debug Console (調試控制臺)查看啟動進度。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,967評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,273評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,870評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,742評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,527評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,010評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,108評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,250評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,769評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,656評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,853評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,371評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,103評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,472評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,717評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,487評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,815評論 2 372

推薦閱讀更多精彩內容