📌
【Flutter】Web, Desktop(Windows) 開発環境構築
キテルキテルと言われてはいましたが、中々手を付けられずにいたFlutterをやっと触れたので、自分用にメモを残しておこうかと。
【2022/05/17】Flutter 3.0.0で確認
方針
モバイルについては既に先人たちが知見を残してくれているので、ニッチではありますが、FlutterでWebとWindowsデスクトップアプリをなるべく同一ソースで作成する方針でいこうと思っています。
環境構築
何はさておき環境構築、Windows10で公式通りにセットアップを進めます。
インストール
- flutter_windows_x.x.x-stable.zipをダウンロード
- zipファイルをアクセス権限が引っ掛からない場所(C:\Users[ユーザー名]とか)に展開
- 環境変数のPathにflutter\binフォルダーを追加(上記例なら"c:\Users[ユーザー名]\flutter\bin")
- コマンドプロンプト(PowerShell)で
flutter --versionを実行してバージョン情報が表示されればOK - 次に
flutter doctorを実行、するとAndroid toolchainとAndroid Studioにエラーと警告が出ますがWebとWindows開発だけなら問題なし -
最後にFlutter 3.0.0では不要flutter config --enable-windows-desktopを実行してWindowsデスクトップのサポートを有効にする
ここまででFlutterの設定は完了 - Windowsデスクトップ開発にはVisual Studioが必要なのでダウンロードしてくる
個人なら無償のVisual Studio Communityでよいかと - インストーラーを起動し、「C++によるデスクトップ開発」にチェックを入れインストール
【2022/05/17 追記】
現在、Visual Studioをインストールしたあとにflutter doctorを実行するとBad UTF-8 encodingというエラーが発生する。
こちらは英語環境以外で発生するバグのようで、対応方法としては以下からvswhere.exeをダウンロードしてきて、C:\Program Files (x86)\Microsoft Visual Studio\Installerにあるファイルと差し替える。
エディターの用意
こちらも公式のエディターを設定するに記載があるVisual Studio Codeをインストールします。
- Visual Studio Codeをダウンロード
- インストーラーからインストール(特に難しいところはない)
- VS Codeを起動して左のメニューにある拡張機能(□が4つあるアイコン)を選択、検索窓から
Flutterを検索してインストール - 必要に応じて検索窓から
japaneseを検索して日本語プラグイン(Japanese Language Pack for Visual Studio Code)もインストール - インストール済みの拡張機能にDart、Flutter(、Japanese Language Pack for Visual Studio Code)があればOK
-
Ctrl+Shift+Pでコマンドを起動しdoctorと入力、Flutter:Run FlutterDoctorを選択 - 結果、Flutter・Chrome・Visual Studio・VS Codeに✓が入っていればOK
ここまでで環境構築は完了。
サンプルアプリ実行
ひとまず公式が用意しているサンプルアプリを実行するところまでいきます。
- VS Codeで
Ctrl+Shift+Pからflutterを入力し、Flutter:New ApplicationProjectを選択 - プロジェクトのフォルダーを選択
- プロジェクト名を入力(例:
myapp) -
main.dartファイルが表示されればサンプルアプリ構築完了 - 次にVS Code右下のバーに
Windows(windows-x64)が表示されていれば[実行]>[デバッグの開始]を選択する(別のデバイス名が表示されている場合、デバイス名をクリックすれば変更できる) - Windowsデスクトップアプリが起動するので軽く動作確認する
- デバッグを終了し、デバイスを
Chrome(web-javascript)に変更する - 再度[実行]>[デバッグの開始]を選択すると、Chromeが立ち上がりWebアプリが起動するので軽く動作確認する
以上で、サンプルアプリのWindowsデスクトップ版とWebアプリ版の確認が取れたと思う。
最初立ち上げたときは簡単すぎて感動した。
次回はTODOアプリを作成してみる。
Discussion