化石エンジニアの野良リカレント教育・Flutter～アプリ作成初心者の環境構築と5つのエラー～

# 前提
技術力がほぼすべて「ゼロより低い、マイナス」の化石エンジニア・アンモナイトがエンジニアとしての生き残りを目指して 、GWのイベントとしてスマホアプリを作る。
たぶん、スマホアプリに挑戦する記事の中で、もっともレベルが低いと思う。
そもそも、なんで挑戦するのかとゆーと、下記のよーなリカレント教育（大人の再教育）プランを考えているからです。

アンモナイトが考えた化石エンジニアの進化論：

ふりだし：「アンモナイト＝太古の海中でたゆたってる化石エンジニア・Lv3」
　→アジャイル開始：Done!
　　→社外コミュニティ参加：Done!
　　　→スクラム経験：Done!
　　　　→CSM取得：Done!
　　　　　→常識（他社研修視聴）：Done!
　　　　　　→知識の深堀り＝Kaggle：in progress
　　　　　　　→知識の深堀り＝アプリ作成：in progress
　　　　　　　　→あがり：陸上（肺呼吸）：人権を得る

# 1：経緯

もともとKaggleでContributor（メダル2つが必要）を目指していたのだが、せっかくのGW、記憶に残ることをしたいじゃない？（金がかかるレジャーは除く）ということで、「GWでアプリ作成どこまでいけるかな？」に挑戦することにした。人生とはその場のノリの連続である。
てなわけで、昨晩から唐突にFlutterの環境構築を始めた。
※ アンモナイトは化石エンジニアなので、アプリを作ったことはありません。Flutterの環境構築経験もありません。

なぜFlutterか？　というと、「AndroidもiOSも同時に作れて便利そうだから」。
そもそもこの前提すら、化石がネットをググった知識なので、間違っている可能性もありえる。しかし、「間違っているのでは……」と心配して動かないと、人生なにもかもが動かないので、とりあえず軽挙妄動して、UdemyでFlutter関連の動画を買いあさる。
ごめんなさい、「金の力は借りねー」とか、かつて言ってましたが、これは金の力が必要だった。大人が言うことなんてこんなもん。紙風船レベル。よい子のみんなはFlutterの環境構築は仕事として会社の先輩に教わるか、Udemyで動画買うか、知見のある友達に教わるかしたほうが良いと思います。
……なぜなら、Flutter環境づくりでエラーが出まくるから。あと必要なものが多いから。


# 2：Flutter環境構築

1：Udemyの講師様の言うとおり、Flutterをダウンロードする。ここはなんなくクリア。

2：ユーザーフォルダの直下に解凍した「Flutter」フォルダを置く。ここもクリア。

3：続いて環境変数設定を行い、パスを通す。このあたりから雲行きが怪しくなる。「環境変数ってなんだろ？」という素朴な疑問を抱く。
※アンモナイトは●十年前のプログラマーだったため、環境変数を触ったことがなかった。もう風化している曖昧な記憶では、パス系はシステム起動時に最初に読みこむ別ファイル（テキスト）に切り出して管理してた、と思う。
　まぁ、いいか。きっとWindows内で管理してるパス＝変数に入れてるんだろ。で、環境起動時に読みこむんじゃない？
　講師様の教え通りパスを追加、設定を終える。いまんところ、余裕。（←作業の意味は分かってないけれども）

4：コマンドプロンプトに「flutter doctor」を打ち込む。へー、時代はずいぶん変わったが、いまだにDOS窓必要なんだな。「doctor」って何？

# 3：エラーその1：Android license

5：パスが通り、flutter doctorに対する処理結果が表示される。あれ？　なんか赤文字で見るからにダメそうなやつ5個くらいがあるよ？　どうすんの？
とりあえず、最初のエラー、Android licenseエラーに対応する。もっともJDKがすでに入ってたため、「flutter doctor--Android- licenses」を実行。何も起きない。どういうこと？
ググりまくる。どうやらcmdline-toolsの名前？　がおかしいらしい？

# 4：エラーその2：SDKとcmdline-tools

6：試行錯誤するが、「flutter doctor」は無情にも次のエラメを出す。

```
Android sdkmanager not found. Update to the latest Android SDK and ensure that the cmdline-tools are installed to
resolve this.
```

理解：へー、SDKが見つからないのかぁ。で、cmdline-tools を入れないとダメなのかぁ、入れたつもりだったんだけど（←他人事）
疑問：どうやって入れんの？
対応：Android Studio　のプラグインから落とせるよ！　というネットのお導きにより、Android Studio のプラグイン画面を探す。ツールバーとかに見つからねえ！
対応2：Top画面の「more」とかいうメニューを開いてみる。プラグイン？ツール管理？があった！
　　 ：ネットのお導きによれば、ここでSDK toolsにチェック入れてあげればいいらしい（←ドラ●エの町民並みの断片的な情報）
　　 ：とりあえず下のバーの「Hideなんちゃら」のチェックを外して使用するプラグインにチェック入れて更新？
　　 ：DOS窓でもう一度 flutter doctor と打ち込む。うん、これでエラメはなくなって……ない！
対応3：さきほどはSDK関連のチェックを入れたが、次に cmdline-toolsのチェックを入れてインストールしてみた。頼むよ、docter……。DOS窓で再度、「flutter doctor」。これでダメなら万策尽きる（←尽きるのが早い）

おお！　一気に赤文字が2個？ 解消した！

# 5：エラーその3：Flutter・Dartプラグイン

あれ？　でもまだなんか赤文字が残ってる。
どうやらFlutter関連のプラグインも入れなければならないらしい。
講師様の指示に従って、プラグイン画面よりFlutter関連のプラグインをインストールする。
途中、Dartのプラグインも入れなよ、とメッセージ窓がでるので、了承し、進む。
Flutterプラグインを更新し、Android StudioのIDEをリスタートする。

# 6：エラーその4：C++

```
[X] Visual Studio - develop for Windows
    X Visual Studio not installed; this is necessary for Windows development.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components
```

Flutterを更新しIDEリスタートしても上のエラーが出続ける。そりゃそうだ、C++入れた記憶がないもんね。
入れるしかないか……（C++やったことないけど）

しっかし、時代は変わっても環境構築に手間取るのは変わらない。
Udemy+ネット見てないと絶対できない。
つか、アプリ作った後もメンテが必要よな。
先は長い。先が長いなら、ちゃっちゃっと環境構築→スマホアプリ作成しないとお迎えが来てしまう。

VSを入れ、何回目かの「flutter doctor」。

# 7：エラーその5：C++・別のエラー

```
[!] Visual Studio - develop for Windows (Visual Studio Community 2022 17.1.6)
    X Visual Studio is missing necessary components. Please re-run the Visual Studio installer for the "Desktop
      development with C++" workload, and include these components:
        MSVC v142 - VS 2019 C++ x64/x86 build tools
         - If there are multiple build tool versions available, install the latest
        C++ CMake tools for Windows
        Windows 10 SDK
```

なんでやねん？！　デスクトップも入れなアカンのか！　インストールやり直しか……。現在05/05（05/06？）24：09、ツラい、ツラすぎる。

モリモリモリのC++（デスクトップ含む）インストール。
「flutter doctor」ですべて通る。うおおお！（歓喜）
※どうやら全部通す必要はないみたいだが、Flutterの全貌を知らないので、今後のため、とりあえず全部のエラーをつぶした。

# 8：最初のプロジェクト作成

講師様の言葉通り、最初のFlutterプロジェクトを作成する。
えっ、ターミナルを見てください？　ターミナルはどこやねん…。おう、下にもツールバーがあった！

モバイル設定してテストコードを実行してみる。なんかUdemyと挙動が違うけれども、最終的に同じ画面が表示されたので、これでよいのか？
02：25。もう今日は寝ます…。

本日は以上で終わりです。長文にお付き合いいただき、ありがとうございました！