モバイルエンジニアの視点からGithub Copilotを触る

このエントリはTimee Advent Calendar 2023 シリーズ1 12/21の記事です。昨日は@atantomotimeeさんの「静かなSquadの進化: エンゲージメントが高まるきっかけ」でした。


こんにちは、タイミーでAndroidエンジニアをしているはるです。

みなさんはGithub Copilotを使っていますか?私は導入していますがあまり使いこなせていません……存在しないActivityへのIntentを発行したり、変なことをしでかしてくれることが多く、まだガッツリと使うことができていません。そんな中で、周りのエンジニア(主にバックエンドエンジニア)からはとても良いぞ!と言う声が聞こえてくるので、羨ましいなーと思っているところです。

しかし、いくつかAndroidエンジニアでもGithub Copilotを活用できるシーンを発見したのでご紹介したいと思います。

Github Copilotをモバイルでも活用できるシーン

単純な置換だけでは出来ないようなリファクタリング

たとえば、Android14対応する中でActivityのメソッドからOnBackPressedDispatcherを利用した実装への変更をするケースを思い浮かべてみてください。

この場合ではGithub Copilotを上手に使うことができます。

Activityのメソッドを残したままOnBackPressedDispatcherを使った実装を書き始めると、勝手にActivity側の処理を内包したDispatcherを書いてくれます。

これは正直驚きました。Tabを押すだけで各画面のOnBackPressedDispatcherが出来上がっていくので、とても便利でした。

AndroidAPIをシンプルに叩くだけのシーン

このシーンでも、同様にGithub Copilotの恩恵に預かることができました。ほとんどAndroid Developerのドキュメント通りに書くだけ、といったシーンではとても重宝します。

このほかにもいろいろなシーンで有効活用できると思うのですが、まだなかなか発見できていません。ほかにもこう言うときに便利!といったシーンがあれば、ぜひ教えていただけると嬉しいです。

Github Copilotが苦手としているシーン

逆に、このようなシーンではうまくサジェストしてくれませんでした。

マルチモジュール構成で、他のモジュールを参照している部分

タイミーではマルチモジュール構成でAndroid版のアプリを開発していますが、この場合はまだうまく参照先のコードを見てくれないようで、正しくサジェストしてくれることは少なかったです。

どうにかして他のモジュールも参照した上でサジェストしてくれるようになって欲しいのですが、果たしてその時は来るのか……

--

これからもGithub Copilotを使い続けて、その進化に気づいていくような日常を送れれば楽しいなあと思っています。これからに期待!