🍲

iOS開発でAI活用の可能性を探る

に公開

日々の開発にAIを取り入れることが当たり前になってきた今、私もChatGPTをメインに、時々Claude(Sonnet 4)なども併用しながら作業を進めています。

開発環境:Xcode + Swift(iOS)
使用AI:ChatGPT、Claude Sonnet 4

コーディングはXcode中心ですが、AIとの相性はVS Codeの方が上手くいっていると感じています。

AIにさせたこと

ユニットテスト作成

実装した関数を渡すと、基本的なテストケースと条件の境界までをサクッと作ってくれる。

機能の作り方に関するアドバイス or 実装

実装で悩んだときにAIに相談できるのは本当に助かる。
メリット・デメリットの分析も優れている。

JSONからモデル&仮データ生成

他にもconvert系ツールはありますが、AIならSwiftUIプレビュー用の各テスト観点のsampleDataも一緒に出力できて便利。

モジュール全体の命名変更・リネーム

一括置換より文脈を考慮してくれるので安心。候補もいくつか提示してくれるのがありがたい。

スクショからテスト観点を洗い出し

自分でもよく動作確認のテスト項目を書いているが、見落としてしまう観点もけっこある。
スクリーンショットを見せて「どんな動作確認項目が必要か?」を洗い出すのに使えます。実際のアプリの挙動は仕様に依存するため、AIの観点に漏れがあることもありますが、参考になるだけでも助かる。

長すぎるログの要約と問題特定

ログや膨大なprint出力も、要点を抽出して「このへんが怪しいかも」と指摘してくれる。
最近はCIのログをAIに分析させてみた。

GitHub Copilotでのコードレビュー補助

PRの中身を見て「こう書くといいかも」「この変数名は曖昧かも」と提案してくれるのは地味に便利。他のレビュアーの負担も減らせる。

命名で悩んだときの相談相手

英語名・日本語訳・用途に応じた命名パターンを出してくれて、自分の頭の整理にもつながる。

技術ブログの下書きの文法・構成調整

自分でざっくり書いた内容の文法や論理構成を整えるのにも便利。

技術の説明がうまくできない時に「代弁」してもらう

知識として理解はしていても、他人に説明するのが難しい時、AIに「説明役」をお願いするとすっきり伝わる表現を提案してくれる。

関数とパラメーターのコメント補完

関数やパラメーターのコメントをAIに補足させれば、新しく実装したコードや、古いコードにパラメーターを追加したときでも、書き忘れずに済みます。

探したいファイルやクラスを洗い出す

以前、全件チェックの際には、検索やコマンドラインなどを使って探したいものを洗い出していました。ただし、実装や命名などがすべてルールに従っているわけではないため、どうしても漏れが発生します。AIに洗い出しを任せるのは便利ですが、漏れがないようにするためには、プロンプトの内容を考える必要があります。

懸念なところ

AIは確かに賢いですが、以下のような懸念点・課題もあります。

最も効く「呪文(プロンプト)」が分かりづらい

AIの出力が自分の意図とズレていることがけっこうある。
ちょっと聞き方を変えるだけで出力が大きく変わるので、「何が一番良い依頼の仕方なのか」を都度探るのが手間になることも。
なるべく詳細な情報をAIに渡せば、出力結果は良くなりますが、その入力に時間がかかってしまい、結局自分でやった方が早い。

英語とそれ以外(日本語など)で出力精度が違う?

体感的に英語の方が理解・出力が高品質なケースがある気がするが、明確な検証はできていない。

結果が思い通りにならず、結局自分でやることに

例えば「この画面に引数を一つ追加したい」といった単純作業でも、AIに任せてみたら結局時間がかかって、自分でやった方が早かった…ということが何度かある。

テストケース修正の精度が甘いときがある

エラー内容や該当コードを詳しく教えても、依存関係やコンテキストが理解されず、うまく修正されないことも。

iOS関連の実装方法が古いことがある

Platformの違いが原因かも?よくわかりませんが、AIが最新のiOSトレンドに追いついていないと感じることがある。
AIが提示した解決方法は効果があるものの、実は他にもっと優れた新機能が追加されていることもある。

ーーーーー

AIは補助役として最適。でも「完全委任」はまだ難しい
AIはすでに非常に強力な相棒です。単純な体力作業部分では圧倒的な時間短縮を実現できます。
今後AIがどれほどのことができるようになるのか楽しみです。一部の生産力が解放されれば、タスク外の開発基盤やチーム内ツールの作業にも取り組めるようになると思います。

SKIYAKI Tech Blog

Discussion