折りたたみスマホの OPPO Find N を、自宅の Mac につながる「小さな MacBook」にするアプリを作りました。名前は Foldtop です。コードは一行も書かず、Claude Code と会話するだけで、実質1日ほどで実機で動くところまでできました。
きっかけは単純で iPhone Duo 用のMacリモートデスクトップアプリ「DuoBook」を見て、AndroidのFold機でも似たことがしてみたいなと。
Claude Codeに、「Fold タイプの Android で、折り曲げ状態で使えるリモートデスクトップアプリは作成できますか? 上面は画面、下面はキーボードとタッチパッド。MacBook 風のなるべく格好良いデザインにします。」と伝えると「できます」との回答。
端末を横向きに折ると、上の画面に Mac、下の画面に MacBook 風のキーボードとトラックパッドが自動で現れます。接続には macOS 標準の「画面共有」(VNC)を使うので、Mac 側に追加のアプリは要りません。
| 分類 | できること |
|---|---|
| ノートPCモード | ヒンジを検出して自動で上下に分割。上画面はピンチで最大 5 倍まで拡大 |
| キーボード | JIS 配列、日本語対応 |
| トラックパッド | クリック、右クリック、慣性付きの 2 本指スクロール、ドラッグ可能 |
| 接続 | 同じ Wi-Fi の Mac を自動で検出。スリープ中の Mac を起こしてから接続。切れたら自動で再接続 |
| エフェクト | フタを閉じると暗くなり、開くと起動音とキーのバックライトが点灯。閉じると外側の画面に天板風のカバー |
中身は Flutter 製の Android アプリで、Claude Codeがすべて作成しました。
やったことは、やりたいことを伝えて、実機で試して、要望を返すことの繰り返しです。Claude Code は Flutter や JDK のインストールから、ビルド、USB でつないだ端末へのインストール、画面のスクリーンショットでの確認まで自分でやってくれました。
うまくいかなかったところも、症状を伝えると Claude Code が原因を探して直してくれました。特に印象に残った 3 つです。
| 症状 | 原因 | 直し方 |
|---|---|---|
| 「かな」は効くのに「英数」キーが効かない | Mac の画面共有は、届いた文字が JIS 配列で正しく出るように Shift を付け外しする。「;」は Shift なしのキーなので、⌃⇧; を送っても ⌃; に変わっていた | JIS で Shift+; にあたる「+」を ⌃⇧ 付きで送る |
| 画面が消えてから開くとエラーになる | 画面オフの直後に、省電力のため Android がアプリの通信を切っていた(端末のログから特定) | 画面が戻ったら自動で再接続。待つ間は前の画面を薄暗く残す |
| 「近くの Mac」が一覧に出ない | Android の権限(マルチキャスト通信の許可)が足りなかった | 権限を追加 |
実用的に動くようになってから、「追加したら面白いギミックは?」と聞いてみました。折りたたみ端末のセンサーを使った案がいくつも出てきて、その中から選んで作ってもらいました。
最後に「公開しても問題ないかレビューして」と頼むと、自分では気づかなかった点を洗い出してくれました。
「配布用に整えて」の一言で、配布用の署名鍵の作成、ライセンス一覧の画面の追加、ユーザー名を含まない場所でのビルドまで済みました。APK の中身を展開して、個人情報が残っていないことも確かめてくれています。サイズも 53MB から 19MB に減りました。
FoldタイプのAndroid機とMacを使っていて、使ってみたいという方がいたら、APKファイルを置いておきますので、自己責任で試してみて下さい。(実機で試していませんが Galaxy Z Fold や Google Pixel Pro Fold シリーズでも使えると思います)
cc839dee62614156457f3896a75d35684ad792e07599e9ba8cd5f5f0af9aba9f foldtop-1.0.0-arm64.apk
Foldtop は Apple Inc. とは関係のない非公式アプリです。Apple、Mac、MacBook は Apple Inc. の商標です。
これまでなら VNC の通信方式を調べるだけで数日かかりそうです。「こんなのがあったらいいのに」というアイデアがある人は、まず「できますか?」と聞いてみるところから始めてみては?