Flutter 開發(fā)和工具

2020-08-27 14:48 更新

安裝和設置

請按照編輯器設置說明安裝Dart和Flutter插件。

Updating the plugins

對插件的更新將定期發(fā)布。當更新可用時,您在IntelliJ中會收到提示。

手動檢查更新:

  1. 打開 preferences (IntelliJ IDEA>Check for Updates… on macOS, Help>Check for Updates… on Linux).
  2. 如果有 dart 后者flutter被列出, 更新它們.

創(chuàng)建項目

創(chuàng)建一個新項目

從Flutter入門應用程序模板創(chuàng)建一個新的Flutter IntelliJ項目:

  1. 在IntelliJ中,在 ‘Welcome’ 窗口點擊 Create New Project 或者在主界面 File>New>Project…
  2. 在菜單中選擇 Flutter , 然后點擊 Next.
  3. 輸入Project name 和 Project location
  4. 點擊 Finish.

從現(xiàn)有的源代碼創(chuàng)建一個新的項目

To create a new Flutter IntelliJ project containing existing Flutter source code files: 創(chuàng)建一個包含現(xiàn)有Flutter源代碼文件的新Flutter IntelliJ項目:

  1. 在IntelliJ中, 在’Welcome’窗口點擊Create New Project 或者在主界面File>New>Project…注意: 不要使用New>Project from existing sources… 選項來創(chuàng)建.
  2. 在菜單中選擇 Flutter , 然后點擊 Next.
  3. 在 Project location 中輸入,或者瀏覽選擇現(xiàn)有的Flutter源代碼文件目錄
  4. 點擊 Finish.

編輯代碼和查看代碼問題

Dart插件執(zhí)行代碼分析,可以:

  • 語法高亮顯示.
  • 基于豐富類型分析的代碼補全.
  • 導航到類型聲明 (Navigate>Declaration), 查找類型使用的地方 (Edit>Find>Find Usages).
  • 查看當前源代碼的所有問題 (View>Tool Windows>Dart Analysis). 任何分析問題將在Analysis pane窗口中顯示:Dart Analysis pane

運行和調試

運行和調試由主工具欄控制:

Main IntelliJ toolbar

選擇一個target

在IntelliJ中打開一個Flutter項目時,您應該在工具欄的右側看到一組Flutter特定的按鈕。

注意: 如果Run&Debug按鈕被禁用,并且沒有列出任何target,則Flutter沒有發(fā)現(xiàn)任何連接的iOS或Android設備或模擬器。您需要連接設備或啟動模擬器才能繼續(xù)。

點擊 Flutter Target Selector 下拉按鈕,這將顯示可用的設備列表,選擇你想讓你的應用運行的設備. 當您連接新的設備或啟動新的模擬器時,里面會添加新的選項

無斷點運行

點擊 運行圖標,或者調用 Run>Run。底部的 Run 窗格中將會顯示日志輸出 Log pane

有斷點運行

  1. 如果需要,可在源代碼中設置斷點.
  2. 點擊工具欄的 調試圖標,或者調用 Run>Debug。底部的 Debugger 窗口將顯示調用棧和變量.底部的 Console 窗口將顯示詳細的日志輸出.調試基于默認的啟動配置。要自定義這個,點擊設備選擇器右側的下拉按鈕,然后選擇 Edit configuration

快速編輯和加快開發(fā)周期

Flutter提供了快速的的開發(fā)周期循壞,使您能夠通過“熱重新”功能在源碼發(fā)生改變后幾乎立即看到變更的效果。有關詳細信息,請參閱熱重載Flutter應用程序。

高級調試

調試可視化布局問題

要調試UI問題,請使用“Debug”啟動應用程序,然后使用’View > Tool Windows > Flutter Inspector’打開Flutter檢查器工具窗口。

IntelliJ Flutter Inspector Window

這提供了許多調試工具; 有關這些詳細信息,請參閱調試Flutter Apps

  • ‘切換 Select Widget 模式’: 在設備上選擇一個widget以在Flutter Inspector中對其進行檢查。
  • ‘切換 Debug Paint’: 顯示W(wǎng)idget布局邊界(包括邊框、padding、對齊等)
  • ‘切換 Platform’: 在Android或iOS渲染之間切換.
  • ‘切換 Performance Overlay’: 顯示GPU和CPU線程的性能圖.
  • ‘打開 Timeline 窗口’: 分析應用程序運行時的活動.
  • ‘打開 Observatory’: Dart應用程序的分析器.

菜單中還有一些其他操作:

  • ‘Show Paint Baselines’: 使每個RenderBox顯示其基線
  • ‘Enable Repaint Rainbow’: 重繪時在層上顯示旋轉顏色.
  • ‘Enable Slow Animations’: 減慢動畫以方便觀察.
  • ‘Hide Slow Mode Banner’: 使在運行調試版本時隱藏’slow mode’橫幅

Debugging with Observatory

Observatory 是一個附帶的基于HTML的用戶界面的調試和分析工具. 詳情請參考 Observatory page.

打開 Observatory:

  1. 以調試模式運行您的應用程序.
  2. 在Debug面板中選擇’open observatory’ (見下面截圖), 點擊秒表?圖標 (‘Open Observatory’).

Debugging panel

Flutter代碼提示

輔助 & 快速修正

輔助是與特定代碼標識符相關的代碼更改。當光標放置在Flutter Widget標識符上時,可以使用其中的一些標識符,如黃色燈泡圖標所示。 可以通過單擊燈泡或使用鍵盤快捷Alt-Enter來調用該輔助功能,如下所示:

IntelliJ editing assists

快速修正是類似的,只有顯示一段有錯誤的代碼時,他們可以幫助您糾正它。它用一個紅色燈泡表示。

輔助菜單中的幾個功能:

用新的widget包裝當前widget

這可以在您想要包裝光標周圍的widget時使用,例如,如果要將widget包裝在一個Row或中Column。

用新的widget包裝widget list

類似于上一條,但是用于包裝現(xiàn)有widget 列表而不是單個widget。

將 child 轉為 children

將child參數(shù)更改為children,并將參數(shù)值包裝在列表中

實時模板

實時模板可用于加速輸入常用的代碼結構塊。通過輸入他們的’前綴’來調用它們,然后在代碼補全窗口中選擇它們:

IntelliJ live templates

Flutter插件包含以下模板:

  • 前綴stless: 創(chuàng)建一個StatelessWidget的子類.
  • 前綴stful: 創(chuàng)建一個StatefulWidget子類并且關聯(lián)到一個State子類.
  • 前綴stanim: 創(chuàng)建一個StatefulWidget子類, 并且它關聯(lián)的State子類包括一個 AnimationController

您還可以在 Settings > Editor > Live Templates 中自定義模板。

IntelliJ鍵盤快捷鍵

熱重載(Hot Reload)

在Linux上(IntelliJ鍵盤映射默認為XWin)和Windows鍵盤快捷鍵是ctrl-alt-;和ctrl-\。

在macOS上(IntelliJ鍵盤映射Mac OS X 10.5+ copy),鍵盤快捷鍵是?-?-; 和?-\。

鍵盤映射可以在IntelliJ Preferences/Settings進行更改:選擇Keymap,然后在右上角的搜索框中輸入”flutter”。右鍵單擊要更改的綁定并添加鍵盤快捷鍵

IntelliJ Settings Keymap

‘熱重載’ vs ‘完全重啟’

熱重載通過將更新的源代碼文件注入正在運行的Dart VM(虛擬機)中工作。這不僅包括添加新類,還包括向現(xiàn)有類添加方法和字段以及更改現(xiàn)有函數(shù)。盡管有幾種類型的代碼更改無法熱重載:

  • 全局變量初始化器.
  • 靜態(tài)字段初始化器.
  • app的main()方法.

對于這些更改,您可以完全重新啟動應用程序,而無需結束調試會話:

不要點擊停止按鈕; 只需重新單擊運行按鈕(如果在運行會話中)或調試按鈕(如果在調試會話中),或者按住Shift鍵并單擊“熱重載”按鈕

在IntelliJ IDEA中編輯Android代碼

要在IntelliJ IDEA中編輯Android代碼,您需要配置Android SDK的位置:

  1. 在Preferences->Plugins中, 啟用 Android Support (如果你還沒有啟用).
  2. 右鍵單擊項目視圖中的android文件夾,然后選擇Open Module Settings。
  3. 在 Sources 選項卡中, 找到 Language level 字段, 然后選擇 ‘8’或更高級別
  4. In Dependencies tab, locate the Module SDK field, and select an
  5. 在Dependencies選項卡中,找到Module SDK字段,然后選擇一個Android SDK。如果沒有列出SDK,請單擊New…并指定Android SDK的位置。 請確保選擇與Flutter使用的Android SDK相匹配的Android SDK(如flutter doctor所提示的)。
  6. 點擊OK.

提示和技巧

請查看這些’cheat sheets’:

  • Flutter IntelliJ cheat sheet, MacOS version
  • Flutter IntelliJ cheat sheet, Windows & Linux version

故障排除

已知問題和反饋

Flutter plugin README文件中記錄了可能影響您的體驗的重要已知問題 。

所有已知的錯誤都會持續(xù)跟蹤:

  • Flutter 插件: GitHub issue 跟蹤.
  • Dart 插件: JetBrains YouTrack.

我們非常歡迎有關錯誤/問題和功能請求的反饋。在提交新問題之前,請:

  • 在問題跟蹤中快速搜索以查看該問題是否已被跟蹤
  • 確保你已經 更新 到了最新版本的插件

提交新issue時,請包括flutter doctor的輸出


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號