AIと1日でスマホアプリを作った話——ゼンリーの夢を追ったらAppleの壁にぶつかった

開発・プログラミング

きっかけはゼンリーロス

2023年、位置共有アプリゼンリーがサービス終了しました。

ゼンリーは「友達の今いる場所がリアルタイムでわかる」アプリ。LINEで「今どこ?」と聞かなくても、開けばわかる。あの感覚が便利で好きだったんですが、終了後に試した代替アプリはどれもしっくりこなくて。

そこで思いました。「自分で作ればよくない?」と。

普段の仕事ではWindowsのレジストリをいじったりコマンドを叩く程度。スマホアプリを作るのは初めてです。HTMLもまともに書いたことがありません。でも最近のAIは強いので、Claudeに全部聞きながらやれば動くものくらい作れるんじゃないかと思って始めました。

コンセプトは決めました。

  • 名前:生存確認コンパス
  • 地図は出さない
  • 相手の方向と距離だけを3D空間で表示
  • 監視ではなく安心感がテーマ
  • 災害時の安否確認にも使えるイメージ

Node.jsのインストールから始めた

Claudeに「スマホアプリを作りたい」と伝えたら、最初に言われたのが「Node.jsをインストールしてください」でした。

Node.jsとは?
アプリやWebサービスを動かすための土台になるソフトウェア。プログラミング環境を整えるのに必要です。

インストール画面の英語の意味もわからないので、スクショを撮ってClaudeに送り、「これどう選ぶ?」と聞きながら進めました。

次に使ったのがExpo(エキスポ)というツール。

Expoとは?
スマホアプリを効率よく開発できる環境。「Expo Go」というアプリをスマホに入れると、開発中のアプリをその場で動作確認できます。アプリストアに公開しなくても自分のスマホで試せるので、初心者にはありがたい。

コードはほぼ書けないんですが、Claudeが「このファイルにこのコードを貼り付けて」と教えてくれるので、コピペでも進めていけました。

コンパス画面が動いた

数時間後、最初のアプリ画面ができました。

「生存確認コンパス」というタイトルの下にコンパスの針が出ています。針はGPSデータから計算した本物の方向を指しています。

下の「386.1 km」は東京タワーの座標を仮で登録した状態の距離です。動作確認のために適当な目標地点として東京タワーを入れていました。スマホをくるっと回すと針が動いて、目標の方向を指す。これだけでもう感動でした。

使った技術はざっくりこんな感じです。

使ったもの役割
Expoアプリの土台
GPS(スマホ内蔵)自分の緯度経度を取得
Supabase後で位置情報を共有するために使うデータベース

Supabase(スーパーベース)とは?
データをリアルタイムで送受信できるデータベースサービス。位置共有のような「自分の情報を相手に届ける」機能を比較的簡単に実装できます。

3D空間を追加した

コンパス画面はできたものの地味だったので、Claudeに「もっとSFっぽく、宇宙みたいな見た目にしたい」と相談しました。

提案されたのがThree.jsを使った3Dフィールド画面です。

Three.jsとは?
ブラウザやアプリで3Dグラフィックを表示するためのライブラリ。

コンパス画面はそのままに、新しく「フィールド」というタブが追加されました。暗い宇宙のような3D空間の中心に自分がいて、相手の位置が点で浮かぶ画面です。

地図上のピンとは違う、空間の中に相手がいるような感覚。最初に想像していたコンセプトに近い見た目になりました。

ID機能を追加して、彼女と繋いでみた

ここまではテスト用に東京タワーの座標を入れていただけ。本来やりたかったのは「友達と実際に繋がる」ことです。

最初の実装は「ルームコードを共有する」方式でした。でも毎回6桁のコードをLINEで送るのが面倒で、Claudeに相談したらID制度を提案されました。

アプリを起動すると自動でIDが発行されて、そのIDを一度教えれば次からは自動で繋がる仕組みです。

ここで隣にいた彼女に協力してもらいました。彼女のスマホにもアプリを入れてもらい、お互いのIDを登録。彼女のニックネームは「べい」で登録しています。

3D空間に青い光る点(べい)と白い点(自分)が「4 m」の距離で並んでいるのが、彼女と繋がった瞬間です。隣にいるから4mの距離。リアルタイムで2台のスマホが位置情報を共有できていました。

「べい 4m」と表示されたとき、思わず笑ってしまいました。コードもまともに書けない自分が、実際に動くアプリで誰かと繋がっている。これは本当に嬉しかったです。

ゼンリーの本丸を聞いてみた

アプリが動いた興奮のまま、本来やりたかったことをClaudeに聞きました。

「ゼンリーみたいに、バックグラウンドでずっと位置情報を取り続けることはできますか? 災害時の安否確認に使いたいイメージです」

返ってきたのは「正直に話しますね」から始まる回答でした。

技術的にはできる、ただしiOSの壁がある、と。

「1時間に1回だけ裏で位置を取る、ユーザーが一回許可すれば自動で動く形ならどう?」と食い下がっても答えは同じ。「できます、でも」と続きました。

出てきた3つの壁

壁① Expo Goでは試せない

バックグラウンド位置情報は、開発中に使うExpo Goでは動きません。実際に動かすには「スタンドアロンビルド」という本番ビルドが必要です。

壁② Apple Developer登録が必要

iPhoneで本番ビルドを動かすには、Apple Developerへの登録が必要。費用は年間$99(約1万5000円)

壁③ App Storeの審査

公開には審査があり、「なぜ常時位置情報が必要か」をAppleに説明・承認してもらう必要があります。さらにiOSは「1時間ごとの動作」を保証してくれません。省電力モードだと止まったり遅れたりします。

方法バックグラウンド費用
アプリを開いている間のみ(今の実装)無料
1時間に1回バックグラウンドで取得年$99〜
常時追跡(ゼンリー方式)年$99+審査

そして調べてわかったこと——ゼンリーは数十人のエンジニアが何年もかけて作ったアプリでした。バッテリーを食わずにバックグラウンドで動かす、ただそれだけのことに専門チームが何年も費やしている。Appleとも何度もやり合ってきた、と。

「これは1日でどうにかなるレベルじゃなかったか…」と気づきました。

1日でわかってよかった

ここで失敗を認めました。でも、1日でわかってよかったとも思っています。

半年かけてお金を使ってから気づいていたら、もっとしんどかったはずです。AIがいくら優秀でも、Appleの審査は通せないし、iOSのルールは変えられません。「作りたいもの」と「作れるもの」の間には、お金・時間・プラットフォームのルールという壁があります。

学んだこと

  • AIがあってもAppleのルールや審査の壁は変わらない
  • 「動くもの」を1日で作るのと、「世に出せるもの」を作るのは別物
  • バックグラウンド常時動作は、初心者が思いつきで作れる領域ではない
  • でも、コードを書いたことがなくても1日でアプリは動かせる

スクショ④の「べい 4m」の画面は、失敗作の記録でもあり、「初めてプログラミングで誰かに何かを届けた」証拠でもあります。完成しなかったけど、あの瞬間は本物でした。

おわりに

AIと一緒なら、コード未経験でも1日でスマホアプリを動かせる。これは本当です。

ただ、App Storeに出すには別の壁があります。

AIでできることAIでできないこと
コードを書く・教えるiOSのルールを変える
動くものを1日で作るApp Store審査を通す
アイデアをすぐ試すApple Developerの$99を払う

「スマホアプリ作ってみたい」というプログラミング初心者の方には、とりあえず1日試すのをおすすめします。何かが動く瞬間は本当に面白いので!

ただ、App Storeに出すには年$99かかるということは、最初に覚えておいてください…笑