アップルの発表会が終わった直後、SNSでは半分の人が新しいiPhoneの色について話し、もう半分の人——特にコードを書く人たち——はグループチャットでリンクを投げ、「信頼できるUUIDジェネレーターのおすすめはない?」と聞いていた。部外者から見ると意味不明だろう。発表会とUUIDに何の関係があるのか?実はこれ、全然不思議なことではない。
アップルが新しいシステムやハードウェアを発表するたびに、開発者はしばらく忙しくなる。今年は特に大変で、iOS 18はプライバシー権限の基盤ロジックを変更し、アプリが特定のデバイス識別子にアクセスするには新しい認可フローを通さなければならなくなった。以前は多くのチームが手を抜いて、デバイスIDをそのままユーザー固有識別子として使っていたが、その道は完全に塞がれた。どうする?素直にUUIDを生成してキーチェーンに保存し、匿名ユーザーIDとして使うしかない。そういうわけで、発表会が終わると同時に、普段は目立たないUUIDジェネレーターという小さなツールの検索量が十数倍に跳ね上がった。
UUIDとは、正式名称を汎用一意識別子といい、要するに「550e8400-e29b-41d4-a716-446655440000」のような、でたらめに見える文字列のことだ。その核心的価値はたった二文字に集約される:重複しない。理論上、毎秒1億個を100年間生成し続けても、衝突する確率は隕石に当たるより低い。開発者にとって、これはデータに身分証を発行するようなもので、ユーザー、注文、ログ、セッション、何にでも貼れる。
しかし問題がある。UUIDジェネレーターはそこら中にあるのに、なぜアップルの発表会後にみんな突然探し始めたのか?今回、落とし穴があったからだ。iOS 18はUUIDのバージョンに要件を設け、v4バージョンは暗号学的に安全な乱数生成器を使わなければならず、通常の疑似乱数はもう使えない。古いツールが生成するUUIDはそれらしく見えても、実際には乱数源が十分に強固でなく、アップルの審査で拒否される可能性がある。さらに新システムのキーチェーン同期の変更により、同じiCloudアカウント下でUUIDがデバイス間で一貫している必要があり、ジェネレーターが鍵のエクスポートとインポートをサポートすることが求められる。こうした細部は普段誰も気にしないが、発表会後に一斉に適応作業が始まると、すべて露呈する。
私の知り合いに、習慣トラッキングアプリを作っている個人開発者がいる。発表会の当晚、彼はグループで愚痴っていた。旧版アプリを新システムで動かすとユーザーデータが全部めちゃくちゃになったと。以前使っていたUUIDジェネレーターがiCloud同期を考慮しておらず、デバイスを変えると新しいIDが生成され、記録が全部消えたからだ。彼は夜通し、鍵のエクスポートに対応したオンラインツールに切り替え、ユーザーデータを再移行し、午前4時まで奮闘した。彼の言葉が面白かった:「アップルの発表会は消費者の春晩で、開発者の期末試験だ。」
では、普通の開発者は今どんなツールを使っているのか?私の観察では、大体三派に分かれる。一派はコマンドラインを使い、LinuxとmacOSにはuuidgenが標準搭載されていて、Enterを押せば一つ出てくる。シンプルで直接的だが、バッチ処理ができず、クロスプラットフォーム同期も不便だ。一派はオンラインツールを使い、ウェブページを開いてクリックして生成し、コピーして終わり。一時的な使用に適しているが、信頼できるサイトを選ぶ必要がある。中にはバックエンドで生成したUUIDを記録するサイトもあり、それはユーザーIDを丸裸にするようなものだ。もう一派はプログラミングライブラリを使い、PythonのuuidモジュールやJavaScriptのuuidパッケージをコードに直接統合する。最も確実だが、生成するたびにスクリプトを走らせる必要があり、デバッグ時には少し不便だ。
だから本当に分かっている開発者は、スマホにオンラインUUIDジェネレーターのブックマークを一つか二つ入れている。純粋にフロントエンドで生成し、ネット接続不要で、バッチエクスポートに対応し、バージョンも選べるものを選ぶ。アップルの発表会後、こうしたツールのトラフィックが急増したのは、みんなが突然コードを書けなくなったからではなく、新システムへの適応時に迅速な検証、バッチ生成、異なるバージョンの効果比較が必要だからだ。バックエンドをやっている友人が言っていたが、この二日間でオンラインツールを使って2000以上のUUIDを生成し、新システムのキーチェーン同期ロジックをテストして、どれが衝突するかを見ているそうだ。
結局のところ、UUIDジェネレーターはただのハンマーだ。普段は工具箱でほこりをかぶっているが、リフォームの時になると、どこにでも必要だと気づく。アップルの発表会はそのリフォーム通知であり、開発者に「ハンマーを出す時だ」と告げる。しかも今回のリフォームは規模が大きく、プライバシー、同期、セキュリティの三つの次元が同時に変わるので、誰も手を抜けない。あなたが開発者なら、あるいは身近に開発者の友人がいるなら、最近は信頼できるUUIDジェネレーターを一つ用意しておいた方がいい。審査で拒否されてから探し始めるのでは遅い。
最後に一つ。ツールを選ぶ時は注意してほしい。開いた途端にログインを求め、生成後に広告がポップアップするようなものは、すぐ閉じよう。良いUUIDジェネレーターは空気のようにあるべきだ。必要な時にそこにいて、必要でない時は全く邪魔をしない。アップルの発表会は毎年あり、開発者の期末試験も毎年ある。工具箱に便利な小道具をいくつか余分に用意しておいて、損はない。