3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIで変わった開発現場:モバイルエンジニアが Web アプリを一人で作った話

Last updated at Posted at 2025-12-15

こんにちは、SENSYN ROBOTICS でモバイルエンジニアをしている @leohoo です。
この記事は SENSYN ROBOTICS Advent Calendar 2025 の16日目の記事です。

はじめに

社会インフラ DX の現場では、スピードとプロトタイピング能力が重要です。
現場の課題を素早く理解し、技術で解決策を提示する——その繰り返しの中で、私たちは日々開発を行っています。

2024 年から 2025 年にかけて、開発現場に大きな変化が訪れました。
「実装する」という言葉の意味が、根本的に変わりつつあるのです。

本記事では、ChatGPT、Gemini、Claude Code、GitHub Copilot といった複数の AI ツールを日常的に活用しながら開発を行っている私の経験をもとに、AI 時代の開発スタイルの変化と、現場でのリアルな活用方法をご紹介します。

実装の定義が変わった

少し前まで、「実装する」とは「自分でコードを書く」ことでした。
しかし今、私にとっての実装は次のように変化しています:

  1. 仕様を Markdown で明確に書く
  2. AI と議論して仕様を固める
  3. AI に実装させる
  4. AI にレビューさせる
  5. 人間が最終判断する

この変化は単なる生産性向上ではありません。
開発プロセスそのものの再設計につながっています。

私が使っている AI ツール

現在、次のツールを併用しています:

チャット型 AI

  • ChatGPT - 仕様議論、アイデア出し
  • Gemini - 仕様議論、アイデア出し、UI 生成

CLI 型 AI ツール

  • gemini-cli - 仕様書からコードの自動生成、コードレビュー
  • Claude Code - 仕様書からコードの自動生成、PRの作成、レビュー指摘事項の対応

IDE 統合型 AI ツール

  • GitHub Copilot (VS Code Extension) - リアルタイム補完、コードの自動生成

Github workflow

  • GitHub Copilot PR Review - 自動コードレビュー

重要なのは、単一の AI に頼らず、場面に応じて使い分けている点です。
仕様を練るフェーズ、実装するフェーズ、レビューするフェーズ——それぞれに最適なツールを選ぶことで、開発の質とスピードが大きく向上します。

Copilot と CLI ツールの使い分け

VS Code Copilot の強み

  • ファイルを自由に開け、編集できる
  • 差分の確認が容易
  • リアルタイムなコード補完

CLI ツール(gemini-cli / Claude Code)の強み

  • スクリプトや外部ツールとの柔軟な連携
  • スマホからでも開発を継続できる
    • SSH 経由で実行中のセッションに接続
    • PC で開始した実装タスクを、移動中にスマホから確認・指示
  • Claude Code の特徴: 目的達成のために必要なスクリプトを自動生成

特に Claude Code は、「この機能を実装したい」という要求に対して、必要な調査、スクリプト作成、実装までを一貫して行ってくれる点が強力です。

例えば、仕様理解するために大きな JSON ファイルの解析が必要な場合:

  • gemini-cli: 2000 行ずつ自力で読み込もうとする
  • Claude Code: Python スクリプトを自動生成して効率的に解析

このように、タスクに応じて最適なアプローチを自動選択してくれます。

AI にコードを書かせている場面

主に次のような用途で活用しています:

  • 新規機能の実装 - 最も頻度が高い
  • ドキュメントの生成・更新 - README、API ドキュメントなど
  • コミットメッセージの生成 - 変更内容の要約
  • PR サマリの生成 - レビュアーへの説明文

一方で、リファクタリングについては期待値を下回る体験もありました。
ただしモデルの進化速度を考えると、数ヶ月後には改善されている可能性が高いため、定期的に再評価しています。

「AI すごい」と感じた瞬間

最も衝撃的だったのは、gemini-cli に Figma の画面キャプチャを渡しただけで、Flutter の UI をほぼ完璧に生成したときです。

ワークフロー: Figma → gemini-cli → .dart コード

  1. デザイナーが作成した Figma 画面をスクリーンショット
    • 現時点では Figma に直接アクセスできないため、画像として保存
  2. gemini-cli に画像を渡して「この画面を Flutter で実装してください」と依頼
  3. 数分後、レイアウト・色・フォントサイズまで忠実に再現された UI コードが完成

これまで数時間かかっていた UI 初期実装が一気に終わってしまい、本当に驚きました。
実務レベルで "UI 実装の爆速化" を体感した瞬間です。

AI を使っていて困ったこと

もちろん、万能ではありません。

問題: 未知の技術領域でのバグ

  • 自分が深く理解していない技術領域で、AI がバグのあるコードを生成
  • AI 自身もその領域に詳しくないため、自力で解決できない
  • 自分もサポートできず、詰んでしまう

解決策: AI を「読解パートナー」として使う

AI にコードを読ませて説明させると、問題が見つかることも多いことに気づきました。

既存コードについて質問すると、自分では見落としていた問題点や改善の余地が見えてきます。
また、デバッグのために一時的なエントリーポイントを追加して動作確認するといった作業も、AI に依頼すれば素早く対応してくれます。

つまり AI を実装ツールだけでなく、デバッグツールとして使うという新しいスタイルが自然と生まれています。

AI 導入後の開発フロー

私の開発スタイルは次のように変化しました:

① 詳細な仕様書を Markdown で書く

AI にコードを書かせるときは、曖昧さを残さない仕様書が必須です。
ChatGPT や Gemini と対話しながら仕様を議論し、Markdown で文書化します。

② 仕様書を CLI 型 AI ツールに渡して実装させる

 > @SPEC.md の内容に基づいて、XXXの機能を実装してください

CLI 型 AI ツールが仕様に基づき、必要なファイルを生成・編集していきます。

③ GitHub Copilot のレビューで品質担保

PR を作成すると、Copilot が自動的にレビューコメントを付けてくれます。
他のエンジニアのコードレビューと合わせて、品質を確保しています。

④ gh コマンドで AI に PR を読ませる

> check review comments in pr#3 using gh command

このように、CLI 型 AI ツールとのハイブリッド開発が標準化しつつある実感があります。

複数 AI を組み合わせる: AI 時代のペアプロ

実際に次のような使い分けをしています:

例えば:

  • Claude Code でPRを作成
  • Gemini でコードレビュー

または:

  • Claude Code (Opus 4.5) で実装
  • Claude Code (Sonnet 4.5) でコードの問題点を指摘

これは AI 時代のペアプログラミングとも言えるワークフローです。
一方の AI が書いたコードを、もう一方の AI が客観的にレビューすることで、品質が向上します。

運用ルール: AI が強力だからこそ

AI の生成速度が速すぎるため、強めのルールを設定しています。

ルール 理由
AI が書いた PR を人間の Approve なしで
絶対にマージしない
・最終判断は人間が行う
・AI はあくまでパートナー
人間が理解できないコードは
絶対に Approve しない
・メンテナンス性を維持するため
・わからないコードは負債になる
AI 出力を丸飲みせず、
理解できない時はAIに説明を求める
・学習機会を失わないため
・AI に依存しすぎない

むしろ今は、人間がボトルネックになりつつある感覚すらあります。
AI の生成スピードに、人間の理解と判断が追いつかないのです。

AI コーディングの実践 Tips

現場で学んだポイントをまとめます:

1. 仕様は必ず Markdown で文書化

複雑な仕様はチャットでの指示ではなく、ファイルとして残すことで:

  • AI に正確に伝わる
  • 後から見返せる
  • チームで共有できる

2. 大きいタスクは AI にプランニングさせる

> この機能を実装するための段階的なプランを作成してください

AI にフェーズ分割させることで、実装の見通しが立ちます。

3. プロジェクト固有の方針を共有

以下のファイルを用意しています:

  • GEMINI.md - Gemini 向けのガイドライン
  • CLAUDE.md - Claude Code 向けのガイドライン
  • copilot-instructions.md - Copilot 向けのガイドライン

これらのファイルには次のような内容を記載しています:

プロジェクトコンテキスト

  • プロジェクトの目的と技術スタック
  • ディレクトリ構造とファイルの役割
  • 使用している主要ライブラリとバージョン

コーディング規約

  • 命名規則(変数名、関数名、クラス名)
  • インデントやフォーマットのルール
  • コメントの書き方

具体的な指示

  • 使用すべき API やパターン
  • エラーハンドリングの方法
  • ログ出力の形式

制約事項(やってはいけないこと)

  • 使用禁止のライブラリやパターン
  • セキュリティ上避けるべき実装
  • パフォーマンス上問題のある書き方

4. AI を "自律エージェント" ではなく "実装パートナー" として扱う

AI に全てを任せるのではなく、対話しながら一緒に作り上げていく姿勢が重要です。

AI から学ぶ

AI を使うことで、学習機会が自然に増える点も見逃せません。

例えば、Claude とのやり取りの中で、git push --force-with-lease の存在を初めて知りました。
--force の代わりに使うことで、他人の変更を誤って上書きするリスクを減らせるコマンドです。

AI は実装相手であり、学習相手でもあるのです。

最大の変化: 領域を超えた挑戦が可能に

AI が現場にもたらした最大の変化は、次の二点です:

1. 試行回数の爆発的増加

実装コストが下がったことで、仕様レベルでの試行錯誤までできるようになりました。
「とりあえず実装してみて、動かして確認する」サイクルが圧倒的に速くなっています。

2. 不得意な技術領域への挑戦が容易に

私はモバイルエンジニアですが、AI の助けを借りて Frontend / Backend / Terraform / Kubernetes を含む Web アプリ一式を一人で作りきることができました。

構成例

  • Frontend: Vuetify / Nuxt
  • Backend: Node.js / Express
  • Infrastructure: Terraform (Azure)
  • Container Orchestration: Kubernetes
  • CI/CD: GitHub Actions

以前なら各領域のエンジニアとチームを組む必要があった規模の開発を、一人のモバイルエンジニアが完遂できたのです。

これは単なる生産性向上ではありません。
エンジニアの定義そのものが変わりつつあるのだと実感しています。

LLM の進化速度

最後に、AI 時代の開発で最も実感していることを共有します。

LLM モデルが進化する速さ。以前できなかったことが、突然できるようになる。

数ヶ月前に「これは AI には無理だ」と思っていたタスクが、新しいモデルでは当たり前にできてしまいます。
このスピード感こそが、開発スタイルをさらに加速度的に変えていく原動力です。

だからこそ、定期的に新しいツールや手法を試すことが重要になっています。

まとめ

本記事では、複数の AI ツールを組み合わせた開発の実践例をご紹介しました。

重要なポイント

  • AI は "コード生成ツール" ではなく "開発パートナー"
  • 仕様 First → AI 実装 → AI レビュー → 人間判断 のフロー
  • CLI 型 AI ツールと IDE 統合型 AI ツールのハイブリッド運用
  • 複数 AI による相互レビュー
  • 学習と実装が同時に進むワークフロー

社会インフラ DX の現場では、スピードと柔軟性が求められます。
AI ツールを効果的に活用することで、モバイルエンジニアが Web アプリを一人で構築できる時代になりました。

AI 時代のコーディングは、すでに "新しい当たり前" になりつつあります。

おわりに

AI 時代の開発は、エンジニアに新しい可能性を開いています。
モバイルエンジニアが Web アプリを一人で構築できる——これは単なる生産性向上ではなく、エンジニアのあり方そのものの変化です。

かつて「専門性」とは、特定の技術領域を深く掘り下げることを意味していました。
しかし今、AI をパートナーとして活用することで、専門性を保ちながら他の領域にも挑戦できる時代になりました。
「深さ」と「広さ」を両立できる——これが AI 時代のエンジニアの強みです。

重要なのは、AI に仕事を奪われるのではなく、AI を使いこなすスキルを身につけることです。
仕様を明確に言語化する力、AI の出力を正しく評価する力、そして最終的な判断を下す力——これらの「人間にしかできないこと」の価値が、むしろ高まっています。

本記事が、AI 時代の開発スタイルを考える一助になれば幸いです。


明日の Advent Calendar もお楽しみに!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?