環境構築メモ（M1 Mac対応）

# これは何
Macを初期化したりすることがあるので、環境構築のメモです。

# Macの初期設定
## Macのパスワードを変更する
説明は特になし

## AppleIDにサインインする
iCloud Drive 「デスクトップフォルダと書類フォルダ」にチェック

## 拡張子を表示する
上部メニューバーの「Finder」➡︎「環境設定」を開きます。Finder環境設定
環境設定メニューの「詳細」を選択し、「すべてのファイル名拡張子を表示」にチェックを入れます。

## 隠しファイルを表示する

```sh:隠しファイルを表示
defaults write com.apple.finder AppleShowAllFiles -bool true
```
```sh:ネットワークドライブ(NASとか)で .DS_Store を作成しないようにする
defaults write com.apple.desktopservices DSDontWriteNetworkStores True
```
```sh:Finderを再起動
killall Finder
```
```sh:workspaceフォルダを作成
mkdir ~/workspace
```
```sh:projectsフォルダを作成
mkdir ~/workspace/projects
```

## Homebrew のインストール
https://brew.sh/ja/ の手順でインストールする
```
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```
```
echo '# Set PATH, MANPATH, etc., for Homebrew.' >> ~/.zprofile
```
```
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
```
```
source ~/.zprofile
```
```
brew doctor
```

## iTerm2 のインストール
```
brew install --cask iterm2
```
### iTerm の設定を共有する
Settings > General > Load preferences from a custom folder or URL:

### Default windowで開かないようにする
Settings > General > Startup
Only Restore Hotkey Window を選択

### 全画面表示にする
Settings > General > Window > Native full screen windows のチェックを外す
Settings > Profiles > Window > Settings for New Windows > Style, Screen, Space
Style: fullscreen
Screen: Screen with Cursor
Space: All spaces

### 背景を透過する
Settings > Profiles > Window
Transparency を3０
Keep background colors opaque にチェック

#### ショートカットを設定
Settings > Keys > HotKey > Show/hide iTerm2 with a system-wide hotkey にチェック

#### タブを常時表示
Settings > Appearance > Tabs 
Show tab bar even when there is only one tab にチェック

#### テーマを変更
Settings > Appearance > General
Theme を Dark

#### カラースキーマを変更
Settings > Profiles > Colors
Color Presets を Pastel (Dark Background)

warpも良さげ
brew install --cask warp

## セキュリティソフトのインストール
```
brew install --cask eset-cyber-security
```

## パスワード管理ツールのインストール
```
brew install --cask 1password
```
```
brew install --cask bitwarden
```

## Xcode ([XcodesApp](https://github.com/RobotsAndPencils/XcodesApp)) のインストール
複数バージョンのXcodeをインストールできるようにするため、XcodesAppをインストールする
```
brew install --cask xcodes
```
XcodesAppをインストール後、必要なXcodeをダウンロード＆インストールする

### 手動でダウンロードする場合
[Apple Developer - More Download](https://developer.apple.com/download/all/?q=xcode)からダウンロードする
※Appleのアカウントがあれば開発ライセンスは不要みたい

## Xcodeの設定
※参考 https://qiita.com/zrn-ns/items/8493413e55b7329c023a

1. スペルチェックを有効化
メニューバー > Edit > Format > Spelling and Grammar > Check Spelling While Typing

2. 空白文字を表示する
メニューバー > Editor > Invisibles

3. テーマの変更
メニューバー > Editor > Theme
Default (Dark)
メニューバー > Xcode > Settings... > Generalタブ > Appearance
Dark

4. 行末スペースの自動削除設定
メニューバー > Xcode > Settings... > Text Editingタブ > Editingタブ
Automatically trim trailing whitespace
including whitespace-only lines

5. 改行目安（ガイド）を表示する
メニューバー > Xcode > Settings... > Text Editingタブ > Displayタブ
Page guide at column 120

6. ビルドの成功/失敗時に効果音を鳴らす
メニューバー > Xcode > Settings... > Behaviorsタブ
Succeeds　/ Fails　などを選択し、右の画面で Play sound
Succeeds Breeze or Crystal
Fails Funky or Pebble or Sonumi or Submerge

必要に応じて Network Link Conditioner をインストールする
Xcode のメニュー[Open Developer Tool] - [More Developer Tool]​​
参考
https://dev.classmethod.jp/articles/network-link-conditioner/

## Google Chrom
```
brew install --cask google-chrome
```
インストール後、ログインして同期する

# Sourcetree のインストール
```
brew install --cask sourcetree
```
設定値のバックアップをとっている場合
```
cd 【バックアップがあるフォルダ】
```
```
cp browser.plist ~/Library/Application\ Support/SourceTree/browser.plist
```

## Github の設定
公開鍵を作成
```sh
cd ~/.ssh
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub
```

公開鍵をGitHubにアップする
https://github.com/settings/keys

公開鍵をKeychainに登録
```sh
ssh-add -K
```

接続を確かめる
```sh
ssh -T git@github.com
```

鍵の名前を任意に変えた場合
### configの設定
```sh:~/.ssh/config
Host github.com
  User git
  Port 22
  HostName github.com
  IdentityFile ~/.ssh/[id_rsaのファイル名]
  TCPKeepAlive yes
```

### ghコマンドのインストール
```sh
brew install gh
```
```
echo 'eval "$(gh completion -s zsh)"' >> ~/.zshrc
```
```
source ~/.zshrc
```

# 各種ツールのインストールと設定（必要に応じて）
## ruby のインストール
rbenv　もしくは asdf をインストール
### rbenv のインストール
```
% brew install rbenv
% echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc
% echo 'eval "$(rbenv init - zsh)"' >> ~/.zshrc
% source ~/.zshrc
% rbenv install 2.7.1
% rbenv rehash
% rbenv global 2.7.1
```

### asdf のインストール
```
% brew install asdf
% echo 'legacy_version_file = yes' >> ~/.asdfrc
```

## direnv のインストール
```
% brew install direnv
% echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc
% source ~/.zshrc
```

## Atom の設定
Sync-Settingsを使って同期する

### Markdownエディタの設定
Preferences... > Packages
- markdown-preview
  ※ control + shift + mでプレビュー表示できる
 - [x] Break On Single Newline
 - [x] Use Github.com Style
- markdown-scroll-sync
- markdown-writer
- tool-bar
- tool-bar-markdown-writer
- markdown-toc
- wordcount
- markdown-mindmap
- atom-beautify

- git-time-machine
- minimap

StyleSheetに追記
Atom > スタイルシート
```
.markdown-preview {
  background: white !important;
  color: #192F60;
  p, h1, h2, h3, h4, h5, h6, li, th, td, strong {
    color: #192F60 !important;
  }
  h1 {border-bottom: solid 3px #E6E6E6; padding: 3px;}
  h2 {border-bottom: solid 2px #E6E6E6; padding: 3px;}
  h3 {border-left: solid 2px #E6E6E6; padding-left: 12px;}
}
```

## [xcode-install](https://github.com/xcpretty/xcode-install) のインストール
複数バージョンのXcodeを共存させ、かんたんに切り替えて使えるツール
※　Xcodes or XcodesApp をインストールしている場合は不要
```
% gem install xcode-install
% export XCODE_INSTALL_USER=[developer account id]
% export XCODE_INSTALL_PASSWORD=[account password]
% xcversion list
% xcversion install [xcodeバージョン]
% xcversion installed
% xcversion select [Xcodeバージョン]
% xcversion selected
```
参考
https://sussan-po.com/2019/08/29/how-to-use-xcversion/

## [chxcode](https://github.com/klaaspieter/chxcode) のインストール
複数バージョンのXcodeを自動で切り替える
```
% brew tap klaaspieter/formula
% brew install chxcode
```

~/.zshrc に以下を追加 
```~/.zshrc
echo 'source /opt/homebrew/share/chxcode/chxcode' >> ~/.zshrc
echo 'source /opt/homebrew/share/chxcode/auto' >> ~/.zshrc
```
環境によってパスが違う可能性があるので`brew info chxcode`で要確認

## nodebrewの初期設定
```
% nodebrew setup
```

nodebrew の PATH を通す
```
% vim ~/.zshrc
// 以下を追記する
// export PATH=$HOME/.nodebrew/current/bin:$PATH

% source ~/.zshrc

% nodebrew install stable
% nodebrew use stable
```

## Firebase CLI をインストールする
% npm install -g firebase-tools
% firebase login

## copilot-for-xcodeをインストール
```
brew install --cask copilot-for-xcode
```
Copilot for Xcode.appを一度実行した後、Macのシステム設定を開く
「プライバシーとセキュリティ > 機能拡張 > Xcode Source Editor」を選択します。表示されたダイアログで「Copilot」にチェックを入れ、「完了」
「プライバシーとセキュリティ > アクセシビリティ」で「CopilotForXcodeExtensionService」にチェック

Copilot for Xcode.appの設定
「Service > GitHub Copilot」を選択します。Nodeのパスを入力し、「Install」をクリックしてLanguage Serverをインストール
「Sign in」をクリックすると、8桁の番号が表示され、同時にWebブラウザにコードを入力するGitHubのWebページが表示されます。コードを入力した後「Confirm Sign-in」

asdfでnodeをインストール
/Users/ユーザー名/.asdf/installs/nodejs/18.15.0/bin/node

設定
1. 「Present suggestions in」を「Floating Widget」に変更
1. 「Widget position」を「Follow Text Cursor」に変更
1. 「Real-time suggestion」をオン
1. 「Real-time suggestion fetch debounce」を設定

## その他 --------------
各ブラウザの設定
Chrome「起動時 - 前回開いていたページを開く」  
Safari「Safariの起動時 - 最後のセッションの全ウィンドウ」
Firefox「起動 -前回のセッションを復元する」


## Brewfile でアプリをインストール
既にインストールしているものはあるが、その他のアプリは、[Brewfile](https://qiita.com/drafts/9b5811a0aeffd26cac92#brewfile)でインストールする
```
% cd 【Brewfileがあるフォルダ】
% brew bundle
```

### Brewfile
インストールが不要なものは、適時コメントアウト
```sh:Brewfile
# https://github.com/Homebrew/homebrew-bundle
# tap 'homebrew/bundle'
# tap 'homebrew/cask'
# tap 'homebrew/core'
# tap 'klaaspieter/formula'

# ----------------------------------------
# brew
# ----------------------------------------

# brew 'direnv'
# brew 'cocoapods'
# brew 'ruby-build'
# brew 'rbenv'
brew "mas"
# brew "chxcode"
# brew 'jq'
# brew 'mint'
# brew "java11"
# brew "gh"
# brew "nodebrew"
# brew "scrcpy"
# brew "ghq"
# brew "peco"
# brew "hub"
# brew "zsh-autosuggestions"
# brew "zsh-syntax-highlighting"
# brew "tmux"
# brew "gh"
brew "xcode-build-server"

# ----------------------------------------
# tap
# ----------------------------------------

# ----------------------------------------
# cask
# ----------------------------------------
# --------- priority ---------
cask 'iterm2'
cask '1password'
cask 'bitwarden'
cask 'google-chrome'
cask 'sublime-text'
cask 'keep'
cask 'xcodes'
cask 'sourcetree'
cask 'charles'
cask 'clipy'
cask 'adobe-creative-cloud'
# cask 'adobe-acrobat-reader'
# cask 'google-japanese-ime'
cask 'slack'
cask 'zoom'
cask 'copilot-for-xcode'

# --------- require ---------

# --- web browser
cask 'firefox'

# --- ide
cask 'android-studio'
cask 'visual-studio-code'

# --- dev tool
cask "sf-symbols"
# cask 'quicklook-json'
cask 'proxyman'

# --- other tool
cask 'the-unarchiver'
cask 'appcleaner'
cask 'microsoft-office'
cask 'miro'
cask 'figma'
# cask 'sketch'

# --------- optional ---------

# --- web browser
# cask 'brave'
cask 'adguard'

# --- ide tool'
# cask 'atom'

# --- dev tool
cask 'postman'
# cask 'sequel-ace'
# cask 'tableplus'
# cask 'docker'
# cask 'java'
cask 'drawio'
# cask 'vysor'
cask 'github'

# --- other tool
# cask 'kaleidoscope'
# cask 'xmind'
# cask 'coteditor'
# cask 'alfred'
# cask 'betterzipql'
# cask 'choosy'
# cask 'iconjar'
# cask 'mapture'
# cask 'qlmarkdown'
# cask 'qlstephen'
# cask 'rambox'
# cask 'openinterminal'
cask 'discord'
# graphviz
# librsvg
# plantuml


# brew cask alfred link

# ----------------------------------------
# mas
# ----------------------------------------

# IPAファイルをAppleデバイスに入れる
# mas 'Apple Configurator 2', id: 1037126344
# Xcode関係の不要ファイルを削除
mas 'DevCleaner', id: 1388020431
# パスワード管理マネージャー
# mas 'Bitwarden', id: 1352778147

mas 'Kindle', id: 302584613

# ----------------------------------------
# Font
# ----------------------------------------
# tap "homebrew/cask-fonts"

# cask "font-migu-1p"
```

※mas-cli（macコマンド）でのインストールは、Apple IDと紐付けるため一度App Storeから入手しておく必要があります。