GitHub Copilot for XcodeとCopilot for Xcodeの違いについて

こんにちは、アプリエンジニアの日野です。

今回は、Xcodeで利用できる2つの拡張機能、GitHub Copilot for XcodeとCopilot for Xcodeの比較結果をお伝えします。

背景

最近、AI支援ツールの進化が著しく、開発効率を大幅に向上させることができるようになっています。

xtoneでもAIツールを積極的に導入・調査を行っており、その過程でGitHub Copilot for XcodeとCopilot for Xcodeの比較を行いましたので記事にまとめました。

名称が似ていますので、リポジトリのOwnerもしくはOrganization名で記載します。 ( Copilot for Xcode は intitni版、GitHub Copilot for XcodeはGitHub版と記載します。)

こちらの記事は2024年11月29日時点の調査結果です。 最新の情報については、それぞれの公式ウェブサイトをご確認ください。

結論

おそらく急いでいる方もいらっしゃると思いますので、結論から記載します。

特徴 GitHub Copilot for Xcode Copilot for Xcode
GitHub公式 ×
単一 + 複数行のコード生成, 提案
チャット ×
ユーザーインターフェース Xcode内で直接提案が表示される 別ウィンドウで提案が表示される
サブスクリプション 有料(GitHub Copilotのサブスクリプションが必要) 無料(一部有料の機能あり)

GitHub版 が向いている方

  • 公式のGitHub Copilot拡張機能を使いたい方
  • コード補完機能のみ使用する方
  • GitHub Copilotのみを使用する方
  • 導入の手間を最小限に抑えたい方

intitni版 が向いている方

  • GitHub CopilotやChatGPTなどのチャット機能をXcodeでも活用したい方
  • 様々なモデルを試したい方
  • 個人で無料で補完機能を試したい方

GitHub版とintitni版の違い

2つのツールについての概要や関係性について調べた結果を記載します。

GitHub版

GitHub版(GitHub Copilot for Xcode)は、GitHub謹製のXcodeの拡張機能で、GitHub Copilotに特化しています。

VS Codeのようにエディタ上にヒントテキストとして薄いグレーで提案が表示され、Tabキーで提案を受け入れることができます。

現時点(2024年11月22日)ではチャット機能はなく、提案機能のみ利用可能です。

2024年11月28日 追記

ChatGPTの有料機能として提供されている「Work with Apps」を使用することで、intitni版のチャット機能と似た機能が利用できます。

www.aisharenet.com

GitHub版の使用感

intitni版に比べると説明書要らずで導入ができた為、ノンストレスで導入ができました。

また、intitni版と比べると若干提案のレスポンスが早く画面上に表示される為、適用までの時間が気持ち早かったです。

まだ提案されるコードの精度も変数名の定義やメソッド名を何度も入力しなくとも入力したいと思っているものが提案されることが多かったので、良さそうでした。

intitni版

intitni(Copilot for Xcode)は、GitHub版のフォーク元として開発されている拡張機能です。

GitHub Copilotはもちろん、Codeiumを利用する場合は補完機能を無料で利用することができます。

提案は別ウィンドウで表示されます。

提案時の表示

OpenAIやAzure OpenAI、Google Generative AI、Ollama、Claudeなどのモデルを使用して、チャット機能を利用することができます。 実験的な機能としてですが、GitHub Copilotのチャットも利用できるようです。

copilotforxcode.intii.com

intitni版のチャット機能では、/runsコマンドでスクリプトを実行したり、/search コマンドで検索をすることも可能です。

/runsコマンド実行時のスクリーンショット

/searchコマンド実行時のスクリーンショット

GitHub版よりカスタマイズできる項目が多く、より多くのカスタマイズが可能なplusプラン(有料)もありますが、モデルの変更や提案までの秒数などの基本的な機能は無料プランでもカスタマイズ可能です。

intitni版の使用感

表示速度はそこまで違和感はなく、キー入力後、1秒足らずで表示されていました。

提示される内容もGitHub Copilotを使用している為、大きくずれることはありませんでした。

提案される行数が多い場合は別ウィンドウで表示されるので、提案行がそのまま表示される点が個人的にはGitHub版より操作感が良いです。

intitni版の設定手順

GitHub版の設定は比較的単純で5分から10分程度で可能な簡単な手順でしたので、ここでは設定が少し複雑なintitni版の設定手順について記載していきます。

intitni版の設定に必要なもの

  • (GitHub Copilotを使用する場合) GitHubのアカウント
  • (GitHub Copilotを使用する場合) v18以上のNode.js
  • (Codeiumを使用する場合) Codeiumのアカウント
  • (GitHub Copilot以外でチャットを使用する場合) ChatGPTなどのモデルの操作権限を持ったAPIキー

設定手順

ここでは、GitHub Copilot + OpenAI APIでの設定方法について記載します。

Codeiumなどのその他の設定方法につきましては未確認ですので下記Wikiから設定方法についてご確認ください。

copilotforxcode.intii.com

  1. ターミナル上で brew install --cask copilot-for-xcode を実行

  1. アクセス許可設定
    • アクセシビリティ
    • Xcode Source Editor
  2. 【Suggestion(GitHub Copilot / Codeium)を使用する場合】
    • GitHub Copilotの場合
      • Node.jsのパスを設定
        • 絶対パスを入力する必要があるため、注意が必要です。
      • GitHub Copilot Language Serverの設定
        • GitHubへのサインインとCopilot.Vimのインストールを行います。
        • GItHubへのサインインはStatusがOKになっていること、Copilot.Vimはバージョンが表示されていることが確認できれば設定が完了です。 ここまで設定ができればコード補完機能は使用できます。
  3. 【Chat Models(OpenAI等)を使用する場合】
    • OpenAIの場合
      • 設定画面の「Service」タブを開き、左メニューから「Chat Models」を選択します。
      • すると設定済みのモデルが表示されるので、右上にある「Add Model」をクリックします。
      • 表示されたダイアログの「Name」に任意の名前を設定し、「Format」の欄から「OpenAI」を選択します。
      • 用意しておいたOpenAIの APIキーを「API Key」で選択します。
        • 選択するには右にある鍵アイコンをクリックし、NameとAPI Keyを設定する画面が表示されるのでそちらで登録します。
          • APIキーを作成していない方でOpenAI のAPIキーを使用する方はこちらから作成ができます。
      • 右下の「Save」をクリックし保存します。 上記の設定が完了した段階で、チャット機能が使用できるようになります。
    • GitHub Copilot Chat(poc)の場合
      wikiのページ に設定手順が記載されていましたのでそちらに沿って設定します。
      • 設定画面の「Service」タブを開き、左メニューから「GitHub Copilot」を選択します。
      • 右パネルのAdvancedエリアの「Pretend IDE to be VSCode」にチェックをつけます。
      • 「Feature」タブを開き、左メニューから「Chat」を選択後、「Conversation」エリアを下記添付画像のように設定します。

      上記設定ができた段階でチャット機能が使用できるようになります。

設定後、Xcodeの「Editor」メニューの最下部に「Copilot」と表示され、エディタの右側に円が表示されていましたらintitni版が起動された状態になっています。

お勧めショートカット

README にお勧めのショートカットキーについて記載がありました。

VS CodeなどのGitHub Copilotとほぼ同じ操作感で操作可能になりますので、設定することをお勧めします。

まとめ

公式からGitHub Copilotが発表されたことで、Copilot for Xcodeの影が薄くなりそうですが、チャット機能はCopilot for Xcodeでのみ現状では使用可能な為、活用シーンはあるかと思います。

またCopilot for Xcodeの開発が停止するか心配な方がいらっしゃると思いますが、今後も継続して開発されるとのことですので、使用し続けても大丈夫そうです。

About GitHub’s CopilotForXcode · intitni CopilotForXcode · Discussion #597 · GitHub

自分のニーズに合ったものを選んでください。