GitHub Copilot for Xcode

# はじめに

この記事は、[NTTテクノクロス Advent Calendar 2024]() 2日目です。

NTTテクノクロスの神長(ジンチョウ)です。社内では、モバイル向けアプリ開発・技術支援、開発ガイド執筆、[社内研修講師](https://www.ntt-tx.co.jp/products/soft_dojyo)、インターンシップ講師を担当してます。

また、業務外では以下活動を行ってます。

- 学生向けプログラミング教育(県内小学校、都内高等学校、他県大学)([社外ブログ『エンジニアが本気で⼩学⽣向けプログラミング教育をやってみた』](https://www.ntt-tx.co.jp/column/p-education/240816/)を参照)
- 技術書典17へ書籍の出展([生成AIではじめるプログラミング体験ガイド](https://techbookfest.org/product/5aEpfLdzvmE04cNLGE6J2v?productVariantID=hY2TmBQ6x9dF95311Xumpp))

# 引用元サイト

この記事は、以下サイトの情報を引用してます。

- [https://github.com/github/CopilotForXcode](https://github.com/github/CopilotForXcode)
- [https://githubuniverse.com](https://githubuniverse.com)

# GitHub Copilot for Xcode

[GitHub Universe 2024](https://githubuniverse.com/) で発表された **『ソースコードを速く、スマートに作成できるAIペアプログラマツール』** です。ソースコード入力時にインラインコーディングの提案を行うXcode(統合開発環境)の拡張機能です。

## GitHub Copilotとの違い

GitHub CopilotでもAppleデバイス向けのアプリケーションの開発で利用されるSwift/Objective-C(プログラミング言語)をサポートしていましたが、GitHub Copilot for Xcodeは、XcodeでGitHub Copilotの機能が利用できます。

## デフォルト機能

|キー  |機能  |
|:---:|:---|
|Tab|GitHub Copilot for Xcodeが提案したソースコードを入力する。|
|Option|GitHub Copilot for Xcodeが複数の提案をした場合、その全てを表示する。|
|Option <br> + <br> Tab|GitHub Copilot for Xcodeが複数の提案をした際、その中から提案を選択してソースコードを入力する。|

## Tips

Xcodeの『Key Bindings』の設定で **『GitHub Copilot』でフィルタをするとデフォルト機能以外の機能(メニューからのみ利用可能な機能)もキーに割り当てが可能。**

![TIps.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/32974d73-db9c-a102-71c6-e80bb925c2ee.png)

# ライセンス＆環境

ライセンスと利用可能な環境は以下の通りです。

![License.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/8fc53330-b55f-eede-2022-b01d61ccac75.png)

![Requirements.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/787cc41b-5760-b8d8-f25b-20ff772835eb.png)

# インストール

## brew

ターミナルで **『brew install --cask github-copilot-for-xcode』** を実行する。

## ダウンロード

以下手順に則り、インストールを行います。

- [CopilotForXcode](https://github.com/github/CopilotForXcode)の **『the latest Release』** から最新のdmg(ディスクイメージ)をダウンロードする。
- DLしたdmgを開き『GitHub Copilot for Xcode.app』を『Applications』へコピーする。

![dmg_copy.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/ea2afb35-b2d7-104d-614e-113c66efeeaf.png)

- GitHub Copilot for Xcode.appの初回起動時は、警告のPopUpが出るが **『開く』** を選択してアプリを起動する。

![copilot_open.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/ef02de24-6bbb-f6c0-afc5-b2fa388cf339.png)

- Macのアクセシビリティを以下の様に設定する。

![mac_congig.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/3840ccd2-8cb6-34c7-c57d-5dd04c6078bc.png)

- 以下画面が表示されるので『Continue』ボタンを押し、『Open System Preferences』ボタンを押して、『GitHub Copilot for Xcode Extension』の許可設定を行う。

![extenition_permission.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/ac9a9f53-244e-9e2e-f6d9-e8069c9b6c4c.png)

# インストール後の設定

## GitHub Copilot for Xcode

GitHub Copilot for Xcode.appからGitHubにログインを行い、アプリ画面とブラウザ画面で以下表示がされれば設定完了です。

![app_browser_screen2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/1c5715bc-0dd4-1b91-c8f7-2d95ba40f524.png)

## Xcode

前述の設定が完了した状態で、Xcodeから任意のプロジェクトを開いた際に以下PopUpが表示される。 **『許可』** を選択することでGitHub Copilot for Xcodeが利用可能となる。

![xcode_permission.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/4ebcbdde-7370-855f-0edc-9879ae5c45ee.png)

# コーディングデモ

エディタ上でコメントを行うことで、GitHub Copilot for Xcodeからソースコードの提案が行われる。本デモでは『デフォルト機能』で説明したTabを実行しています。

![output.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59827/1f9980f2-19fe-e953-92b9-3eae862a4794.gif)

# 最後に

最後まで読んで頂き、ありがとう御座います。
3日目となる明日の記事も楽しみにして頂ければと思います。