必要に迫られたのでFlutterを学びます①～環境構築編～

プログラミングしない系プログラマがスマホアプリの開発のためにFlutterを勉強する話
勉強の時系列順でQiita記事を分割してます

[環境構築編](https://qiita.com/Takahiro-Hirai/items/4fee6ad3e807254cae3c)　⇐　今ここ
[Hello World編](https://qiita.com/Takahiro-Hirai/items/67f501ee8ed51982f5dc)
[外部パッケージ利用編](https://qiita.com/Takahiro-Hirai/items/9c5ede0d83951cd6c1b8)
[StatefulWidget利用編](https://qiita.com/Takahiro-Hirai/items/f9b0a4d4a9011eab92dc)


どうでもいいけど最近のBGMはVtuberのニュイ・ソシエール氏のウイニングポスト実況にしてます。


## 第一章 環境構築
まずは開発環境を準備します。
今回はWindows版です(ChromeOSでしようと思ったら、ハードが古くてダメだった)。
個人的にエディタを統一したい主義なので、VSCodeで開発できるよう準備します。

下記を参考にしました。
[WindowsでFlutterの環境をつくろう](https://qiita.com/kuroyan/items/15b7851cdf9ba88c63ed)
2018年の記事でしたが、基本的にプロセスは変わりませんでした。
先達に感謝です。

また下記も参考にしました。
[Flutterの開発環境(Windows + Android Studio)を構築する](https://qiita.com/rubytomato@github/items/02262197e970f82ecefd)
AndroidStudioの設定部分で大変参考になりました。

### Flutterのインストール
まずはFlutterの[インストールページ](https://flutter.dev/)にアクセスします。
![2020-05-23_23h28_45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/1e6c5c8b-b102-c8b0-d239-a2c0aef0d36f.png "洒落たトップページ")

少しページを下に動かすと、「Get Started」とあるので、そいつをクリックします。![2020-05-23_23h31_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/1e7ff45c-9f37-cca8-8b58-f97fc0ecb871.png)

こんな画面に遷移するので、自身の環境に合わせて選択をしてください。
なおここには表示がないですが、別ページにChromeOS版のFlutterも公開されてますので、
ChromeOSを利用する方は[そちらのページ](https://flutter.dev/docs/get-started/install/chromeos)に行ってください。
![2020-05-23_23h31_40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/176c2107-497c-0ad8-5f2c-63a130ef38f8.png)

ここからはWindows版の話になりますが
get the Flutter SDKの章に最新版のzipファイルがありますので、それをインストールします。
![2020-05-23_23h34_59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/5ac0aca8-0986-d018-264c-112197b84da1.png)

ダウンロードしたZipファイルは任意の場所に解凍しましょう。
とくにこだわりがない人はCドライブ直下などで良さそうな気もします。
僕のCドライブはSteamのデータでいっぱいなので、Dドライブに入れました。。。
![2020-05-23_23h38_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/84e5a5b5-6021-476e-6129-e2112f3caeb9.png)

他の言語同様PATHを通す必要があるので、通しました。
![2020-05-23_23h43_43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/ce58767c-d95b-4b45-dd45-b3b1374a5418.png)

PATHが通っているかどうか確認します。

```コマンドプロンプト
flutter --version
Flutter 1.17.1 • channel stable • https://github.com/flutter/flutter.git
Framework • revision f7a6a7906b (11 days ago) • 2020-05-12 18:39:00 -0700
Engine • revision 6bc433c6b6
Tools • Dart 2.8.2
```
いい感じですね。

さてこのままコマンドプロンプトで不足しているツールを探します。

```コマンドプロンプト
flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.17.1, on Microsoft Windows [Version 10.0.18363.836], locale ja-JP)
[X] Android toolchain - develop for Android devices
    X Unable to locate Android SDK.
      Install Android Studio from: https://developer.android.com/studio/index.html
      On first launch it will assist you in installing the Android SDK components.
      (or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions).
      If the Android SDK has been installed to a custom location, set ANDROID_SDK_ROOT to that location.
      You may also want to add it to your PATH environment variable.

[!] Android Studio (not installed)
[!] VS Code (version 1.45.1)
    X Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[!] Connected device
    ! No devices available

! Doctor found issues in 4 categories.
```
Android toolChain, Android Studio, VSCodeのFlutter Extentionなどがないんですね。
それでは続いて上記のインストールをしていきましょう。

### Android Studioのインストール
どうも```flutter doctor```の結果を読む限り、AndroidStudioを入れれば、ほとんど解決する気がします。
ということで指定された[URL](https://developer.android.com/studio/index.html)からAndroidStudioをインストールします。
![2020-05-23_23h53_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/5c3af44d-09e5-c2fc-086a-252edd2b36a9.png)

exeファイルでインストールできるので楽ですね。

基本はNext連打で問題なさそう
![2020-05-23_23h55_00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/d0ccda7c-9b9d-55e2-74bd-87641fde4856.png)

ダウンロードしたらとりあえず起動だけさせておきます。
エミュレータの設定など必要になりますので、とりあえずインストールできるものはインストールしときます。
![2020-05-24_00h00_56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/1ffc9b19-0f33-0ae4-63c2-68f6519a3f3e.png)

で確認があるので、Finishを押してインストールします。
ちなみに私の環境だと結構時間がかかりました。5分くらい？
![2020-05-24_00h01_46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/0562c9a2-1fe0-36d7-8527-d068b01c0590.png)

終わるとこんな感じ
![2020-05-24_00h06_32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/a0cd09f0-042b-6dab-1191-61f2c2d99e88.png)
Intel HAXMを別途インストールしないといけないとか聞いてましたが、ログを見る限り不要そうですね

メイン画面のConfigureからSDKManagerを確認してみると、各Androidのバージョンが確認できます。
今は最新の10.0ですね。
![2020-05-24_00h07_50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/cce689cc-3baf-51f2-2b0e-4e8d6d1393f2.png)

同様にConfigureからPluginを選択します
![2020-05-24_00h12_39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/501779a5-e145-d1f6-3c10-168703f818d6.png)
Eclipse同様marketplaceが起動します。
ここでFlutter系のプラグインをインストールします。
※途中でDartのインストールの有無を聞かれますので、「Yes」を選択してください。
![2020-05-24_00h13_17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/466e584f-10ca-42c2-36d5-bb2908f45609.png)

ここで「Restart」することでFlutterのExtentionが反映されることになります。

#### 注意
Restartすると以下のような画面が表示される。
![2020-05-24_00h21_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/619ccbfd-4c10-acc9-5328-3f90e326b0e0.png)
先ほどインストールしたFlutterが反映されているのも確認できます。
ただ先ほどまであった「Configure」が消えてますね。。。

ということで1時間ほど試行錯誤してましたが、、、
![2020-05-24_00h22_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/b07fa700-edb6-77b5-7872-8aa4fb7a114b.png)

表示領域を広げたら表示されるようになりました。
いやー、苛々した

さてもう少しAndroidStudioの準備をします。
エミュレータの設定をしたいので、ConfigureからAVDManagerを選択します。
![2020-05-24_00h23_39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/407d7170-ac18-62f6-0a19-5db01099d79a.png)
デフォではNexusが準備されているようです。
試しに再生ボタンを押してエミュレータを起動させてみます。
※ローンチに10秒ほどかかります
![2020-05-24_00h25_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/5994582d-c22e-cdd5-d558-3f1a811b6e05.png)
![2020-05-24_00h25_33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/97ae91d4-b48f-7940-1114-ae8b488851c4.png)
予想以上にきれいに起動しますね。
技術の進歩を感じます。

さてこのあたりのPATHも登録しておきます。
ここは皆さんのインストールした先を設定してください。
``ANDORID_SDK_ROOT=D:\AndroidSDK``

さてこのタイミングで``flutter doctor``を試します。

```
>flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.17.1, on Microsoft Windows [Version 10.0.18363.836], locale ja-JP)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    X Android license status unknown.
      Try re-installing or updating your Android SDK Manager.
      See https://developer.android.com/studio/#downloads or visit visit
      https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions.
[√] Android Studio (version 3.6)
[!] VS Code (version 1.45.1)
    X Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[!] Connected device
    ! No devices available

! Doctor found issues in 3 categories.
```
なるほど。ライセンスの登録が必要なわけで。。。
下記コマンドでライセンスの登録をしていきます。

JDKのバージョンが9以上だとエラーが出ると先達の記事にありましたが、
※2020年5月現在でもエラーが出ました(Java10.0.2)
　なので今回はJava1.8.0_171に切り替えて実施してます。

```
>flutter doctor --android-licenses
<中略>
All SDK package licenses accepted
```

ということで改めて確認してみます。

```
>flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, v1.17.1, on Microsoft Windows [Version 10.0.18363.836], locale ja-JP)
[√] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
[√] Android Studio (version 3.6)
[!] VS Code (version 1.45.1)
    X Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[!] Connected device
    ! No devices available

! Doctor found issues in 2 categories.
```
想定通りAndroidStudio関係の準備は整いました。
残るはVSCodeの準備ですね

### VSCodeの準備
ここではVSCodeのインストールの解説は行いません。
記憶では普通にインストールすれば、普通にエディタとして開けた気がします。

さてExtentionからFlutterで検索して導入していきます。
![2020-05-24_00h44_34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/6ecbe5bb-b7c6-f899-518f-4ce064830a8b.png)

インストールが終わったらCSCode上でflutter doctorをしてみます。
![2020-05-24_00h51_39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318745/e23337f9-e47d-feff-381a-4a7568d82b45.png)

いい感じですね。
ここまでで環境構築が完成です。
ニュイポみながら、Qiita書きながらだいたい1時間くらいで終わりました。
比較的手軽に導入できる部類だと思います。