MacにFlutterをインストールする

macOSにFlutterをインストールする。

以下は公式の手順書である。

https://docs.flutter.dev/get-started/install/macos#android-setup

これだけだと分からない部分もあったので記事にする。

 Apple Silicon Mac にインストールする場合は、Rosetta 翻訳環境が必要になる。これを手動でインストールするには、次のコマンドを実行する。
```bash
sudo softwareupdate --install-rosetta --agree-to-license
```
RosettaはAppleが提供するソフトウェアの一部で、Intelの命令セットアーキテクチャ（ISA）で作成されたアプリケーションをAppleのARMベースのプロセッサ（Apple Silicon）で動作させるための翻訳層である。

つまり、Apple SiliconのCPUのネイティブな言語とIntelののCPUのネイティブな言語が違う。Flutterは、IntelのCPUと同じ言語のため、IntelのCPUと同じ言語が混じっていたら翻訳する機能がRosettaなのだと思う。

# Flutter SDKのダウンロード
Flutterの公式ウェブサイトから最新版のFlutter SDKをダウンロードする。

https://docs.flutter.dev/get-started/install/macos#android-setup

ターミナルを開き、適当な場所でダウンロードしたzipファイルを解凍する。以下のコマンドは、ホームディレクトリにflutterディレクトリを作成している。

```bash
cd ~            
unzip ~/Downloads/flutter_macos_arm64_3.10.2-stable.zip
```

# Flutterをパスに永続的に追加する
flutterコマンドをシステム全体で利用できるようにするため、FlutterのbinディレクトリをシステムのPATHに追加する。zshを使っている場合は、ユーザの.zshrcに必要な設定を追加する。

```bash
echo 'export PATH="$PATH:`pwd`/flutter/bin"' >> ~/.zshrc
```
その後、ターミナルを閉じて再度開く。これでFlutterコマンドが使えるようになる。

ディレクトリが PATH に存在することを確認する。
```bash
echo $PATH
```
コマンドが使用できることを確認する。
```bash
which flutter
```

# Flutter doctorの実行
Flutterのインストールを確認するために、flutter doctorコマンドを実行する。このコマンドはFlutterのインストールを確認し、依存関係が適切に設定されているかどうかを報告する。：
```bash
flutter doctor
```
「! Doctor found issues in 3 categories.」
足りないものを設定していく。

## 1. Android Studioをインストール
「[!] Android Studio (not installed)」

下のURLからインストールする。

https://developer.android.com/studio/index.html

インストールできたらアプリを開く。
”"Import Android Studio settings”が出てくる。
これは、、新しくAndroid Studioをインストールした際や異なるコンピューターに設定を移行する際に、以前のAndroid Studioの設定をインポートするための機能である。
初めて使う人は、"Do not import settings"を選択してOKを押す。

Android Studio の「More Actions」から「SDK Manager」を選択。
Android SDK のSetting画面となる。
Android 13.0 あるいは何かが既にインストールされている。
上部には、Android SDK Locationのホームが載っている。
```Python
/Users/username/Library/Android/sdk
```

### 2. Androidコマンドラインツールが欠けている。
「cmdline-tools component is missing」

1. Android Studioを開く。

2. Android Studio の「More Actions」から「SDK Manager」を選択。
Android SDK のSetting画面となる。

3. SDK Toolsタブを開く（上から４行目の左寄りの中央）。

4. インストールする。"Android SDK Command-line Tools (latest)"にチェックを入れ、"OK"または"Apply"をクリックする。

5. インストールが完了したら、"Finish"ボタンをクリックする。

これにより、Android SDKのコマンドラインツールがインストールされ、sdkmanagerが使用可能になる。コマンドラインツールのパスは一般的にAndroid/Sdk/cmdline-tools/latest/bin/以下になる。

### Android SDKライセンスの承認がされていない
エラー文
「! Some Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses」

下のコマンドを実行すると、各Android SDKコンポーネントのライセンスに対するプロンプトが表示される。全てのライセンスに対して y（yes）を入力して受け入れる。

```Python
flutter doctor --android-licenses
```
## 3-1. Xcodeのインストール
「Xcode installation is incomplete; a full installation is necessary for iOS　and macOS development.」

app storeから、Xcodeをダウンロードする。
Apple IDが必要となる。

Appleのベータ版ソフトウェアページから試したら、「No Operating Systems available for download.」と表示が出てダウンロードできなかった。

Xcodeをインストールできたら開いて、Xcode ライセンス契約に署名する。

ターミナルから次のコマンドを実行して、新しくインストールされたバージョンの Xcode を使用するように Xcode コマンドラインツールを構成する。
```bash
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -runFirstLaunch
```

## 3-2. CocoaPodsのインストール 
「CocoaPods not installed.」
CocoaPodsは、ドキュメント通りには実行できなかったので、chatGPTに聞きながら進めた。上手くいった方法を載せる。

### Homebrewがインストールされているかどうかを確認する。
```bash
brew --version
```
インストールされていない場合は。"command not found: brew"。この場合、以下のコマンドでインストールする。
```bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
~/.zshrc ファイルを編集してパスを追加する。
```bash
echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc
```
シェルを再起動するか、下のコマンドを実行して変更を保存する。
```bash
source ~/.zshrc
```

/opt/homebrew/binがディレクトリがシェルのパスに含まれていることを確認する。
```bash
echo $PATH
```
### rubyのインストール
rbenvというバージョン管理ツールを使う方法でうインストールした。

まず、Homebrewを使ってrbenvとruby-buildをインストールする。
```bash
brew install rbenv ruby-build
```
rbenvを初期化する。
```bash
rbenv init
```
表示される指示に従ってコマンドを入力する。
```bash
echo "$(rbenv init - zsh)" >> ~/.zshrc
```
シェルを再起動するか、下のコマンドを実行して変更を保存する。
```bash
source ~/.zshrc
```
これでrbenvのセットアップが完了した。
インストール可能なRubyのバージョン一覧を確認する。
```bash
rbenv install --list
```
インストールしたいRubyのバージョンを指定してインストールする。私は、3.2.2にした。
```bash
rbenv install 3.2.2 
```
Rubyのインストールが完了したら、使いたいバージョンを設定する。
私は、Rubyのバージョン3.2.2をデフォルトに設定した。
```bash
rbenv global 3.2.2
```
最後に、設定が正しく行われたか確認する。
インストールしたRubyのバージョンが表示される。
```bash
ruby -v
```

これでRubyのインストールは完了した。次にCocoaPodsをインストールする。
```bash
gem install cocoapods
```

## 5.最後の確認

```bash
futter doctor
```
「No issues found!」
終わり。