おじさんがFlutterで0から開発していく　#1 Windows環境構築（デモアプリを起動まで）

# 環境構築
## はじめに
Windowsのみしか持っていないため、Windowsでの環境構築になります。

### PC構成
・OS　Windows11 Home
・CPU　AMD　Ryzen7 7800X3D
・メモリ　32GB
・SSD　2TB

<font color="gray">pcを自作したときにプログラミングにRyzen(しかもゲーム用の)CPUでいいかな？と思いながら自作しましたが、半年使用して困ったことはありません。</font>

## では環境構築
ドキュメントは以下を参考にし進めます。

https://docs.flutter.dev/get-started/install/windows/desktop?tab=download

ここにこう書かれていました。

ここに書かれた手順通りにやれよとやらなきゃエラーが起こってもしらないよと。
<font color="gray">だとしたらわかりづれーよ。上に手順もってこいよ。</font>

Gitのインストールが書かれていますが、おそらく開発では使いません。
後からでも問題ないかとおもうので早速読み飛ばしました。

### IDEのインストール
FlutterチームではVSCodeでの開発をおすすめしているようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/bf398916-f5ca-a79f-2a89-030c16f15d58.png)

がAndroidStadioがすでにPCに入っているのでそちらアップデートして先に進みます。
[※無知で後でちょっと焦ります。](#flutter-doctorを実行する)


### Flutter SDKのインストール
VSCodeとその他の方法が書かれています。
今回AndroidStadioを使用したいので以下を選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/4e83c483-e1f2-4c4d-4e1d-b005b6f11036.png)

#### ダウンロードしたzipを任意の場所に展開 
powershellを使い以下のコマンドを実行

```
Expand-Archive -Path "【ダウンロードされた場所のファイルパス】\flutter_windows_3.22.2-stable.zip" -DestinationPath "【展開先のファイルパス】\fluttersrc"
```
<font color="gray">公式では`dev`になってましたが,`fluttersrc`にしました。</font>

### Pathを更新する
後続の処理でPowerShellを使いFlutterコマンドを実行するために、FlutterをPATH環境変数に追加します。
<details><summary>環境変数の追加方法</summary>

1. **システム環境変数の設定を開く**:
   - Windowsの検索バーに「環境変数」と入力し、「システム環境変数の編集」を選択します。

1. **環境変数の編集**:
   - 「システムプロパティ」ウィンドウが開いたら、右下の「環境変数」ボタンをクリックします。

1. **PATH変数の編集**:
   - 「システム環境変数」セクションの中から「Path」を探し、選択して「編集」ボタンをクリックします。

1. **新しいパスを追加**:
   - 「新規」ボタンをクリックし、Flutter SDKのパス（例：`【展開先のファイルパス】\fluttersrc\bin`）を入力します。
   - 入力したら「OK」をクリックして、すべてのウィンドウを閉じます。

1. **PowerShellを再起動**:
   - 環境変数を更新するために、現在開いているPowerShellウィンドウを閉じて再起動します。

</details>

### Flutter doctorを実行する
Flutterのコンポーネントが入っている正常にインストールされているか検証します。

PowerShellで以下を実行

```
PS C:\> flutter doctor
```

結果がこちら
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/1cf05631-cb03-21a2-6b52-83885d0ab8c8.png)

1. Android toolchain - develop for Android devices (Android SDK version 34.0.0):
→　Android開発では必須の設定です。AndoroidStadioを使用しますので後ほど
1. Visual Studio
→　使いませんし、入れていないので無視
1. Android Studio (version 2022.3)
→　<font color="red"> **？？？？なんで** </font>

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/f7eee5aa-1f13-8469-ac9a-7538ef793bb4.png)

ここがよくなかったです

原因は古いバージョンのAndroidStadioを削除せずに、アップデートしたことが原因でした。
※古いバージョンと新しいバージョンの共存をしたままでやりたい、後述の問題が解決できる場合は無視していいかと思いますが、私はショートカットからAndroidStadioが起動できなくったため、一度AndroidStadioをアンインストールし、入れなおしました。

## Android toolchain
公式ドキュメント

https://docs.flutter.dev/platform-integration/android/install-android/install-android-from-windows

これらのツールがはいっていなければいけないようです。
Andoroid Stadioの初期インストール時にはAndroid SDK Command-line Toolsが有効になっていないので先ほど「！」がついています。

- Android SDK Platform, API 34.0.5
- Android SDK Command-line Tools
- Android SDK Build-Tools
- Android SDK Platform-Tools
- Android Emulator

1. プロジェクト選択画面から「その他のアクション」-「SDK Manager」を選択 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/078dca71-1616-a5be-170a-daabd5d7eb72.png)
1. 「言語＆フレームワーク」-「Android SDK」-「SDK Tools」タブを開き、「Android SDK Command-line tool」を選択し、適用
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/5d0e82c5-5727-84a4-454c-13c346edfb4e.png)
2. flutter doctor --android-licensesをPowerShellで実行
```
flutter doctor --android-licenses
```
何かの利用規約に同意させられますので気になる人は内容を読んで「y」を入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/2d879551-fc2c-fa0b-3590-8e0270c3f583.png)
3. 完了
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/7105892b-902f-02f5-23b9-79a4f5d1d35f.png)


## AndoroidStadioの設定
### Flutterプラグインを入れる
1. プロジェクト選択画面　から「プラグイン」-「Flutter」を選択

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/194630c7-e78b-a785-8559-26ec7106448a.png)

## デモアプリを起動

公式

https://docs.flutter.dev/get-started/test-drive?tab=androidstudio

1. Flutterプロジェクトを作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/9dd3b916-4b69-5abc-1938-9c4e46b1b52c.png)
1. Flutter SDKを設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/d4474e03-2440-8a8c-fd06-65c355a8fd09.png)　（例：`【展開先のファイルパス】\fluttersrc\flutter）
1. プロジェクト名と対応プラットフォームを選択
　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/e594d7e0-03bf-8b64-6360-79b31038afbd.png)
1. 実行するデバイスを選択し、再生ボタンを押す
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/51523a98-3285-c6b8-21bd-7e15082cada7.png)

1. 起動
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/474cfb47-08c6-46b3-ac71-d356b85bcef4.png)

画面全体

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3298617/e6b98e1f-2b8b-a82b-9b10-c4f5d793dcfd.png)


## おわりに
すでにAndoroid Stadioをインストールしていたこともあり、色々と手順がぬけているかと思いますが、他の方の記事を参考にしてください。
これでようやくスタートラインに立つ前のベットから起き上がった状態になりました。
まだ概要しか知らないので、ディレクトリ構造がめちゃくちゃ謎です。

以降は最初のところFlutterの構造をなんとなく知る→Todoアプリを作るで進めていこうかと思います。