【Xcode】XcodeでGitHub Copilotを使ってみた

# はじめに
https://qiita.com/SNQ-2001/items/796dc5e794ac3f57a945

おとといの記事でGitHub Copilotを使用できるようにしました。
私はiOS開発者なので、できればVSCodeではなくXcodeでGitHub Copilotで使用したいです。
ちょっと調べてみたらXcodeでも使用できるっぽいので試してみました。
(一応使えてますが、VSCodeほど快適ではないです)

https://github.com/intitni/CopilotForXcode

# やりかた
### CopliotforXcodeのインストール
「Releases」を選択します。
![スクリーンショット 2023-01-09 19.05.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/27ee2818-2464-c88f-6042-bf50d0ff6e59.png)

「Copliot.for.Xcode.app.zip」を選択してダウンロードします。
![スクリーンショット 2023-01-09 19.06.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/5a7ecb0a-9e6c-fea0-3a14-e936ada530de.png)

ダウンロードしたものを解凍して開きます。
開こうとするとアラートが出るので「開く」を選択します。
![スクリーンショット 2023-01-09 19.23.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/eb96f0f9-c52e-ebd6-5f4f-a98a3241384a.png)

### CopliotforXcodeのセットアップ
「Set Up Launch Agent for XPC Service」を選択します。
アラートが出るので「OK」を選択します。
![スクリーンショット 2023-01-09 19.25.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/0923e42b-bb6c-ea7e-b343-bd11d4a6dc27.png)

### Nodeをインストール
既にインストールしている方は飛ばしてください。
[Node](https://nodejs.org/en/)をダウンロードします。
![スクリーンショット 2023-01-09 19.28.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/5e964244-a242-d663-db37-d17788e80df9.png)

手順に沿ってインストールを行います。
![スクリーンショット 2023-01-09 19.31.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/afa480a7-04fa-5cee-c998-4374edcd9f93.png)

### CopliotforXcodeにNodeを設定
Nodeのパスを入力します。
この記事の方法でNodeをインストールした方は`/usr/local/bin/node`だと思います。
![スクリーンショット 2023-01-09 19.34.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/963c6964-e528-a293-bd5a-acfff6e8b45d.png)
「Refresh」を選択します。
![スクリーンショット 2023-01-09 19.35.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/2153418a-8a94-d6cb-7e0b-e4f78ff63164.png)

成功すると以下のようになります。

![スクリーンショット 2023-01-09 19.37.03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/1eb3caee-3625-8da1-1e44-2545a47c634b.png)

### GitHubにサインイン
「Sign In」を選択します。
![スクリーンショット 2023-01-09 19.37.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/50fc945a-3cfa-a561-5c14-57c1910584de.png)
アラートに表示された8桁の文字列をブラウザに入力します。
![スクリーンショット 2023-01-09 19.39.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/efb2b746-954a-e7a8-e9fb-0e87cd7a4bc9.png)
ここに入力します
![スクリーンショット 2023-01-09 19.38.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/dd48241e-4369-9fe8-6fee-90ff597d8fe2.png)
「Authorize GitHub Copilot Plugin」を選択します。
![スクリーンショット 2023-01-09 19.41.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/84e10d83-378b-e16a-6528-1d499b69e5da.png)
成功すると以下の表示になります。
![スクリーンショット 2023-01-09 19.43.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/43833ebe-e222-fdb2-a30a-bb59b2c0b13c.png)

### CopliotforXcodeの再起動
① 「Copliot for Xcode」を選択します。
② 「Quit Copliot for Xcode」を選択します。
![スクリーンショット 2023-01-09 19.44.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/82f85b6d-bb8f-6b98-5958-6529641d1a74.png)

「Sign Out」が表示されていればOKです。
![スクリーンショット 2023-01-09 19.46.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/e91291f9-246e-0627-6913-73d8168dc138.png)

### 設定アプリでCopliotforXcodeを有効化
「システム設定」を開きます。
![スクリーンショット 2023-01-09 19.48.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/06224f94-ccb5-1539-8008-576299beb7e1.png)

① 「プライバシーとセキュリティ」を選択します
② 「拡張機能」を選択します
![スクリーンショット 2023-01-09 19.48.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/aca8e85e-84aa-7679-f8c9-6a0a3b91e12d.png)

「Xcode Source Editor」を選択します。
![スクリーンショット 2023-01-09 19.50.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/8cf9f5e5-0818-7fdb-9e28-76ec5b1e7433.png)

① 「Copilot」にチェックを入れます。
② 「完了」を選択します。
![スクリーンショット 2023-01-09 19.51.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/1b62ccf6-5f2d-0976-f266-cae8b6df9ec3.png)

### 入力監視をオンにする
① 「プライバシーとセキュリティ」を選択します
② 「入力監視」を選択します
![スクリーンショット 2023-01-09 20.12.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/43856ee1-bd4a-dced-2ddb-7c9185a4ff58.png)

「+」を押します
![スクリーンショット 2023-01-09 20.13.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/dbb5edbd-04eb-7226-fab7-9f12490134ce.png)

「Copilot for Xcode」を選択して「開く」を選択します。
![スクリーンショット 2023-01-09 20.15.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/a552c6d5-2329-3263-ca77-719646d57ce2.png)

こうなっていればOKです
![スクリーンショット 2023-01-09 20.16.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/42f7ffa9-92c4-e155-bb27-9fb6e61d16f4.png)

以上で設定はおわりです
早速使ってみましょう

# 機能
以下の7つの機能が使用できます

- Get Suggestions
  - 現在のカーソル位置のコード提案を取得する
- Accept Suggestion
  - コード提案を追加する
- Reject Suggestion
  - コード提案を削除する
- Next Suggestion
  - 複数のコード提案候補がある場合は、次の候補に切り替える
- Previous Suggestion
  - 複数のコード提案候補がある場合は、前の候補に切り替える
- Turn On Real-time Suggestions
  - コード提案を自動追加モードをオンにする
- Turn Off Real-time Suggestions
  - コード提案を自動追加モードをオフにする
- Real-time Suggestions
  - コード提案を自動追加モードにする？(違いがよくわからない)

![スクリーンショット 2023-01-09 19.57.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/033d32a5-fada-e4aa-dc8c-f1610582686d.png)

# 使い方
### Get Suggestions
一番わかりやすいのは「Get Suggestions」です。
カーソルのあっている箇所の提案をしてくれます。
![画面収録_2023-01-09_20_20_47_AdobeExpress.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/d992e943-c9a6-c0ec-4ab1-a262af8bdd91.gif)

### Accept Suggestion
提案を挿入する場合は「Accept Suggestion」です。
![画面収録_2023-01-09_20_22_58_AdobeExpress.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/40f94d46-4118-ac2a-ff75-21f8dc0b7980.gif)

### Reject Suggestion
提案を削除する場合は「Reject Suggestion」です。
![画面収録_2023-01-09_20_25_10_AdobeExpress.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/7deac626-dae0-8a0e-a9f2-e6a4c481b8b7.gif)

### Next Suggestion / Previous Suggestion
1/2の部分が提案の数です。
この場合は提案が2個ある内の1個目を表示しているよ、という意味です。
「Next Suggestion」で次の提案を表示できます。
「Previous Suggestion」で前の提案を表示できます。
![スクリーンショット 2023-01-09 20.26.49.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1745371/612620df-9f56-5f0f-479c-8d88e3d88fb0.png)

### Turn On Real-time Suggestions / Turn Off Real-time Suggestions / Real-time Suggestions
自動提案はかなり精度が低いように思えます。
これからに期待の機能です。
ほとんどの場合で提案が表示されません。
提案が表示される時は直前にXcodeが重くなります。

動画は撮れなかったのでなしです。

# おわり
正直、動作はまだまだ快適とは言えないです。
まだリリースされて1ヶ月程度なので、これからに期待ですね！
リアルタイムサジェストが強化されると、かなり便利なものになりそうです！

キーボードショートカットを割り当てるとめっちゃ簡単に使えるようになります！

https://qiita.com/SNQ-2001/items/37f918dd6de2b7b53aaa