世界を動かす技術を、日本語で。

Appleは私の音声入力アプリをアクセシビリティAPIの使用理由で却下しました

概要

  • WhisperPad は指の痛みから生まれたMac用音声入力アプリ
  • Appleのガイドライン問題で App Store版と直販版 の2バージョンに分割
  • App Store版 はクリップボード経由、 直販版 は自動ペースト機能搭載
  • アプリ開発・配布の過程で 技術的な知見と学び を獲得
  • どちらのバージョンも 実用的な選択肢 として提供中

WhisperPadを作った理由

  • 2024年秋、指の関節痛 が悪化し、長時間のタイピングが困難に
  • ビデオゲームや10年のIT業界経験 による蓄積された負担
  • 人間とコンピュータのインタラクションに関心、 大学院進学を検討
  • 最大の不安は 手の痛みで作業スピードが落ちること
  • 既存の音声入力は 修正のたびに手を使う必要があり非効率
  • WhisperPad はMacのメニューバーに常駐し、ショートカットで音声入力・即時テキスト化
  • ローカル処理のみ でプライバシーを守り、手の動作を最小限に

Appleによるリジェクトと対応

  • App Storeのガイドライン2.4.5 違反でアップデートがリジェクト
  • WhisperPadは アクセシビリティAPI を利用し他アプリへテキスト自動挿入
  • 以前は同じ仕様で承認されていたが、今回は却下
  • Appleの内蔵音声入力は 精度不足と修正の手間 が課題
  • 市場調査はせず、 自分で作る方針 で開発を継続
  • ユーザーからの要望を受けて 有料化、しかし再度リジェクト
  • アクセシビリティ用途であることを訴え て再審査を依頼、しかし再度却下

バージョン分割の決断

  • App Storeのルールに準拠 したバージョンと、 直販によるフル機能版 の2系統に分割
  • App Store版は クリップボード経由でCommand-Vによる貼り付け が必要
  • 手の動作を減らす設計思想 からは妥協だが、App Storeでの発見性を優先
  • 直販版は カーソル位置へ自動ペースト を実現
  • Appleのガイドライン が曖昧で、独自解釈が必要だった点

直販版リリースと技術的課題

  • App Store外での配布 には、決済・アップデート・ライセンス管理の構築が必要
  • 決済は Paddle、アップデートは Sparkle、ライセンスは自前サーバーで管理
  • App Store用と直販用でビルドターゲットを分岐 し、運用体制を整備
  • 直販版リリースのための 技術習得と運用コスト

得られた学びと今後

  • 障害が新たな成長の機会 となり、開発・運用の幅が拡大
  • Appleの規約 には納得できる理由もあるが、柔軟な対応が重要
  • 従うか諦めるか」ではなく、「 場所ごとに最適な形で提供」する選択肢
  • 二つのバージョン で異なるユーザー層に対応可能

WhisperPadの入手方法と連絡先

  • Mac App Store版 :月120分まで無料、追加は有料
  • 直販版(自動ペースト機能付き) :mitmllc.com/whisperpad で提供
  • 開発者: Rene Zelaya
  • 連絡先: contact@mitmllc.com

Hackerたちの意見

これが、ランダムな大企業が支配するOSを使うとどうなるかってことだよね。別にその人のせいじゃないけど、Appleに頼るのはやめた方がいいよ。彼らは自分たちの条件でしかコンピュータを使わせてくれないから。GNU/Linuxのディストリビューションをインストールすれば、好きなことができるよ。

大多数の人にとって、これは「抑圧が嫌なら南極に引っ越せば?」って言ってるようなもんだよね!

それは公平だね。僕はゲーミングPCでNobaraを使ってて、API制限なしの同じような音声入力ツールを作ったから、そのトレードオフはリアルだよ。このプロジェクトでは、App Storeのリーチを持つ準拠版と、フル機能版の直接配布の両方を選んだ。でも、他の人はそんなものを使うのに抵抗があるだろうから、母が使える場所にこれを作ったんだ。

Appleは全然ランダムな大企業じゃないよ。Appleの顧客は特にその製品を購入することを選んだんだから。ほとんどの顧客は、アプリ間でのコピー&ペーストの重要性に気づいていない。Appleはこの露出を監視することが顧客への義務だと考えている。Appleの製品のこの欠点に気づいている人は、他のデバイスを購入する自由があるんだ。

これが、ランダムな大企業が支配するOSを使うとどうなるかってことだよね。アプリをインストールするためのチャンネルができて、誰かがあなたのコンピュータ全体をコントロールしたり、敏感なデータを盗もうとするランダムなアプリを拒否する? >GNU/Linuxのディストリビューションをインストールすれば、好きなことができるよ。 でも、どんなランダムなアプリが完全にコントロールを得てデータを盗むことができるから、制限を有効にする方法を知らないとダメだよ。僕はデフォルトで制限がある方がいいし、すべてのアプリのプロンプトに従うような一番無邪気なユーザーには、失った作業やプライベートな文書、お金について泣かせるような方法はない方がいいと思う。

ポイントを見失ってるよ:OSのことじゃないんだ。アプリの直接配布版はフル機能があるから。問題はMac App Storeにあるんだよね。

でも… Linuxで動かないアプリを使う必要があるなら別だけど。数ヶ月前にLinuxに完全移行しようと頑張ったけど、Microsoft Officeを満足いく形で動かす方法が見つからなかったんだ。OutlookやTeamsのパッケージ版はあるけど、Word/Excel/PowerPointのフルネイティブ版が必要で、いい解決策がなかった。それが決定打になっちゃったから、今はまたMacに戻ってる。あとは、Windowsが必要なアンチチート付きの人気ゲームとかもあるしね。

Canonicalが提供しているような中央集権的なパッケージリポジトリは、Mac App Storeと似たような制限がある。アプリをレビューしてもらう必要があるし、アプリを配布する各プラットフォームに更新をプッシュしなきゃいけない。その代わりに、可視性が得られるんだ。MacOSでアプリをインストールしたり更新したりするのは、Linuxディストリビューションよりも簡単だと思う。ほとんどのアプリには自動更新機能が内蔵されているし(アプリをアプリケーションフォルダにドラッグするだけで済む)、snapやapt、他のパッケージマネージャーに頼る必要がないからね。パッケージやアプリが古くなってメンテナンスされていないものが多いから。

SpaceGremlin(WinDirStatのMac代替品)にも似たようなことがあって、独立した「SpaceGremlinPro」バージョンをサイトからダウンロードしないと特定の機能が使えないんだ。でも、ライセンスに関しては面白いことをやってて、アプリストアで購入したバージョンを指し示すと、ライセンスを検出して機能がアンロックされるんだよ。もし、支払いに対する信頼がない人がいるなら、これを実装できるか考えてみる価値があるかも。アプリストアで買った人はフル機能にアクセスできるし、30%カットされるけど、何もないよりはマシかもね。

もしこれが見つかったら、すぐにApp Storeからバンされそうだね。

Space GremlinはもうApp Storeにないみたいだね。おそらく、macOSの新しいバージョンに更新されてないからだろう。一方で、GrandPerspectiveは無料で、WinDirStatと全く同じ可視化を使ってるよ(ただ、UXがちょっと変わってるけど)。

WinDirStatがKDirStat(今はQDirStat)を基にしているってのは面白いよね。だけど、Wikipediaのページにはそれすら書かれてないし、そもそもQDirStatが存在することすら知らない人が多いんだ。昔、誰かにLinuxの良い代替品を知ってるかって聞かれたこともあったよ。いいニュースだね!

面白いアイデアだね。基本的には、App Store版を直接版の発見チャネルとライセンスの拠り所にするってことだね。

確か、最初のミリオンかセカンドミリオンの売上までは15%くらいじゃなかったっけ?

もし、支払いを信頼してもらえないことが心配なら、これを実装できるか見てみる価値があるかも。アプリストアで買った人がフル機能にアクセスできるようにすればいいんじゃない?30%取られちゃうけど、何もないよりはマシかもね。つまり、Appleは権限を広すぎる定義にして、自分たちが拒否できるようにして、もっとお金を払わせようとしてるってことだね。

Appleを擁護するわけじゃないけど、あなたの会社名はMITMだよね。Man In The Middleは、確かに認識のラインの一方に位置すると思わない?

そうだよね?!不公平に狙われる人もいるのは分かるけど、時には(極端に)無邪気だったり、ただバカなふりをしてる人もいるよね。「ねえ、Bluetoothスピーカーの会社を『bee oh emm bee!!11』って名付けたらクールじゃない?」みたいな。

確かに、その略語は残念だね。ここでのMITMは「Moogle In The Machine」(ファイナルファンタジーのモーグリ + 機械学習)なんだけど、セキュリティの文脈でのジョークは納得できるし、よく聞くよ。

もちろん、Appleをユーザーとソフトウェアベンダーの間のMITM(中間者)と解釈することもできるよね。

最近、似たようなアプリを作ったんだけど、同じ制限にぶつかったよ。Macではあまり気にしなかったけど、App Storeなしで配布できるのは嬉しいね(でも、ちょっと残念)。もっとイライラしたのは、iPhoneアプリの使いやすさがどれだけ制限されるかってこと。App Storeの制約のおかげで、アプリの質がかなり落ちちゃうんだよね…でも、君の例みたいに、ある程度は役に立つけどさ。新しいCEOを機に、開発者との関係を真剣に見直してくれるといいんだけど、実際には期待してないかな。むしろ、AIツールで作られるアプリが増えることで、逆に悪化するんじゃないかって心配してるよ。

EUにいるなら、代替のApp Storeで公開して、ユーザーをそっちに誘導することを考えてみて。そうじゃないなら、代表者に同じ権利がない理由を聞いてみて。

iOSがもっとオープンなプラットフォームになってほしいって気持ちはわかるけど、はっきり言うね:OPのアプリみたいなことをサードパーティのアプリにやってほしくない。僕のiPhoneは、サードパーティのアプリが他のことを監視できないって保証がある唯一のコンピュータープラットフォームなんだ。

その通り。iOSでは、キーボードを使った良い音声入力アプリの市場が完全に制限されるから、iOSではそれができないんだよね。

数時間タイピングした後に手が痛くなるのを経験している者として… GitHubで見つけた素晴らしいオープンソースアプリ「ghost-pepper」を使い始めたんだ。これが日常的に使っているアプリになってるよ(superwhisrpのOSS版みたいな感じで、無料でローカルで使える)。メンテナーもすごく優しくて、DMにもすぐ返事くれるしね。[1] https://github.com/matthartman/ghost-pepper

いくつかのアプリを試した中で、これが一番好きだな。さっきゴーストペッパーでこれを音声入力したよ。Matt、そしてここでシェアしてくれたorliesaurusに感謝!

VoiceInkの大ファンなんだけど、これもローカルでオープンソースなんだ。この素晴らしいGitHubリポジトリで、最高のオープンソースのツールのリストも管理してるよ。オープンソースの音声入力ツールを探してる人、ここで何か見つかるといいね: https://github.com/primaprashant/awesome-voice-typing

フラストレーションを感じるのは、Appleがここに境界を設けていることよりも、その境界が不透明で一貫していないことだよね。

モバイルアプリを書かない理由があって、それは飛び越えなきゃいけない炎のようなハードルがあるからなんだ:ビルドシステムもそうだし、レビューアの気まぐれもね。

もう10年やってるよ。拒否された理由のリストもあるし、新しいアプリはそのリストを満たさないと最初のレビューに出せない。今は新しいアプリも一発で通るようになった。ビルドシステムの問題は、ほとんどの場合、ビルドキャッシュやアーティファクトを削除して再試行することで解決できる。深い依存関係をいじった後には、これが必要になることが多いね。

不快に思わせるつもりはないけど、MITM LLCって名前の会社にすべての入力を任せるのは、ちょっと滑稽すぎて、めっちゃ面白いか、逆にすごく怖いんだよね。

実は、macOSとiOS用のオフライン音声認識アプリを作ったときに、ほぼ同じ状況に直面したことがあるんだ。macOSでも全く同じ問題にぶつかった。でも、Appleが完全に間違っているわけではないと思う。アクセシビリティAPIが残念ながら範囲が広すぎて、コンピュータ上のすべてにアクセスできちゃうから、スクリーンショットを撮ったり、音声を聞いたり、カーソルを動かしたりできるんだよね。これは完全におかしいと思う。適切なエンジニアリングの解決策は、アクセシビリティAPIを段階的に廃止して、特定の権限を個別に与えられるような狭い範囲のものに置き換えることだと思う。でも、AppleはAppleだから、何もしてないし、実際にアクセス可能なもの以外にはアクセシビリティの権限を与えないって言ってる。もちろん、Appleは自分たちのルールを一貫して適用することで特に有名じゃないし、大きな例外を自分たちに与えることもあるから、例外はあるんだけどね。でも、プライバシーとデータ保護については正当な主張をしていると思う。実際、私はiOSの承認しかもらえなかったから、MacOSアプリをApp Storeの外で配布することになったんだ。だから、Appleが開発者プログラムの体験を徐々に改善してくれると嬉しいな。ハードウェアラインナップと比べると、開発者プログラムは本当にひどいから。

これをシェアしてくれてありがとう。「広範囲にわたるアクセシビリティAPIを段階的に廃止して、狭い権限に置き換える」というポイントは、まさに必要な構造的な修正だね。今のところ、開発者は実際に必要なよりもずっと広い権限を宣言しなきゃいけないし、外から見ると何が正当な使用として認められるのかがはっきりしてない。あなたのiOSアプリは通ったのに、macOSはダメだったのが面白いね。WhisperPadはMac専用で、iOSの道は通ってないから、あなたの経験は参考になるよ。「実証可能なアクセシビリティ」という基準が、全てのボトルネックになってるみたい。

アクセシビリティAPIは残念ながら範囲が広すぎて、そのせいで実際にコンピュータ上のすべてにアクセスできちゃう。スクリーンショットを撮ったり、音声を聞いたり、カーソルを動かしたりもできる… これは完全に馬鹿げてる。アクセシビリティAPIはアクセシビリティ機能を作るためのものなんだから、視覚障害者がコンピュータの機能をすべて使えるように、UI全体にわたって広い権限が必要なんだ。他の機能を作るためのものじゃないし、そうしてるならアプリストアの拒否があるのはそのためだよ。

徐々に改善? どれくらいの十年待つのが妥当なの? 彼らはそのままだし、変化を期待するのは意味がないと思う。

これは彼らによってよく文書化されているから、こういうアプリの大半はApp Storeの外でリリースされているんだ。私も似たようなものを作ったから、別に公開してるよ。https://github.com/moxiebytescode/speakeasy