1. すでに動いている
TokiQRのソースコードを改めて見たとき、すでにPWA対応が完了していることに気づいた。manifest.jsonが存在し、service-worker.jsが登録されている。index.htmlとplay.htmlの両方で、Service Workerのregistration処理が実行されている。
manifest.jsonの中身はこうだ。アプリ名「TokiQR」、表示モードstandalone(ブラウザのアドレスバーが消える)、テーマカラーは#2563EB、ポートレート固定。512pxと180pxのアイコン。ショートカットとして「QR生成」。
つまり、Androidなら「ホーム画面に追加」でネイティブアプリのように使える。iPhoneならSafariの共有メニューから同様の操作ができる。デスクトップのChromeでもインストール可能だ。どのプラットフォームでも、すでに動いている。
「マルチプラットフォーム対応しますか?」——もうしてあった。
2. 三つの選択肢
Webアプリをネイティブアプリのように配布する方法は、大きく三つある。
Electron。Chromiumを丸ごとバンドルして、デスクトップアプリとして配布する。VS CodeやSlackが採用している。だが、実行ファイルは100MBを超える。QRコード1枚に2,953バイトを詰め込む設計思想で作られたプロジェクトに、100MBのランタイムは似合わない。
Tauri。Rust製の軽量フレームワークで、OS標準のWebViewを使うためバンドルサイズが小さい。技術的には良い選択肢だ。だが、デスクトップアプリとして配布する必要性がそもそもない。TokiQRの利用シーンは、スマートフォンでQRコードを読み取る場面だ。
アプリストア。Google PlayとApple App Store。最も広いリーチを持つ配布チャネル。ストア検索で新しいユーザーに見つけてもらえる。だが、ここには維持費がかかる。
3. 維持費という断層
Google Play Storeへのデベロッパー登録は$25の一時金。Apple App Storeは年間$99。Appleの方は毎年の支払いを止めた瞬間、アプリはストアから消える。
$99は大した金額ではない。だが問題は金額の大小ではない。「毎年払い続けなければ存在し続けられない」という構造そのものが、トキストレージの設計思想と相容れない。
トキストレージは、ランニングコストゼロで1000年持続する保管を設計している。GitHub Pagesは無料、ドメインすらカスタムドメインを使わずgithub.ioで運用している。すべては、維持費が途絶えてもサービスが死なないようにするためだ。
その設計思想で作られたプロジェクトが、年間$99のサブスクリプションに依存する配布チャネルを選ぶことは、矛盾だ。
維持費がかかるということは、
支払いが止まった瞬間に消えるということだ。
1000年残すプロジェクトに、その選択肢はない。
4. アプリストアの不在が失うもの
公平に見れば、アプリストアに出さないことで失うものもある。
まず、ストア検索での発見可能性。「QRコード」「音声保存」で検索したユーザーがTokiQRを見つける確率は、ストアに出していれば高くなる。
次に、信頼感。「App Storeにある=審査を通った」という暗黙の信用がある。特に日本のユーザーは、ブラウザだけで完結するサービスよりも、アプリストアからインストールしたアプリの方を信頼する傾向がある。
だが、TokiQRのユーザー導線を考えると、この損失は限定的だ。TokiQRの主な利用シーンは、QRコードを読み取って再生すること。ユーザーはQRコードからURLにアクセスし、play.htmlで音声や画像を受け取る。アプリストアで検索してTokiQRを見つけるユーザーは、ほぼいない。入口はストアではなく、QRコードそのものだ。
5. PWAという第四の道
PWA(Progressive Web App)は、Electron・Tauri・アプリストアのいずれとも異なる第四の配布方法だ。
配布コストはゼロ。GitHub Pagesにデプロイするだけで、全プラットフォームに配信される。審査もなければ、登録料もない。アップデートはHTMLを更新するだけで即座に全ユーザーに届く。アプリストア経由では、審査に数日かかることもある。
オフライン対応もService Workerで実現済みだ。一度アクセスすれば、ネットワークが切れてもアプリは動く。これはアプリストアのネイティブアプリと同じ体験を、Webの仕組みだけで実現している。
iOSのPWAには制限がある。プッシュ通知はiOS 16.4まで対応していなかった。バックグラウンド実行にも制約がある。だが、TokiQRにプッシュ通知は不要だし、バックグラウンド処理も必要ない。QRコードの読み取りと再生——それだけができればいい。PWAの制約は、このプロジェクトにとって制約にならない。
6. 配布戦略はポリシーで決まる
技術的な最適解と、プロジェクトとしての最適解は異なる。
技術的には、アプリストアに出すことは可能だ。Google PlayにはTWA(Trusted Web Activity)というPWAラッパーがあり、最小限のコード変更で出せる。Apple App Storeは「Webサイトのラッパーアプリ」をリジェクトする傾向があるが、不可能ではない。
だが、プロジェクトとしての問いは「できるか」ではなく「やるべきか」だ。
トキストレージのポリシーは明確だ。ランニングコストゼロ。毎月・毎年の支払いが発生するサービスには依存しない。GitHub Pages——無料の基盤の上に成り立っている。この原則を破る理由が、アプリストアでの発見可能性だけでは、割に合わない。
「いずれユーザーが増えて『アプリないの?』という声が出てきたら検討する」——それが当初の結論だった。だが考え直した。声が出てきたとしても、答えは同じだ。「ブラウザでお使いいただけます。ホーム画面に追加すれば、アプリと同じように動きます。」
ポリシーは、検討の余地がないから
ポリシーと呼ぶ。
7. ストアフロントなき配布
アプリストアは、ソフトウェアの配布における「店舗」だ。棚に並べてもらい、検索で見つけてもらい、レビューで信頼を積む。そのビジネスモデルの対価として、登録料と手数料を払う。
トキストレージは店舗を持たない。QRコードそのものが配布チャネルだ。墓石に刻まれたQRコードを読み取れば、そこに音声がある。記念碑のQRコードをスキャンすれば、そこに画像がある。ストアフロントを経由する必要がない。
これは、中間流通の排除と同じ構造だ。プラットフォームを介さず、QRコードからユーザーに直接届く。中間に誰もいない。だから維持費もかからない。だから1000年続く。
最良の配布チャネルは、
維持費なしで1000年届き続けるものだ。