LinuxにおけるSwiftの環境構築

# 目次
- はじめに
  - 注意
  - 経緯
  - 目的
- 環境構築
  - Step.0 Homebrewの導入
  - Step.1 Swiftのインストール
  - Step.2 VSCodeのインストール
  - Step.3 自動整形ツールの導入
- おわりに


# はじめに
## 注意
筆者の推測や予想など直感的に記している箇所がいくつかございます。本記事の内容は参考程度とお考えください。また、本記事はSwiftの開発環境を構築することであり、こちらのみではiOSアプリを開発することはできないかと思われます。今回、構築した環境ではSwiftのプログラムを実行できることのみに限ります。

## 経緯
私はiOSのアプリを開発したいと考えています。それにはMac OSを搭載したマシンが必要であり、プログラミング言語はSwiftを扱うとのことです。しかし、私の手元にはMacのマシンがありません。そこで、Swiftの勉強だけはしたいと思い、今回の環境構築に至りました。

## 目的
Linux Mint 20.3 cinnamonでSwiftの環境を構築することです。本記事では次の3つをゴールとしています。

- Swiftのインストール
- VSCode(Visual Studio Code)のインストール
- 自動整形ツールの導入

# 環境構築
## Step.0 Homebrewの導入
Homebrewとは、Mac OSや Linux、WSLにインストールできるソフトウェアの管理を行うパッケージマネージャーです。Linux版は以前までLinuxbrewと呼ばれていたみたいです。今回はこれを用いて環境構築を行います。

[Homebrewの公式ページ](https://brew.sh/index_ja)

これにより、次の管理が簡単にできます。
- パッケージやライブラリの依存関係
- パッケージのインストールとアンインストール

Homebrewの導入には次の過程が必要です。
- curlコマンドとHomebrewのインストール
- Homebrewのパス登録

以下にcurlコマンドとHomebrewのインストールを行うコマンドを示します。後者は同様のものが[公式ページ](https://brew.sh/index_ja)に記されています。
```
# curl コマンドのインストール
sudo apt-get install build-essential procps curl file git

# Homebrew のインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
```

さきほどのコマンドを終えると、次のようなメッセージがターミナルに出力されます。なお、3行目の「>> /home/ユーザ名/.profile」はご自身の環境で異なります。
```
< 省略 >
==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
    echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/ユーザ名/.profile
    eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
< 省略 >
```

3, 4行目にある2つのコマンドをコピーして、それらの文をターミナルに張り付けて実行します。
```
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /home/ユーザ名/.profile
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
```

以上でHomebrewの導入は終了です。次のコマンドで無事に導入ができたかを確認できます。無事に導入ができていれば、Homebrewのバージョンが出力されます。
```
brew -v
```

## Step.1 Swiftのインストール
以下にSwiftのインストールを行うコマンドを示します。Homebrewのおかげで非常に簡単に行えます。ここでbrewコマンドが使用できない場合は再起動を試みてください。
```
# Swift のインストール
brew install swift
```

次のコマンドで無事に導入ができたかを確認できます。無事に導入ができていれば、Swiftのバージョンが出力されます。
```
# インストールの確認
swift -version
```

## Step.2 VScodeのインストール
まず、VScodeの公式サイトからファイルを入手します。Linux MintはDebianやUbuntuを母体としているため(※)、ダウンロードファイルはdebファイルを選択しました。

[Download Visual Studio Code - Mac, Linux, Windows](https://code.visualstudio.com/download)
※ [Linux Mint - Wikipedia](https://ja.wikipedia.org/wiki/Linux_Mint)


ダウンロードしたファイル名は「code_数字の羅列_amd64.deb」となっているはずです。これをホームディレクトリへ移動させ、次のコマンドでインストールを行います。実際にはご自身のダウンロードファイル名を指定してください。
```
sudo apt install ./code_数字の羅列_amd64.deb
```

次のようなメッセージが出力されたら終了です。「OS情報」にはご自身の環境が記されています。
```
<省略>
desktop-file-utils (OS情報) のトリガを処理しています ...
```

以上から、アプリケーションメニューのプログラミングという項目から「Visual Studio Code」が選択できるようになります。

### 補足: Homebrewを用いたVSCodeのインストール
Mac OS限定ですが、Homebrewを用いてVSCodeをインストールすることができます。恐らく、Macアプリケーションであるため、MacOS以外には非対応になっているのかと思われます。以下にコマンドを示します。

[visual-studio-code — Homebrew Formulae](https://formulae.brew.sh/cask/visual-studio-code)
```
# Homebrewを用いたVSCodeのインストール
brew install --cask visual-studio-code
```

## Step.3 自動整形ツールの導入
以下のコマンドでSwiftのフォーマッタをインストールします。こちらもHomebrewの恩恵を受けられます。
```
# フォーマッタのインストール
brew install swift-format
```

インストールの確認として、以下のコマンドを用いてフォーマッタのファイルパスを取得します。このコマンドにより、表示されたパスをコピーして控えておきましょう。こちらのパスはVScodeでフォーマッタを利用する際に必要となります。
```
# インストールの確認
brew ls swift-format
```

次にVSCodeを起動して、「apple-seift-format」という拡張機能をインストールします。その後に[歯車 > 拡張機能の設定]から設定のページにて、[Apple-swift-format: Path]に先ほどのパスを入力してください。そして、設定の検索にて「format on save」を入力して、[Editor: format on save]を有効にしてください。

以上の設定により、VScodeにてソースファイルを[Ctrl + S]で保存したとき、自動的にフォーマッタが起動してコードが整形されます。

# おわりに
ご閲覧いただきありがとうございました。私事ではありますが、初めての投稿であり、拙い点や誤っている点がいくつかあるかと思います。コメントにてご指摘、ご教授いただけると幸いです。