やるぜ！Flutter！　VSCodeで環境構築編

kotlinとか頑張ってきたんだけどさ。どうも今一つ入ってこねー。
いや、やったら多分それなりに出来るんだと思うんだよ。でも、じゃあiosはどうするの？なんて言われるとさ。mac持ってないしさ。
それなら少しでもマルチな対応できる言語で開発したらよくね？と思うわけですよ。
そしたらxamarin?いや、そこまでMS信じてないし（すまん）。
で、とりあえずFlutterにしてみました。

例によって自分の備忘録的に書いていくよ。ちなみにおいらの環境は下記の状態だ。
・Windows10
・MSCodeインストール済み
・Android Studioインストール済み

本当は一回Flutterインストールしちゃったけど、やってない体で書いていくよ。
だから「こんなの初めてー」とか言ってるけど、本当は初めてじゃないんだ、ごめんね。

# 1.Flutterをダウンロードする
まずは公式からFlutterをダウンロードする。
https://flutter.dev/docs/get-started/install

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/7d602417-f045-03d1-aaff-c07a6c47e44a.png)

おいらはWindowsだから、WindowsのアイコンをクリックするとWindowsのインストールページが開くよ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/e493bd3e-3e1e-1cf6-78b3-7975554d4535.png)

下のほうに行くと、「Get the Flutter SDK」というところにSDKのダウンロードボタンがあるから、これをクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/88084ca7-396c-1b6e-2054-f3a90a221d4c.png)

そうすると、何も聞かれず普通にダウンロードされるよ。
zipだから解凍して、どこか適当なところにコピーまたは移動しよう。
あとで環境変数に設定するから、変に深い階層などに入れないほうが吉。
program filesなど後で権限がどうこう言われそうなフォルダも避けておいたほうがいいでしょう。
僕ぁ思い切ってCドライブ直下に入れたよ。どうでもいいんだけどさ。
C直下って、入れたの割と忘れるよね。

# 2.PATHを設定する
設置したFlutterのフォルダにPATHを通すよ。
あれ、コンパネのシステムってどこ行っちゃったっけ？なんて言っているおじいちゃん、おいらも同類です。
さっくり設定からの開き方書きます。
設定-システム-左メニューのバージョン情報-下の方のシステム情報をクリック
→コンパネのシステムの画面が表示される。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/4b3e4e89-e931-159a-fd8a-07efa6635a8c.png)

左メニューのシステムの詳細設定をクリックすると、システムのプロパティが開くよ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/f3e70c25-0e68-4d8d-9a3b-03b3217f37f8.png)

下のほうにある環境変数をクリック。環境変数の画面が開く。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/250baa3b-0819-d13f-7153-b8656d814c19.png)

一応恥ずかしいからモザイクね。あんまり見ちゃいや。
ユーザ環境変数（上の段）から変数Pathを選択して編集をクリック。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/b696f043-ca56-f2f0-06b8-ed2628fa407b.png)

一番下に、１．で解凍してどこかに置いたFlutter\binのPathを設定するんだ。
僕ぁCドライブ直下にしたからこんな感じだ。このままパクってもだめだからね。

Pathを通すと、Flutterコマンドがプロンプトから使えるようになるよ。
試しに「flutter --version」でバージョンを表示してみよう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/88418fb5-89c7-f5d2-36f8-f7b89a702f2a.png)

こんな感じで表示されるはず。

# 3.flutter doctorしてみる
Flutterは「flutter doctor」というコマンドで、環境設定の状況をチェックできる。今の段階でかけてみよう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/4231193f-f20b-107c-6d43-a700a0aace43.png)

ルート（[√]）になっている項目は設定OK,[!]になっている項目は足りないよ、ってことです。
あれ、Android Studioインストール済みなんだけど…
どうやらAndroid4.1との相性の問題らしい。どうせ今回はVSCodeで環境作るつもりなので、気にしないことにする。

あと、本当はここで「Android toolchain」も[!]になっているはずなんだけど、一回インストールしちゃってるから、OKになっている。ごめんね、初めてじゃないの。
android toolchainが[!]だったら、プロンプトで「flutter --andloid-licenses」というコマンドを入れて、何回か「y」を入力すればOK！
なんだけど、微妙にはまったので、はまったところを書いておきます。

・「JAVA_HOMEが無効」みたいなエラーメッセージが出る
ちゃんと設定されているように見えるのに、こんなメッセージが出た。
Android Studioの中にあるJDKを環境変数のJAVA_HOMEに設定したら、エラーが出なくなった。

・NoClassDefFoundErrorが出た
Android SDK コマンドラインツールがインストールされていないかららしい。
Android Studioでインストールできるので、インストールしてください。
下記に記事を参考にしました。ありがとうございます！
[【Flutter】flutter doctor --android-licenses で "Exception in thread "main" java.lang.NoClassDefFoundError: " が出てしまったとき](https://qiita.com/sprout2000/items/ebe0daf63192bdc6a022)

多分こんなでいけるはず。

# 4.VSCodeにFlutterをインストールする
じゃあ、今後はVSCodeにFlutterプラグインをインストールして、VSCodeでFlutterを使えるようにする。
左メニューのextensionsを開いて、検索窓に「flutter」と入力して検索してみよう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/22caed96-dbef-4ed1-dcec-5f1b75934c91.png)

こんな感じでflutter関連のプラグインが表示されるので、ここは「Flutter」をインストールしよう。青い「install」ボタンをぽちっとな。
そうすると、flutterどころかDartまでインストールされるよ。
他に便利なプラグインもあるけど、これはお好みでトッピングしてね。

# 5.サンプルを動かしてみる
なんかとりあえず全部入ったっぽいので、サンプルを動かしてみる。

## 5.1.プロジェクトを作成する
VSCodeを立ち上げF1を押すと、検索窓が表示されるので「flutter」と入力する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/c50a8ba2-9096-1b0f-3072-a791872e4ac2.png)

Flutterのプロジェクトがいくつか表示されるので、「Flutter:New Application Project」を選択する。
プロジェクトを作成するフォルダを指定するダイアログが表示されるので、適当なフォルダを指定する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/74ad8f92-917e-c1ee-eef7-1c994f8bb9be.png)

そうすると、新しいプロジェクトの名目を入力するよう言われるので、好きな名前を入力する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/7e6a5c65-8b14-20ee-364e-50a54233859e.png)

そうすると、何やら勝手に動き出し…

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/a7d825ec-3272-b861-d520-6e9836d34f5e.png)

勝手に何かが作られている！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/7d08a990-27a6-db46-e232-8b39e8d66aac.png)

# 5.2.動かしてみる

このままterminalを立ち上げ、「flutter run」と入力すると、サンプルが動き出すよ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/3a350c4d-3202-548f-e7be-7f72d323681d.png)

ブラウザはchrome使うの？edge使うの？って聞かれるので、1を入力する。と、chromeで動かすね！みたいなメッセージが出る。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/542474f0-252f-f0ff-7c9a-cf744138704b.png)

しばらく待つと、サンプルプログラムがchromeで開く。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/e9445817-101c-11dc-6955-a97e4feab56f.png)

右下の＋をクリックすると中央の数字がカウントアップされるよ。

…いやいや、ブラウザもいいけどさ。スマホアプリ作るんじゃなかったっけ？
エミュレータは？
VSCodeの右下にdeviceを表示しているとことがあるので、そこをクリックすると、デバイスを入力できる窓を表示する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/605de001-a982-fe78-f2d7-d4c6742d8d7d.png)

たくさんやっちゃったから汚れてるけど、初めてだったら「Create Android Emurator」をクリックすると、Androidっぽい画面が表示されるよ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/52b8260c-ce79-ae47-f8c4-d7802509e46b.png)

エミュレータを立ち上げた状態で「flutter run」を実行すると、エミュレータででも画面が表示されるよ。
この時、VSCodeがタイムオーバーとか言っても、我慢して待ってると画面開くと思うよ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/137858/94a87674-45d6-c8aa-002b-537f6d3be436.png)

あとは、ネットでよくあるようにAndroid Studioでエミュレータ作って、それをデバイスで指定してエミュレータを立ち上げた後flutter runすれば、立ち上げたエミュレータで動くよ。

思ったより簡単に動いたね。
そのうちFlutterで開発するよ！多分、いつか、きっと…
それじゃあ、またいつか。チュース！！