Macにanyenvを利用したNode.js開発環境とAndroid開発環境を構築する(react-nativeの開発環境準備)

## anyenvを利用して環境を構築する理由
 - プロジェクトによって、Node.jsのバージョンが異なるため
 - nodebrewよりもanyenvでXXenv系を全て管理してみたかったから


## 構築の流れ
1. [Homebrewのインストール](#homebrewのインストール)
2. [anyenvのインストール](#anyenvのインストール)
3. [nodenvのインストール](#nodenvのインストール)
4. [Android Studioのインストール](#Androidもビルドしたい場合)

自身の備忘録的な立ち位置が強いので一部端折っているところもありますが、内容に誤り等ございましたら、コメントにてご指摘頂けますと幸いです。

### 今回利用するツール(?)の紹介
| ツール          | 概要 | 
|:---------------|:------------|
| Homebrew       | macOSオペレーティングシステム上のパッケージ管理システムのひとつ            |
| anyenv         | Python,Golang,Node.js等の環境を複数管理できるシステム(XXenvを管理できる) |
| nodenv         | Node.jsの環境を切り替えることができるツール                            |
| Android Studio | Androidアプリ開発に必要なIDE(統合開発環境)                            |

## Homebrewのインストール
必ず入れると言っても禍根ではないやつです。

### インストール
※すでに入っている場合はスルーします。
[Homebrew公式ホームページ](https://brew.sh/index_ja.html)に記載されているインストールコマンドをターミナルにコピペで打ち込み、実行しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/1beed4c6-066f-cd94-6f43-af03d5fd7f19.png)


```shell:homebrewインストールコマンド
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
```
※上記は、2020年8月末次点のスクリプトです。


スクリプトをコピー後、Enterを押すころでパスワードを求められるので、Macのログインパスワードを入力してください。
※入力したパスワードは見えませんが、ちゃんと入力されていますので安心してください。
<details><summary>実行結果を全て表示する　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/050390ad-cf4a-47dd-7bb8-4f535ff8cc47.png)</summary><div>

```shell:実行結果
Password:
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
/usr/local/share/zsh/site-functions/_brew
/usr/local/etc/bash_completion.d/brew
/usr/local/Homebrew
==> The following new directories will be created:
/usr/local/bin
/usr/local/etc
/usr/local/include
/usr/local/lib
/usr/local/sbin
/usr/local/share
/usr/local/var
/usr/local/opt
/usr/local/share/zsh
/usr/local/share/zsh/site-functions
/usr/local/var/homebrew
/usr/local/var/homebrew/linked
/usr/local/Cellar
/usr/local/Caskroom
/usr/local/Homebrew
/usr/local/Frameworks
==> The Xcode Command Line Tools will be installed.

Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/mkdir -p /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Homebrew /usr/local/Frameworks
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Homebrew /usr/local/Frameworks
==> /usr/bin/sudo /usr/sbin/chown maintain /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Homebrew /usr/local/Frameworks
==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/bin /usr/local/etc /usr/local/include /usr/local/lib /usr/local/sbin /usr/local/share /usr/local/var /usr/local/opt /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew /usr/local/var/homebrew/linked /usr/local/Cellar /usr/local/Caskroom /usr/local/Homebrew /usr/local/Frameworks
==> /usr/bin/sudo /bin/mkdir -p /Users/maintain/Library/Caches/Homebrew
==> /usr/bin/sudo /bin/chmod g+rwx /Users/maintain/Library/Caches/Homebrew
==> /usr/bin/sudo /usr/sbin/chown maintain /Users/maintain/Library/Caches/Homebrew
==> Searching online for the Command Line Tools
==> /usr/bin/sudo /usr/bin/touch /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
==> Installing Command Line Tools for Xcode-11.5
==> /usr/bin/sudo /usr/sbin/softwareupdate -i Command\ Line\ Tools\ for\ Xcode-11.5
Software Update Tool


Downloading Command Line Tools for Xcode
Downloaded Command Line Tools for Xcode
Installing Command Line Tools for Xcode
Done with Command Line Tools for Xcode
Done.
==> /usr/bin/sudo /bin/rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
==> /usr/bin/sudo /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools
==> Downloading and installing Homebrew...
remote: Enumerating objects: 114, done.
remote: Counting objects: 100% (114/114), done.
remote: Compressing objects: 100% (89/89), done.
remote: Total 149604 (delta 47), reused 78 (delta 24), pack-reused 149490
Receiving objects: 100% (149604/149604), 37.35 MiB | 9.89 MiB/s, done.
Resolving deltas: 100% (110409/110409), done.
From https://github.com/Homebrew/brew
 * [new branch]      master     -> origin/master
 * [new tag]             0.1        -> 0.1
 * [new tag]             0.2        -> 0.2
 * [new tag]             0.3        -> 0.3
 * [new tag]             0.4        -> 0.4
 * [new tag]             0.5        -> 0.5
 * [new tag]             0.6        -> 0.6
 * [new tag]             0.7        -> 0.7
 * [new tag]             0.7.1      -> 0.7.1
 * [new tag]             0.8        -> 0.8
 * [new tag]             0.8.1      -> 0.8.1
 * [new tag]             0.9        -> 0.9
 * [new tag]             0.9.1      -> 0.9.1
 * [new tag]             0.9.2      -> 0.9.2
 * [new tag]             0.9.3      -> 0.9.3
 * [new tag]             0.9.4      -> 0.9.4
 * [new tag]             0.9.5      -> 0.9.5
 * [new tag]             0.9.8      -> 0.9.8
 * [new tag]             0.9.9      -> 0.9.9
 * [new tag]             1.0.0      -> 1.0.0
 * [new tag]             1.0.1      -> 1.0.1
 * [new tag]             1.0.2      -> 1.0.2
 * [new tag]             1.0.3      -> 1.0.3
 * [new tag]             1.0.4      -> 1.0.4
 * [new tag]             1.0.5      -> 1.0.5
 * [new tag]             1.0.6      -> 1.0.6
 * [new tag]             1.0.7      -> 1.0.7
 * [new tag]             1.0.8      -> 1.0.8
 * [new tag]             1.0.9      -> 1.0.9
 * [new tag]             1.1.0      -> 1.1.0
 * [new tag]             1.1.1      -> 1.1.1
 * [new tag]             1.1.10     -> 1.1.10
 * [new tag]             1.1.11     -> 1.1.11
 * [new tag]             1.1.12     -> 1.1.12
 * [new tag]             1.1.13     -> 1.1.13
 * [new tag]             1.1.2      -> 1.1.2
 * [new tag]             1.1.3      -> 1.1.3
 * [new tag]             1.1.4      -> 1.1.4
 * [new tag]             1.1.5      -> 1.1.5
 * [new tag]             1.1.6      -> 1.1.6
 * [new tag]             1.1.7      -> 1.1.7
 * [new tag]             1.1.8      -> 1.1.8
 * [new tag]             1.1.9      -> 1.1.9
 * [new tag]             1.2.0      -> 1.2.0
 * [new tag]             1.2.1      -> 1.2.1
 * [new tag]             1.2.2      -> 1.2.2
 * [new tag]             1.2.3      -> 1.2.3
 * [new tag]             1.2.4      -> 1.2.4
 * [new tag]             1.2.5      -> 1.2.5
 * [new tag]             1.2.6      -> 1.2.6
 * [new tag]             1.3.0      -> 1.3.0
 * [new tag]             1.3.1      -> 1.3.1
 * [new tag]             1.3.2      -> 1.3.2
 * [new tag]             1.3.3      -> 1.3.3
 * [new tag]             1.3.4      -> 1.3.4
 * [new tag]             1.3.5      -> 1.3.5
 * [new tag]             1.3.6      -> 1.3.6
 * [new tag]             1.3.7      -> 1.3.7
 * [new tag]             1.3.8      -> 1.3.8
 * [new tag]             1.3.9      -> 1.3.9
 * [new tag]             1.4.0      -> 1.4.0
 * [new tag]             1.4.1      -> 1.4.1
 * [new tag]             1.4.2      -> 1.4.2
 * [new tag]             1.4.3      -> 1.4.3
 * [new tag]             1.5.0      -> 1.5.0
 * [new tag]             1.5.1      -> 1.5.1
 * [new tag]             1.5.10     -> 1.5.10
 * [new tag]             1.5.11     -> 1.5.11
 * [new tag]             1.5.12     -> 1.5.12
 * [new tag]             1.5.13     -> 1.5.13
 * [new tag]             1.5.14     -> 1.5.14
 * [new tag]             1.5.2      -> 1.5.2
 * [new tag]             1.5.3      -> 1.5.3
 * [new tag]             1.5.4      -> 1.5.4
 * [new tag]             1.5.5      -> 1.5.5
 * [new tag]             1.5.6      -> 1.5.6
 * [new tag]             1.5.7      -> 1.5.7
 * [new tag]             1.5.8      -> 1.5.8
 * [new tag]             1.5.9      -> 1.5.9
 * [new tag]             1.6.0      -> 1.6.0
 * [new tag]             1.6.1      -> 1.6.1
 * [new tag]             1.6.10     -> 1.6.10
 * [new tag]             1.6.11     -> 1.6.11
 * [new tag]             1.6.12     -> 1.6.12
 * [new tag]             1.6.13     -> 1.6.13
 * [new tag]             1.6.14     -> 1.6.14
 * [new tag]             1.6.15     -> 1.6.15
 * [new tag]             1.6.16     -> 1.6.16
 * [new tag]             1.6.17     -> 1.6.17
 * [new tag]             1.6.2      -> 1.6.2
 * [new tag]             1.6.3      -> 1.6.3
 * [new tag]             1.6.4      -> 1.6.4
 * [new tag]             1.6.5      -> 1.6.5
 * [new tag]             1.6.6      -> 1.6.6
 * [new tag]             1.6.7      -> 1.6.7
 * [new tag]             1.6.8      -> 1.6.8
 * [new tag]             1.6.9      -> 1.6.9
 * [new tag]             1.7.0      -> 1.7.0
 * [new tag]             1.7.1      -> 1.7.1
 * [new tag]             1.7.2      -> 1.7.2
 * [new tag]             1.7.3      -> 1.7.3
 * [new tag]             1.7.4      -> 1.7.4
 * [new tag]             1.7.5      -> 1.7.5
 * [new tag]             1.7.6      -> 1.7.6
 * [new tag]             1.7.7      -> 1.7.7
 * [new tag]             1.8.0      -> 1.8.0
 * [new tag]             1.8.1      -> 1.8.1
 * [new tag]             1.8.2      -> 1.8.2
 * [new tag]             1.8.3      -> 1.8.3
 * [new tag]             1.8.4      -> 1.8.4
 * [new tag]             1.8.5      -> 1.8.5
 * [new tag]             1.8.6      -> 1.8.6
 * [new tag]             1.9.0      -> 1.9.0
 * [new tag]             1.9.1      -> 1.9.1
 * [new tag]             1.9.2      -> 1.9.2
 * [new tag]             1.9.3      -> 1.9.3
 * [new tag]             2.0.0      -> 2.0.0
 * [new tag]             2.0.1      -> 2.0.1
 * [new tag]             2.0.2      -> 2.0.2
 * [new tag]             2.0.3      -> 2.0.3
 * [new tag]             2.0.4      -> 2.0.4
 * [new tag]             2.0.5      -> 2.0.5
 * [new tag]             2.0.6      -> 2.0.6
 * [new tag]             2.1.0      -> 2.1.0
 * [new tag]             2.1.1      -> 2.1.1
 * [new tag]             2.1.10     -> 2.1.10
 * [new tag]             2.1.11     -> 2.1.11
 * [new tag]             2.1.12     -> 2.1.12
 * [new tag]             2.1.13     -> 2.1.13
 * [new tag]             2.1.14     -> 2.1.14
 * [new tag]             2.1.15     -> 2.1.15
 * [new tag]             2.1.16     -> 2.1.16
 * [new tag]             2.1.2      -> 2.1.2
 * [new tag]             2.1.3      -> 2.1.3
 * [new tag]             2.1.4      -> 2.1.4
 * [new tag]             2.1.5      -> 2.1.5
 * [new tag]             2.1.6      -> 2.1.6
 * [new tag]             2.1.7      -> 2.1.7
 * [new tag]             2.1.8      -> 2.1.8
 * [new tag]             2.1.9      -> 2.1.9
 * [new tag]             2.2.0      -> 2.2.0
 * [new tag]             2.2.1      -> 2.2.1
 * [new tag]             2.2.10     -> 2.2.10
 * [new tag]             2.2.11     -> 2.2.11
 * [new tag]             2.2.12     -> 2.2.12
 * [new tag]             2.2.13     -> 2.2.13
 * [new tag]             2.2.14     -> 2.2.14
 * [new tag]             2.2.15     -> 2.2.15
 * [new tag]             2.2.16     -> 2.2.16
 * [new tag]             2.2.17     -> 2.2.17
 * [new tag]             2.2.2      -> 2.2.2
 * [new tag]             2.2.3      -> 2.2.3
 * [new tag]             2.2.4      -> 2.2.4
 * [new tag]             2.2.5      -> 2.2.5
 * [new tag]             2.2.6      -> 2.2.6
 * [new tag]             2.2.7      -> 2.2.7
 * [new tag]             2.2.8      -> 2.2.8
 * [new tag]             2.2.9      -> 2.2.9
 * [new tag]             2.3.0      -> 2.3.0
 * [new tag]             2.4.0      -> 2.4.0
 * [new tag]             2.4.1      -> 2.4.1
 * [new tag]             2.4.10     -> 2.4.10
 * [new tag]             2.4.11     -> 2.4.11
 * [new tag]             2.4.12     -> 2.4.12
 * [new tag]             2.4.13     -> 2.4.13
 * [new tag]             2.4.2      -> 2.4.2
 * [new tag]             2.4.3      -> 2.4.3
 * [new tag]             2.4.4      -> 2.4.4
 * [new tag]             2.4.5      -> 2.4.5
 * [new tag]             2.4.6      -> 2.4.6
 * [new tag]             2.4.7      -> 2.4.7
 * [new tag]             2.4.8      -> 2.4.8
 * [new tag]             2.4.9      -> 2.4.9
HEAD is now at f943af37f Merge pull request #8457 from Homebrew/tapioca-update
==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
  https://github.com/Homebrew/brew#donations
==> Tapping homebrew/core
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core'...
remote: Enumerating objects: 12, done.
remote: Counting objects: 100% (12/12), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 782226 (delta 4), reused 10 (delta 4), pack-reused 782214
Receiving objects: 100% (782226/782226), 311.31 MiB | 20.14 MiB/s, done.
Resolving deltas: 100% (521822/521822), done.
Updating files: 100% (5452/5452), done.
Tapped 2 commands and 5197 formulae (5,477 files, 341.5MB).
Already up-to-date.
==> Installation successful!

==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics
No analytics data has been sent yet (or will be during this `install` run).

==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
  https://github.com/Homebrew/brew#donations

==> Next steps:
- Run `brew help` to get started
- Further documentation: 
    https://docs.brew.sh
```
</div></details>
Installation successfullと表示されれば完了です。

### 動作チェック
バージョン情報を表示してみましょう。

```sh:homebrewバージョン表示コマンド
brew -v
```

下記のようにバージョンが表示されればOKです
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/d7026433-4ed0-6618-19e9-97364f2004a7.png)


## anyenvのインストール
XXenv系のバージョン管理をできるシステムを導入します。

### インストール
Homebrewを利用して、anyenvをインストールします。

```shell:brew経由でanyenvインストールコマンド
brew install anyenv
```

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/88ae7f55-218a-4e0f-c85b-de3975e78145.png)

### 動作チェック

```shell:anyenvバージョン確認コマンド
anyenv --version
```
下記のようにバージョンが表示されればとりあえずOKです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/d70b6f5c-f1e3-67be-4e89-873effb788b0.png)

### 初期設定

```shell:コマンド
anyenv init
```

下記のように「.zshrc」に追加するように指示があるため、実施する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/5e5456c5-50a5-49e9-90df-f72a5e5c5114.png)

```shell:追加
echo 'eval "$(anyenv init -)"' >> ~/.zshrc
```

追加後、設定をリロード

```shell:設定再読み込み
source ~/.zshrc
```

さらに下記のようにエラーという名の指示があるので、焦らずに実施します。要するにディレクトリがないのかと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/b1a2fb6b-bd4c-ed4e-85ca-b571ebde68c7.png)

```shell:anyenvの初期化
anyenv install --init
```

途中で、gitHubからのチェックアウトがありますので、「y」を入力し、Enterで実行してください。
※Proxy環境下等では、git cloneに失敗するため、gitにproxy設定を行ってください。
[GitコマンドをProxy環境可で利用する](https://qiita.com/ryotaro76/items/0e40ffb6173b1580e671)
<details>
<summary>実行結果を全て確認する<div>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/a83b921b-8d3b-c2fc-1c90-b01b6528651f.png)</div></summary><div>

```shell:実行結果
Manifest directory doesn't exist: /Users/maintain/.config/anyenv/anyenv-install
Do you want to checkout ? [y/N]: y
Cloning https://github.com/anyenv/anyenv-install.git master to /Users/maintain/.config/anyenv/anyenv-install...
Cloning into '/Users/maintain/.config/anyenv/anyenv-install'...
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 62 (delta 1), reused 0 (delta 0), pack-reused 57
Unpacking objects: 100% (62/62), done.

Completed!
```
</div></details>
以上で、anyenvのインストールは完了です！

## nodenvのインストール
お待ちかねのnodenvを入れていきましょう。

### インストール

```shell:nodenvインストールコマンド
anyenv install nodenv
```

<details><summary>実行結果を全て表示する<div>![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/a0271223-87a1-c705-906f-c0d0a11bf66b.png)
</div></summary><div>

```shell:実行結果
/var/folders/kn/9wvwt6bj0dv3nhdd73b70d_80000gn/T/nodenv.20200824032526.6048 ~
Cloning https://github.com/nodenv/nodenv.git master to nodenv...
Cloning into 'nodenv'...
remote: Enumerating objects: 14, done.
remote: Counting objects: 100% (14/14), done.
remote: Compressing objects: 100% (13/13), done.
remote: Total 4017 (delta 2), reused 4 (delta 1), pack-reused 4003
Receiving objects: 100% (4017/4017), 731.96 KiB | 1017.00 KiB/s, done.
Resolving deltas: 100% (2633/2633), done.
~
~/.anyenv/envs/nodenv/plugins ~
Cloning https://github.com/nodenv/node-build.git master to node-build...
Cloning into 'node-build'...
remote: Enumerating objects: 90, done.
remote: Counting objects: 100% (90/90), done.
remote: Compressing objects: 100% (58/58), done.
remote: Total 19741 (delta 37), reused 64 (delta 24), pack-reused 19651
Receiving objects: 100% (19741/19741), 3.51 MiB | 2.98 MiB/s, done.
Resolving deltas: 100% (12651/12651), done.
~
~/.anyenv/envs/nodenv/plugins ~
Cloning https://github.com/nodenv/nodenv-vars.git master to nodenv-vars...
Cloning into 'nodenv-vars'...
remote: Enumerating objects: 211, done.
remote: Total 211 (delta 0), reused 0 (delta 0), pack-reused 211
Receiving objects: 100% (211/211), 31.82 KiB | 245.00 KiB/s, done.
Resolving deltas: 100% (76/76), done.
~

Install nodenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.
```
</div>
</details>

Install nodenv succeeded!と表示されれば完了です。
リロードが必要そうですので、下記コマンドを実行してください。

```shell:リロード
exec $SHELL -l
```

### 動作チェック

```shell:環境変数確認
env
```
下記のように、nodeenv系の環境変数が追加されていればOKです。

```shell:設定済み環境変数抜粋
(関係ある部分のみ抜粋)
PATH=/Users/maintain/.anyenv/envs/nodenv/shims:/Users/maintain/.anyenv/envs/nodenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
SHLVL=1
NODENV_ROOT=/Users/maintain/.anyenv/envs/nodenv
NODENV_SHELL=zsh
_=/usr/bin/env
```

## Node.jsのインストール

### インストール可能バージョンの確認

どんなバージョンが配信されているわからない場合は、下記のコマンドで確認します。
わかっている場合は、飛ばしてください。

```shell:インストール可能バージョン一覧
nodenv install -l
```

### インストール
下記のようにインストールしたいバージョンを指定してください。

```shell:インストールコマンド
nodenv install {バージョン番号}
例）nodenv install 12.18.3
```

### インストール済みバージョン確認
下記コマンドで確認可能です。

```shell:インストール済み一覧
nodenv whence npm
```

### インストールしたNode.jsをグローバル設定

```shell:グローバル設定
nodenv global {バージョン番号}
例)nodenv global 12.18.3
```

```shell:確認コマンド
node -v
```

### アンインストール
`~/.anyenv/envs/nodenv/versions`配下にバージョンごとにディレクトリが作られるので、不要になったものを削除してください。


## nodeenvを利用する
nodeenvを利用するメリットである、プロジェクトごとのローカル設定を行う方法です。

### ローカルバージョン設定

```shell:コマンド
## プロジェクトのディレクトリに移動
cd {プロジェクトディレクトリ}

## そのプロジェクトで利用するバージョンをしてい
nodenv local {バージョン番号}
```

`.node-version`というファイルが作成され、その中にバージョンが記載されています。

### 動作チェック

```shell:確認コマンド
node -v
```
グローバル設定とは異なったバージョンが表示されるようになったかと思います。

## Androidもビルドしたい場合
### Android Studioのインストール
[Android Studio](https://developer.android.com/studio?hl=ja)の公式ページからアプリケーションをダウンロードし、インストールし、起動してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/a857d52f-7b9d-3135-b4e2-dfa5d1f7ebfb.png)

起動後、初回設定が必要ですので下記の通り進めてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/7c5a6e77-3169-1292-a716-6f0afdb95eca.png)
読み込むものがない場合は、`Do not import settings`を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/5ebe71da-d807-0a8b-24c9-a87c6111e5e4.png)
どちらか好きな方を選択。個人的には`Don't send`で良いと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/1422435c-afc0-4b49-7622-5f7112bf1042.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/22cb90df-c1a4-05c3-0d9b-7e8b039250a6.png)
`Custom`を選択し、Next
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/4ba56e60-6aac-ece2-81ed-f90f25b21bc2.png)
特に変更せず、Next
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/9a3ec1c6-7712-0dfd-1e06-34594025fce6.png)
お好きな方を選択し、Next
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/54f7b849-5acf-0485-68ef-ae0d9d609f18.png)
`Android Virtual Device`を追加で選択し、Next
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/de67a526-c7f0-d62b-7cdf-c06728f9048c.png)
スペックに合ったメモリ割り当てが自動的に選択されるので、Next
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/0e7b3597-175a-2a8f-8a54-1788aa5eaecc.png)
設定内容を確認し、Finish

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/48f821f2-089b-f8e2-b24e-015930b239e1.png)
途中で拡張機能がブロックされる場合は、`"セキュリティ"環境設定を開く`をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/af6dc37e-fa5e-591f-d27d-8afcea3daf82.png)
鍵マークをクリックしロックを解除後、`許可`をクリックしてください。
※自動で閉じないため、手動でセキュリティ設定画面は閉じてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/c08152d2-8604-6e16-43d5-d5b66c23fdcf.png)
その後、しばらく待つとインストールが完了し、`Finish`がクリックできるようになりますので、クリックしてください。

### Android SDKのパスを通す
下記３つのコマンドを実行し、SDKのパスを通します

```shell:コマンド
# Android_HOMEの変数
echo 'export ANDROID_HOME=$HOME/Library/Android/sdk' >> ~/.zshrc
# Android toolsのパス
echo 'export PATH=$PATH:$ANDROID_HOME/tools' >> ~/.zshrc
# Android toolsの実行パス
echo 'export PATH=$PATH:$ANDROID_HOME/tools/bin' >> ~/.zshrc
# Android platform-toolsのパス
echo 'export PATH=$PATH:$ANDROID_HOME/platform-tools' >> ~/.zshrc

# 変更の適用
source ~/.zshrc
```

下記のコマンドを実行し、正しく適用されたかをかくにんしてください。

```shell:javaランタイムバージョン確認コマンド
java -version
```

```shell:javaコンパイラバージョン確認コマンド
javac -version
```

### Android StudioにバンドルされているJavaのパスを通す
すでにインストール済みのもがあれば不要ですが、まだJDKの設定をしていない場合は下記のコマンド３つを実行してください。

```shell:コマンド
# JDKパス
echo 'export ANDROID_HOME=$HOME/Library/Android/sdk' >> ~/.zshrc
# JavaHomeパス
echo 'export JAVA_HOME=/Applications/"Android Studio.app"/Contents/jre/jdk/Contents/Home' >> ~/.zshrc

# 変更の適用
source ~/.zshrc
```

下記のコマンドを実行し、正しく適用されたかを確認してください。

```shell:adbツールバージョン確認コマンド
adb version
```

## SDKダウンロード

### SDK Platformのダウンロード
SDK Managerより開発を行うSDKをダウンロードします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/a3af48bf-e8a0-0123-3ab8-c1776f69897a.png)
`Configure > SDK Manager`をクリックします
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/48578131-5b5d-c146-544c-6fc454b01b4c.png)
`Show Package Details`にチェックをつけ、開発対象の`Android SDK Platform XX`及び`System Image`を選択し、Applyをクリックしてください。
※その後、ライセンス同意画面が表示された場合は、`Accept`を選択し、Nextをクリック

### SDK toolsのダウンロード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/91900/d8313c87-f1ff-f096-4c10-18b15508d849.png)
SDK Platformで選択肢たバージョンと同一のtoolsをダウンロードしましょう。


## 終わり
今回は初めて、anyenvでNode.jsの環境構築を行ってみました。
後は、下記コマンド等で、react-native-cliを入れて、react開発をしていきましょう！

```shell:react-nativeインストール
npm install -g react-native-cli
```

<bar>
ちなみに、pyenv等もanyenvで管理していくことで、より柔軟で利便性が高い開発環境を構築できそうですね！