DEV Community

Cover image for I said no and Apple said yes
Ashish
Ashish

Posted on

I said no and Apple said yes

「ノーと言ったのに、Appleはイエスと言った」——HNで619pt/495コメントのこの議論、開発者としてどう受け止めますか? Apple Intelligenceがユーザ...

「ノー」を尊重するソフトウェアを作るとは──Apple Intelligenceの騒動と、弱視の少年がYouTubeで視力訓練を続けられた理由

Hacker Newsで「Apple Intelligenceが明示的なオプトアウトを無視して有効化された」というスレッドが600ポイント超えしていた夜、僕はMeta Questの開発者モードでログを眺めていた。コーヒーが冷めきるのも忘れて。

コメント欄をスクロールする指が止まる。「設定の永続性が保証されない」「ユーザーの意思決定を尊重しない設計」。どれも、僕がこの3年間、Amblyotubeというアプリと向き合ってきた中で、何度も自問自答してきた言葉だ。

Amblyotubeは、弱視(lazy eye)の人向けのVR視覚訓練アプリだ。Meta Questの左右独立したディスプレイを使い、片目にはYouTubeの動画をそのまま、もう片目にはフィルターをかけて別映像を見せる。いわゆる二眼視訓練(dichoptic training)を、好きな動画を見ながらできるようにしたものだ。

でも、技術より先に決めていたことがある。

「ユーザーが『やりたくない』と言ったら、絶対にやらせない」

インストールも、起動も、どの動画を見るかも、全部ユーザーが決める。途中で勝手に設定が変わったり、データが送られたりしない。医療機器として認証を取らず、「レクリエーション・教育ソフトウェア」としてストアに出したのも、そこにある。医療機器になると、臨床試験だ処方だで、ユーザーの主導権がどんどん削がれていくからだ。

去年の秋、ある中学生のユーザーからメールが来た。彼、仮にケンタ君としておこう。14歳、弱視歴10年。眼帯(パッチング)は小学校低学年までやったけど、「見えない目でしか見えない世界」が怖くて、途中で全部投げ出したそうだ。

「Amblyotubeなら、自分の好きなゲーム実況動画で訓練できるって聞いて」

彼が選んだのは、マインクラフトの実況動画だった。左右の目で別映像──片目は普通に、もう片目には「優位眼シェーダー」でぼかしとコントラスト落としをかけた映像が流れる。さらに「遅れ目シャープナー(MFBF)」で、動画の中の人物(実況者の手元や顔)だけAIが検出してシャープにする。マゼンタ色の丸いフォーカスカーソルが、遅れ目側だけにふわっと動く。

最初の週は、1日15分しか続かなかった。「目が疲れる」「マゼンタの円が邪魔」と。でも、彼は自分で「ぼかしの強さ」をスライダーで調整した。透明度を80%から50%に。輝度も落とした。「これならいける」と。

3週目、彼から動画が送られてきた。Questのキャプチャ機能で録ったやつだ。画面の隅に、赤いシルエット(アウトライン機能)で人物の輪郭が浮き、黄緑色のハイライトが「呼吸」するように脈打っている。パルスコントロールを1.2Hzに設定したらしい。

「これ、僕が決めたリズムだよ」とメッセージにあった。

彼は続けている。週4回、30分ずつ。自分でタイマーをセットして、自分で動画を選んで、自分でフィルターを調整して。眼科の先生から「最近、両眼視機能の検査結果が良くなってるね」と言われたらしい。

僕がしたことは、彼が「やりたい」と思える環境を、技術で裏打ちしただけだ。ステレオレンダリングのカスタマイズ、AIによる人物検出、フリッカー刺激、マゼンタキューの色選定(自然動画にマゼンタはほぼ出ないから、脳が「あ、こっち見ろ」と認識しやすい)。全部、彼が選んだコンテンツの上に、彼が調整したパラメータで乗っかっている。

Appleの騒動を読みながら、ふと思った。もしAmblyotubeが「毎日30分やりなさい」と通知を飛ばし、勝手に難易度を上げ、データをサーバーに送っていたら。彼は続けただろうか。

「ノー」をノーとして扱う実装パターン。設定の永続化はSharedPreferencesではなく、暗号化されたローカルストレージに。同意管理は初回起動時の明示的なチェックボックスのみ、テレメトリは一切なし。UnityのPlayerPrefsすら使わないで、自前でJSONシリアライズしてファイルに書く。そこまでするか、と言われるけど、そこまでやらないと「ユーザーの代理人」になれない。

ケンタ君から先月、またメールが来た。

「最近、マインクラフトの実況じゃなくて、料理動画で訓練してる。包丁さばきが立体的に見えるんだ」

彼が自分で新しい道を見つけた。それが一番嬉しい。

開発者として、「ユーザーのノーをノーとして扱う」コードを書き続けるのは、地味で派手さがない。でも、誰かの「やりたい」を、誰かの「やらされ」に変えないためなら、その地味さを選ぶ。

ストアページ: https://www.meta.com/en-gb/experiences/amblyotube/25906906972338493/

Top comments (0)