🤖

iOSアプリ開発でDevinくんを使用してみた

2025/03/12に公開

はじめに

こんにちは、助太刀 iOSチームリーダーの喜多です!

今回は話題沸騰中のAIエージェントのDevinをiOSアプリ開発に活用してみたので、その結果を共有させていただきます。
devinくん

この記事で話さないこと

  • Devinの導入方法
  • Devinの使い方
  • Devinの仕組み
  • Devinの詳細

これらは公式サイトや他の技術記事を参考にしてください。

プロンプト雛形

基本的に下記の雛形を利用してSlack経由でDevinに指示を出しています。
GitHubのissueを用いる場合はissue内に下記を記載してリンクを提示してます。

プロンプト雛形
<1. 作業場所> ※必須 主にリポジトリを指定
<2. 作業内容> ※必須 具体的な作業内容を記載
<3. 仕様> 画面仕様であったり動作仕様を記載
<4. 補足> 該当のクラス(ファイル)を指定したり、既存他画面と仕様を合わせたりする場合ここに記載

試したこと

アプリビルドの実施

内容:弊社のiOSアプリのビルドをお願いしました。
結果:失敗😭
評価:DevinはLinuxベースのため、macOS専用のXcodeツール(xcodebuild)がインストールされていないのでビルドができなかった。

devinくんからのフィードバック

新規画面の実装(SwiftUIでUI実装)

内容:既にある検索画面を参考にして、新規検索画面の作成をお願いしました。
結果:失敗😭
評価:大きめのタスクだったため意図した実装にはならなかった。
devinくん指示

既存画面に仕様を追加(SwiftUIでUI実装)

内容:既にある検索画面に対して、新規の検索項目(ホームページ有無)を追加してもらいました。
結果:成功㊗️
評価:既存機能がある、かつ、指示内容が細ければ意図した実装になることが多い?

devinくん作成物

既存画面に仕様を追加(UIKitでUI実装)

内容:既にある通知画面(xibで作成)に対して、通知がまだない場合にemptyLabelを表示する仕様を追加してもらいました。
結果:成功㊗️
評価:xibに対する修正も可能なことがわかった。
devinくん指示

APIに対するドメイン層作成

内容:既存実装のPRを参考リンクとして提示し、useCase、Repository、API層の作成をお願いしました。
結果:成功?
評価:ファイル自体の作成は成功しているが、そのファイルをxcodeprojに追加はできなかった。そのため、予めファイルの枠だけ追加しておいてそのブランチに対して修正をお願いしたら成功㊗️
devinくん指示

特定の機能の実装を検索(調査タスク)

内容:既にある機能の実装クラスをピックアップしてもらった
結果:成功㊗️
評価:概ね成功。調査タスクをお願いすることも可能であることがわかった。

総評

ポジティブな点

  • 既存と似たような機能の作成、既存機能の調査に関しては概ね成功した点。
  • 特にロジック部分の作成に関してこちら側の意図した内容になることが多かったです。
  • 作業速度は圧倒的に人間より早い!
  • xibに対する修正でも簡単な内容ならば可能な点。
  • 既存機能に対する調査も可能な点。不具合の調査や実装クラスはどこなのかを確認するときに利用できる。

ネガティブな点

  • Xcodeツール(xcodebuild)がインストールできないため、ファイルの新規追加が難しい。

    • そのため新規ファイルを追加する必要がある場合は、予めファイルだけ追加しておけばその後はDevinでも可能。※追記:ビルド対象をGroupではなくFolderにすれば解決できました
  • シミュレーター及び実機を用いた確認はできないので最終的には人間の目が必要。

最後に

Devinをモバイルアプリに活用する記事があまりなく、今回はその一例としてシェアさせていただきました!
個人的にはこの性能で月数万程度ならば利用する価値は大いにあるのではないかと感じました。
今後の展望としては、実際の施策やUITestの作成にも活用していきたいと考えています。
今後もAIを積極的に開発に取り入れて、開発生産性向上に努めていきたいと思います!
devinくん褒める

助太刀では一緒に開発してくれるメンバを募集してます!
少しでもご興味を持っていただけたら下記よりお気軽にご連絡ください!

助太刀テックブログ

Discussion