0
2

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】設計書から一発でアプリが完成した日。Android開発者が実感した「個人開発のパラダイムシフト」

0
Posted at

はじめに

組み込み開発や通信プロトコルの解析現場で、以下のような作業に頭を悩ませたことはありませんか?

「ログに出力された 0xAA0F という16進数。これ、構造体のビットフィールドに当てはめると、各フィールドの値って10進数でいくつになるんだ…?」

通常の関数電卓やプログラマー電卓は、HEX/DEC/BINの基数変換まではサポートしてくれても、**「任意のビット幅で区切ったフィールドごとのリアルタイムデコード」**まではやってくれません。私はかつて組み込みエンジニアとして働いていた頃、データシートのレジスタマップと睨めっこしながら、目視やExcelの自作シートで手計算をしていました。この「地味だけど絶対にミスが許されない作業」は、多くのエンジニアにとって大きな負担になっているはずです。

「手元(手のひらの上)のスマホで、複数の構造体を瞬時に切り替えながら検証できる電卓があれば、現場のミスも手間も劇的に減らせるのに」

そんな当時の課題感を解消すべく、この度**「BitField Calc - レジスタ解析・ビットフィールド電卓」**というAndroidアプリをローンチしました。

本記事では、このアプリの開発において**「生成AIを徹底的に上流工程(要件定義・設計)の相棒として使い倒し、実装コードをほぼ1発で出力させたプロセス」と、その過程で実感した個人開発における決定的なパラダイムシフト**について共有します。


1. AIとの壁打ちによる「超具体的」な仕様化プロセス

私はAndroidアプリの開発を14年ほど続けていますが、今回の開発ではじめて「自分でコードを書く」という行為をほぼ手放しました。その代わりに注力したのが、AIとの徹底的な壁打ちによる上流工程の具体化です。

単に「ビットフィールド電卓を作って」と指示するのではなく、構想段階からAIと議論を重ね、以下の3つのドキュメントへ段階的に落とし込んでいきました。

① 要件定義書への落とし込み

まずは背景にある課題から、アプリのコンセプトを「手元で完結する、複数構造体を瞬時に切り替え可能な組み込みエンジニア用レジスタ解析電卓」と定義。Android 15のEdge-to-Edgeへの対応や、現場での視認性を重視したフラットデザインの採用、起動時認証を排除した即時利用性などの非機能要件を固めました。

② 機能仕様書への落とし込み

次に、AIに対して以下の観点を網羅するように具体的に指示を出しました。

  • 目的・機能概要
  • 画面一覧・画面遷移図
  • 各画面レイアウトのイメージ(ASCIIアートによる可視化)
  • 各画面の機能詳細(ビットグリッド操作、リアルタイム相互変換など)
  • 機能ごとの処理フロー(数値入力時の同期フローや、構造体削除時のUndoフロー)
  • 入力・出力データ仕様(HEX/DEC/BINの最大文字数や、エクスポート用JSONスキーマ)
  • DBテーブル定義(Room用の structures / fields テーブルの一対多の関係)
  • 例外処理・エラーハンドリング(オーバーフロー時の薄赤インライン警告など)

これにより、単なる「アイデア」だったものが、挙動の隅々まで定義された「仕様」へと昇華されました。

③ 基本設計書への落とし込み

さらに、これをAndroidの標準的なアーキテクチャに落とし込むため、以下の具体的な制約を設けて設計書を生成させました。

  • Android推奨のMVVMアーキテクチャの適用
  • Single Activity / Multiple Fragment 構成
  • Mermaid記法によるクラス関係図の作成(関係性が一目で分かるよう、クラス名のみでシンプルに表現)
  • クラス名と日本語名(役割・責務)の対応表の作成
  • 各クラスの仕様定義(責務、概要、および各メソッド名と機能概要まで詳細化)

例えば、以下のようなディレクトリ構成やクラス関係性が、コードを書く前の段階で完全にクリアになっていました。

com.kouichi.highcom.bitfieldcalc/
├── data/       # Room DB, Entity, Repository
├── domain/     # BitCalculator (Pure Kotlinによるビット演算ロジック)
└── ui/         # MainActivity, 各Fragment, ViewModel, Composeコンポーネント

2. 衝撃の「一発実装」:コードを見る必要すらなかった開発体験

こうして出来上がった**「要件定義書」「機能仕様書」「基本設計書」の3つを、そのままコンテキスト(前提知識)としてAIに与え、実装指示を出しました。**

結果は、驚くべきものでした。

書き出されたKotlinコードやJetpack ComposeのUIコンポーネント、Roomのデータアクセスオブジェクト(DAO)は、ほぼ1発でこちらの意図通りに動作したのです。

ビルドエラーすらほとんど起きず、アプリの動作を確認したところ、仕様書に定義した通りの挙動(ビットをトグルした瞬間のリアルタイムデコード、削除時のUndoスナックバー、入力エラー時のインライン警告など)が完璧に再現されていました。

あまりにもスムーズに意図した挙動が実現されたため、「バグを探すために実装コードを細かく凝視する」というステップすら必要ありませんでした。 14年間、一行一行コードを書いてきた身としては、これまでにないほどの衝撃と、ある種の爽快感を覚える体験でした。


3. 実感したパラダイムシフト:開発言語が書ける価値の低下と、これからの「技術力」

今回の開発を通じて、個人開発者として決定的なパラダイムシフトを実感しています。

「特定の開発言語でコードが書ける」ということ自体の価値は、今後大幅に下がっていく。

AIがこれほど正確にコードを出力できるようになった時代において、タイピングの速さや、構文を暗記していることの優位性は失われつつあります。しかし、だからといって「開発者に技術力が不要になるか」と言われれば、答えは完全にNOです。

むしろ、これからの時代に求められる「本当の技術力」は、より上流の工程へとシフトしています。

  1. 要件定義力・仕様定義力:
    「何を作りたいか」を、AIが誤解なく解釈できるレベルまで厳密かつ具体的に言語化する能力。
  2. アーキテクチャ設計力:
    拡張性、保守性、テストのしやすさを考慮し、MVVMやClean Architectureといった最適な構造をAIに指示・選択できる能力。
  3. ドメインに対する深い理解と解像度:
    これが最も重要です。今回で言えば、「組み込みエンジニアがレジスタ解析で何に困っているか」「エンディアンやビットオーダー(MSB/LSB)の切り替えがなぜ必要なのか」という、現場のドメイン知識(課題の解像度)がなければ、あの緻密な仕様書をAIから引き出すことは不可能でした。

問題を正確に「課題」へと落とし込み、それを解決するための構造をデザインする。この「上流工程における技術力」こそが、これからのエンジニアのコアコンピタンスになると確信しています。


4. アプリ紹介:「BitField Calc」のご案内

そんなAIとの最高のコラボレーションによって生まれた「BitField Calc」は、組み込みエンジニアの皆さんの手元を支えるためのこだわりを詰め込んだアプリです。

主な機能

  • 32/64bit ビットグリッド表示: タップで直感的にビットを反転(トグル)操作。
  • リアルタイム相互変換: HEX / DEC / BIN のいずれかを入力すれば、すべての表示が即座に同期。
  • 動的ビットフィールドデコード: ユーザー自身が定義した構造体(レジスタマップ)に基づき、任意のビット幅で数値を切り出し、符号設定(Signed/Unsigned)に応じた値をリアルタイムに同時リスト表示。
  • 大規模構造体管理: インクリメンタル検索、お気に入り(ピン留め)によるタブ常駐、プロジェクトごとのタグ分け機能により、多くの構造体もストレスなく運用。
  • セーフティ設計: 現場での即時利用性を重視し、起動時の会員登録や認証を排除。データは完全にローカルで暗号化・保持されます。
  • 動作環境設定: エンディアン(Big/Little)やビットオーダー(0始まりがMSB/LSB)の表記切り替えに完全対応。

デザインのこだわり

現場での利用に耐えうるよう、コントラストを意識し、無駄なグラデーションを排除したMaterial Design / フラットデザインを採用しています。Android 15のEdge-to-Edgeにも完全対応し、画面を広く、すっきりと使えます。

手元でサクッとレジスタ値を解析したいエンジニアの方は、ぜひダウンロードして日々の業務にお役立てください!

👉 Google Play ストアで「BitField Calc」をダウンロード
BitFieldCalcStoreImage.png


おわりに

AIは、私たちの「コードを書く手」を解放してくれました。その結果、私たちは「プロダクトの本質的な価値は何か」「どうすればユーザーの課題を解決できるか」という、よりクリエイティブな思考に時間を割くことができるようになっています。

この記事が、これからアプリ開発にAIを取り入れようとしている個人開発者の方や、AI時代の生存戦略を模索しているエンジニアの方の参考になれば幸いです。

0
2
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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?