🤖

Copilotを業務で使って得た教訓

に公開

Copilotを業務で使って得た教訓

ついに我が職場にもCopilotがやってきました。私の職場ではAndroidアプリ開発をしているのですが、業務で使っていく中である失敗をしてしまいました。今回の記事では、業務でCopilotを使って得た教訓を紹介します。

使用環境

私が業務で使っているCopilotの環境は以下の通りです。

  • Android StudioのプラグインにCopilotをインストールして使用
  • CodeXモデルを使いたい時はVS Codeから呼び出して使用
  • 推しモデル:Claude Code Sonnet 4.5(モデルの中で一番実装理解力があると感じています)

WebView真っ白事件:2日間の格闘

事件の経緯

Jetpack Composeで作成している画面にAndroidViewを差し込んで、その上にWebViewを実装していました。特殊なログイン方法が必要だったためです。

この時、Copilotを使ってコードを生成しました。コンパイルエラーもなく、一見問題なさそうに見えました。

問題発生

ところが、実際に動かしてみるとWebViewが真っ白になっていました。

試行錯誤をあれこれ:

  • Viewの高さを変えてみたが、効果なし
  • AIに原因を考えさせても解決策が見つからない
  • エラーログを確認しても何も出ない

こうした状態で残業も込みで手こずってしまい、2日間を浪費してしまいました。

解決への道のり

3日目の朝、ふとComposeのコードを見ていると、原因があっさりと判明。

本来であれば実装しなくてもよい値をUI側に持たせていて、尚且つそれをログインのWebViewで参照し続けていたため、真っ白画面になっていることが発覚しました。

その値を削除し、本来参照されるべきだった値をViewModelから引き込んだら一発解決!

本当にあっさりしていました。

真っ白事件から得た教訓

この失敗から、以下のような教訓を得ました。

1. アンチパターンを知ることの重要性

UIとロジックは分けます!

また、ライフサイクルのことを頭に入れて実装することが大切です。基本的なアーキテクチャの原則を守ることで、今回のような問題を未然に防げるようになるでしょう。

2. 生成されたコードの理解

コードが生成されたら、コードで使っているメソッドを必ず調べます!

  • Android Studioの場合、Cmd + クリック(Windowsの場合はCtrl + クリック)でそのメソッドが定義されているファイルにジャンプ🪽
  • そこに説明が書いてあるので、必ず目を通しましょう

3. 実装の意図を確認する

とにかく「なぜその実装になったのか」を質問することが重要です。要領を得なければ、コミットを控えましょう

とはいえ、あの「自信満々な回答」を疑うことはなかなか難しいですが。

4. 公式ドキュメントを読む

初めて触るAPIなどは公式のDeveloper Documentを理解できるまで読みましょう。今回のように中身を理解できないままの実装は、一番遠回りになります。

責任を持つのはPull Requestを作る「人」

この事件を通して、最も重要な教訓を得ました。

AIにコード生成させても、結局Gitに残るのはエンジニアの名前です。AIは手伝ってくれますが、責任を持つのは「あなた」です。このことを改めて叩き込まれました。

賢いものを相手にする時は、自分も賢くならなくてはなりません。そのためには、人間も知識と経験をこれまで通り積む必要があると今回の事件が教えてくれました。

まとめ

Copilotは非常に便利なツールですが、生成されたコードをそのまま使うのではなく、以下のことを心がけましょう:

  • 生成されたコードの意図を理解する
  • 使用しているメソッドやAPIの公式ドキュメントを確認する
  • アーキテクチャの原則(UIとロジックの分離など)を守る
  • 最終的な責任は自分にあることを忘れない

AIと共に開発する時代だからこそ、人間側の知識と経験がより重要になっていると感じています。

Discussion