IntelliJ IDEA の Code With Me を使ってペアプロしてみた

2021.08.30

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

以前から気になっていた、 IntelliJ IDEA でペアプロ・モブプロすることができる Code With Me が、先日のアップデートでIntelliJ IDEA 本体にバンドルされたようなので、実際にペアプロに利用してみようと思います。

バージョン情報

  • IntelliJ IDEA 2021.2 (Ultimate Edition)
  • Code With Me 212.4746.92 (bundled)

ライセンスはどんな感じ?

IntelliJ IDEA の Community Edition または Ultimate サブスクリプションを持っている場合は、Code With Me のライセンスは無くても利用できるようです。 Community Edition と Ultimate Edition の違いはこちらで確認できます。 主な違いとしては、Community Edition(無償) だと、セッションあたりの時間が最長30分、セッション当たりの参加可能ゲスト数が最大3人(Ultimate だと最大50人)までという制限があるようです。 また、Community Edition を利用して、Code With Me の制限の上限を上げる場合は、PremiumEnterprise といったサブスクリプションが用意されているようですので、利用用途に応じて購入することもできそうです。

なおゲストユーザー(ホストに接続するユーザー)はライセンスやJetBrainsのIDEもインストールされていなくても、初回アクセス時にセットアップされるので、特に気にしなくても大丈夫そうです。

ホストとして始める

まずはホストとして開始してペアプロするためのリンクを作成します。 メインツールバーのアイコンをクリックするか、[Tools] → [Code With Me...]をクリックして、Enable Access and Copy Invitation Link... をクリックします。

利用規約が表示されるので、内容を確認し、同意して継続する場合は I confirm that I have read and accept the terms of this User Agreement にチェックを入れて、 Continue をクリックします。

続いてゲストユーザーの権限を設定します。Read-onlyEdit filesFull access がプリセットされており、FilesTerminal などのリソースレベルで権限を設定することもできます( Custom )。 また、セッション内で音声呼び出しやビデオ呼び出し(ビデオ通話のような機能)を有効にする場合は、Automatically start voice call オプションにチェックを入れます。

権限の設定を確認後、Enable Access をクリックしてセッションを開始します。 セッションを開始すると、クリップボードにゲスト接続するための以下のようなURLがコピーされています。 このURLを接続するゲストユーザーに共有します。

https://code-with-me.jetbrains.com/XXXXXXXXXXXXXXXXXXXXXX

セッションに接続する

ホストが発行した接続URLをブラウザで開きます。開いたページに記載されているコマンドをコピーしてターミナルで実行すると、必要なソフトウェアなどのダウンロードやセットアップ(初回のみ)が実行されて、セッションへの接続がリクエストされます。

セッションへの接続をホストユーザーが許可すると、ゲストユーザーとしてセッションへ接続することができます。ここで接続ユーザーへのアクセス権限を設定することができるので、接続ユーザー毎にアクセス権限を細かく設定することもできます。

セッションへ接続することで、誰がどのファイルを編集しているか?カーソルがどこにあるか?または選択中か?などをホストユーザーとゲストユーザーで共有されます。

主要な機能

ここからは、主要な機能を解説していきます。

追従機能

他のユーザーを自分の編集作業に追従させたり、他のユーザーの編集作業に追従することができます。ファイルを編集するか、Following XXXXXXXX StopStop をクリックすることで追従を解除することができます。

完全同期モード

完全同期モードにすると、他のユーザーとファイル間の移動やカーソルを同期することができます。追従機能とにているのですが、ファイル編集時に完全同期モードの場合は、カーソルも他のユーザーと共有する(カーソルが1つになる)イメージとなります。接続ユーザーと一緒に同じ箇所の修正を実施したい場合は、こちらの機能を使うとよさそうです。

コードの補完

ゲストユーザーもコードの補完を利用することができます。普段JetBrains社のIDEを利用している人なら、ローカル開発と同じような感覚でコーディングすることができます。

コードナビゲーション

宣言への移動や使用箇所の検索、ファイル検索などコードナビゲーション機能を利用することができます。

実行とデバッグ

コードの実行やデバッグをすることができます。実行結果やデバック時のブレークポイント等も接続しているユーザー間で共有されるので、実行やデバッグをしながらコーディングを進めることができます。

ターミナルの共有

ホスト端末のターミナルを共有することができます。共有しているターミナルは shared と表示されてタブが分かれているので、共有されていることがわかりやすいです。

リモートユニットテスト

実行とデバッグと同じような機能ですが、GUIのテストランナーを実行できるのは便利です。実行結果の共有もされるので、どのテストが実行されて、結果がどうだったのかも接続ユーザー間で共有できます。

ビデオ通話

IDE上で音声通話やビデオ通話ができます。画面の共有やチャット機能もあり、他のツールを使うことなく、Code With Me 内でビデオ通話しながらペアプロ・モブプロすることができます。

さいごに

実際に実装をしている環境でそのままペアプロできるのは、とても楽に感じました。利用環境にも左右されるかと思いますが、動作もサクサク動き、ストレスなくペアプロできそうに感じました。 また、ゲストユーザーは JetBrains の IDE が無くても接続クライアントが自動でセットアップされて、すぐにペアプロに参加できるもメリットだと思いました。 JetBrains の IDE を愛用しているユーザーにとっては、ローカル開発時と遜色ないユーザー体験となり、とても使い勝手がよく、ストレスなく開発を進められそうと感じました。 ぜひ、Code With Me を利用して、ペアプロ・モブプロを実施してみてはいかがでしょうか。