【1.5日で自作】スマホを「左手デバイス」化するアプリを、AI上司(Reviewer)とペアプロして作った話

AI関連の記事
【1.5日で自作】スマホを「左手デバイス」化するアプリを、AI上司とペアプロして作った話
DevLog
AI駆動開発 Android Python 個人開発

【1.5日で自作】スマホを「左手デバイス」化するアプリを、AI上司(Reviewer)とペアプロして作った話

2025.12.25
約 5 分で読めます

「Stream Deckは便利そうだけど、高いしデスクの場所を取る…」
「手元にあるAndroid端末を、そのままWindowsのショートカットキーとして使えないか?」

そんな思いつきから、WindowsPCを操作するスマホ用マクロパッド『Mobile Macro Pad』を開発しました。

開発期間は約1.5日
爆速で完成した理由は、ChatGPTを単なるコード生成機としてではなく、 「仕様を決める上司(Reviewer AI)」「実装する部下(Builder AI)」に分けて管理する開発手法をとったからです。

今回は、そのアーキテクチャの工夫と、AIとの具体的な協業フローについて共有します。

📱 作ったもの:Mobile Macro Pad

仕組みは「Thin Client(シンクライアント)」構成を採用しました。

Windows側(Host / 設定管理)

脳みそとなる部分です。ボタンの配置、色、ラベル、そして実行するアクション(ショートカットキー送信やURLを開くなど)を全て管理します。

Windows Host Settings Screen
Host(Windows)側の設定画面。プロパティパネルで直感的に編集可能。

ご覧の通り、グリッド上のボタンを選択すると、右側のプロパティパネルでラベル、アイコン、色、アクションを即座に編集できます。この設定はリアルタイムでJSONデータとして保持されます。

スマホ側(Client / Android)

こちらは手足となる部分です。Windowsから受け取ったJSONを元にボタンを描画するだけです。
ロジックを持たず、ボタンが押されたら「ボタンID」だけをWindowsに送り返します。

Android Client Screen
Client(Android)側の画面。マテリアルデザイン風のUI。

Windows側の設定(色や配置)が、そのままAndroid側に反映されているのがわかります。
「Disconnect」ボタンや接続ステータスの表示など、実用に必要なUIも実装されています。

💡 なぜこの構成?
スマホ側のアプリにロジックを持たせると、「ボタン配置を変えたい」と思うたびにAndroidアプリのビルド&インストールが必要になり、開発効率が落ちるからです。 この構成なら、Windows側の設定画面をいじるだけで、スマホのUIが即座に変わります。

🤖 開発プロセス:AI上司と部下の分業

たった1.5日で終わらせるために、「AI駆動開発(V-Model)」という手法を取り入れました。

1. 役割分担

私はコードを書きません。私の仕事は「AI同士の会話の管理」と「動作確認」です。

私(PM)

「こういうUIにしたい」「ここが使いにくい」と要望を出す。最終テスト担当。

Reviewer AI

設計・審査担当。要望を噛み砕き、整合性の取れた「実装指示書」を作る。

Builder AI

実装担当。指示書だけを読み込み、無心でコードを書く。

2. UI微調整の「勝利の方程式」

一番時間がかかる「UIの微調整」は、以下のように進めました。

  1. :「ボタンの間隔が狭くて押しづらい。もっとマテリアルデザインっぽく、いい感じにして」と雑に投げる。
  2. Reviewer AI:「では、Paddingを8dpから16dpへ、Elevation(影)を追加し、Ripple Effect(波紋)を入れる仕様にします」と具体的なパラメータを含む指示書を出力。
  3. Builder AI:その数値通りにCSS/Kotlinを書く。

この「指示書を挟む」工程が重要でした。いきなりコードを書かせると修正のたびに別の場所が壊れる(デグレ)のですが、指示書で仕様を固めてから実装させると、一発で通ることが多かったです。

⏱️ 1.5日間のタイムライン

Day 1 午前:要件定義とプロトタイプ

通信部分(Socket/HTTP)の実装。スマホから「A」を送ってWindowsでメモ帳に「A」が出るまで。

Day 1 午後:JSONスキーマの設計

「どんなJSONを送れば、スマホ側でボタンを動的に生成できるか?」をReviewer AIと壁打ちして決定。

Day 2 午前:UIの作り込み(AIの見せ場)

グリッドレイアウトの調整、色設定の反映。Reviewer AIにデザインレビューをさせながら修正。

Day 2 午後:機能結合・テスト

プロパティパネルの実装。実機で動かしながら、遅延や連打対策の調整。

UI Adjustment Process
スロット未選択時の画面。シンプルで分かりやすいUIを目指しました。

🛠️ 技術的な工夫(ハマりポイント)

AI任せにせず、人間が判断したのは以下の点です。

1. JSONでUIを語る

以下のようなJSONをWindowsから投げるだけで、Android側がGrid Layoutを動的生成するようにしました。

{ “id”: “btn1”, “label”: “Copy”, “color”: “#FF0000”, “row”: 0, “col”: 0, “action”: “CTRL+C” }

2. 127.0.0.1 問題

エミュレータならlocalhostで通じますが、実機(Wi-Fi)だと繋がりません。Windows側でQRコードを表示し、スマホで読み取って接続する仕様にしました。

📝 まとめ

今回の開発で一番の収穫は、アプリそのものより「Reviewer AI(AI上司)の有用性」でした。

  • 雑な要望を、実装可能なスペックに変換してくれる。
  • 「その変更をすると、既存の〇〇機能と矛盾しますよ」と警告してくれる。

1.5日で自分だけの左手デバイスが作れる時代。みなさんも、余っているスマホがあったらぜひ挑戦してみてください!

© 2024 AI Driven DevLog. Created with V-Model v3.1

コメント

タイトルとURLをコピーしました