Flutter 搭建開(kāi)發(fā)環(huán)境和創(chuàng)建首個(gè)項(xiàng)目

本文是個(gè)人學(xué)習(xí) Flutter 過(guò)程中的筆記嫁蛇,內(nèi)容包含查閱的資料和自己實(shí)踐的總結(jié)宇色。


基本認(rèn)識(shí)

Flutter是Google開(kāi)發(fā)的一套全新的跨平臺(tái)剃袍、開(kāi)源UI框架腕侄,支持iOS侥猬、Android系統(tǒng)開(kāi)發(fā)善炫,并且是未來(lái)新操作系統(tǒng)Fuchsia的默認(rèn)開(kāi)發(fā)套件撩幽。

Flutter的目標(biāo)是使同一套代碼同時(shí)運(yùn)行在Android和iOS系統(tǒng)上,并且擁有媲美原生應(yīng)用的性能箩艺,F(xiàn)lutter甚至提供了兩套控件來(lái)適配Android和iOS(滾動(dòng)效果窜醉、字體和控件圖標(biāo)等等),為了讓App在細(xì)節(jié)處看起來(lái)更像原生應(yīng)用艺谆。

Flutter開(kāi)辟了一種全新的思路榨惰,從頭到尾重寫(xiě)一套跨平臺(tái)的UI框架,包括UI控件静汤、渲染邏輯甚至開(kāi)發(fā)語(yǔ)言琅催。渲染引擎依靠跨平臺(tái)的Skia圖形庫(kù)來(lái)實(shí)現(xiàn)居凶,依賴(lài)系統(tǒng)的只有圖形繪制相關(guān)的接口,可以在最大程度上保證不同平臺(tái)藤抡、不同設(shè)備的體驗(yàn)一致性侠碧,邏輯處理使用支持AOT的Dart語(yǔ)言,執(zhí)行效率也比JavaScript高得多缠黍。

Flutter同時(shí)支持Windows弄兜、Linux和macOS操作系統(tǒng)作為開(kāi)發(fā)環(huán)境,并且在Android Studio和VS Code兩個(gè)IDE上都提供了全功能的支持瓷式。Flutter所使用的Dart語(yǔ)言同時(shí)支持AOT和JIT運(yùn)行方式替饿,JIT模式下還有一個(gè)備受歡迎的開(kāi)發(fā)利器“熱刷新”(Hot Reload),即在Android Studio中編輯Dart代碼后贸典,只需要點(diǎn)擊保存或者“Hot Reload”按鈕视卢,就可以立即更新到正在運(yùn)行的設(shè)備上,不需要重新編譯App廊驼,甚至不需要重啟App据过,立即就可以看到更新后的樣式。

以上內(nèi)容摘自這里


系統(tǒng)要求

安裝并運(yùn)行Flutter蔬充,開(kāi)發(fā)環(huán)境必須滿(mǎn)足以下最低要求:

  • 操作系統(tǒng)::macOS (64-bit)
  • 磁盤(pán)空間::700 MB (不包括Xcode或Android Studio的磁盤(pán)空間)蝶俱。
    安裝過(guò)程中,不足會(huì)提醒饥漫,騰出空間后可繼續(xù)榨呆。
  • 工具: Flutter 依賴(lài)下面這些命令行工具.
    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)閉命令行窗口重新開(kāi)啟怠肋,echo $PATH查看,則沒(méi)有之前的設(shè)置淹朋。所以不建議如此笙各。

3.2 永久添加到PATH

  • 打開(kāi)/創(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)訪問(wèn)Flutter有時(shí)可能會(huì)受到限制,F(xiàn)lutter官方為中國(guó)開(kāi)發(fā)者搭建了臨時(shí)鏡像(不定期查閱避免失效)鲫懒,可以將如下環(huán)境變量也加入到用戶(hù)環(huán)境變量中:
#國(guó)內(nèi)用戶(hù)需要設(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是否需要安裝其他依賴(lài):

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í)行安裝。安裝過(guò)程中可能會(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)滿(mǎn)足要求输涕。

5、 其他

官方也提供了以下 clone 的方式來(lái)安裝Flutter议泵,本人并沒(méi)具體實(shí)踐:

#國(guó)內(nèi)用戶(hù)需要設(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)然也可以配置其他編輯器,詳見(jiàn)官網(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)擊回車(chē)確認(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)度寓免。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末癣诱,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子袜香,更是在濱河造成了極大的恐慌撕予,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜈首,死亡現(xiàn)場(chǎng)離奇詭異节吮,居然都是意外死亡熏版,警方通過(guò)查閱死者的電腦和手機(jī)甜奄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)关串,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人踩寇,你說(shuō)我怎么就攤上這事啄清。” “怎么了俺孙?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵辣卒,是天一觀的道長(zhǎng)掷贾。 經(jīng)常有香客問(wèn)我,道長(zhǎng)荣茫,這世上最難降的妖魔是什么想帅? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮啡莉,結(jié)果婚禮上港准,老公的妹妹穿的比我還像新娘。我一直安慰自己咧欣,他們只是感情好浅缸,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著魄咕,像睡著了一般疗杉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蚕礼,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音梢什,去河邊找鬼奠蹬。 笑死,一個(gè)胖子當(dāng)著我的面吹牛嗡午,可吹牛的內(nèi)容都是我干的囤躁。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼荔睹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼狸演!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起僻他,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宵距,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后吨拗,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體满哪,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年劝篷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哨鸭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡娇妓,死狀恐怖像鸡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情哈恰,我是刑警寧澤只估,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布志群,位于F島的核電站,受9級(jí)特大地震影響仅乓,放射性物質(zhì)發(fā)生泄漏赖舟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一夸楣、第九天 我趴在偏房一處隱蔽的房頂上張望宾抓。 院中可真熱鬧,春花似錦豫喧、人聲如沸石洗。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)讲衫。三九已至,卻和暖如春孵班,著一層夾襖步出監(jiān)牢的瞬間涉兽,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工篙程, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留枷畏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓虱饿,卻偏偏與公主長(zhǎng)得像拥诡,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子氮发,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容