
2026/08/18 7:20
Bluesky がスクリーンショットにロゴを描画する
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
元の要約は質が高く、すべての主要なポイントを明確に伝えています。変更は不要です。
本文
Bluesky アプリのスクリーンショットにおける「ロゴの羽ばつき」トリック解明
Bluesky の iOS アプリでは、他のアプリへ切り替える際にスクリーンショットを撮ると、右上隅にBluesky ロゴが表示されている現象が起きます。これは意図的な技術的工夫によるものです。
発見された不自然な現象
- 表示場所: 画面右上隅に Bluesky のロゴが表示されます。
- 通常の状態: アプリ内での投稿画面を再確認すると、ロゴは消え「フォロー」ボタンのみが表示されています。
- 疑問点: 「アプリ内で気にならないのに、なぜ切り出し時にロゴがあるのか?」と不思議に思いました。
iOS 開発者たちの過去の工夫との比較
- iPhone のノッチ部分にロゴを配置し、画面切り出しで目立たなくする手法は既に行われています。
- しかし、Bluesky はロゴを開かれた場所に配置しており、そのトリックの実装方法に興味を持たれました。
トリックの実現メカニズム(再現テスト)
別のアプリへの切り替え途中にスクリーンショットを撮ることで確認しました:
- 結果: 「フォロー」ボタンが表示されている状態で、Bluesky ロゴが追加表示されます。
- 推測: スクリーンショット撮影時に、二つのボタン操作に対してリスナーを設定し、最後の瞬間だけ表示を切り替える仕組みかもしれません。
原因の特定:オープンソースコードでの調査
Bluesky のアプリはオープンソースであるため、コードを検証しました。
主要な実装ファイル
- ファイル名:
(2026 年 1 月にGrowthHack.tsx
により導入)mozzius - 関連パッケージ:
(同じ開発者による)expo-privacy-sensitive
トリックの詳細仕組み
- 実装方法:
プロパティをisSecureTextEntry
に設定したtrue
を作成。UITextField- 実際の内容(ボタン)をフィールドの
内に描画。.layer
- iOS の挙動:
- スクリーンショット時、iOS はこの
のレイヤーを白く塗りつぶすことで内容を隠蔽します。UITextField - しかし、Bluesky ロゴはこの領域に常駐しており、塗りつぶしの隙から**「羽ばたく」**ように見えるようになります。
- スクリーンショット時、iOS はこの
- 他プラットフォームとの違い: 非 iOS ではそのままの内容を描画するため、マスク処理が適用されずロゴは表示されます。
なぜ切り替え時に機能しないのか?
アプリ間での切り替え時は、この仕組みが正しく機能しない(ロゴが見える)理由:
- iOS はジェスチャーの開始時に独自にスナップショットを取得します。
- このタイミングでは白く塗りつぶすトリガーが発火せず。
- 結果として、不活性なスナップショットのみが残され、ロゴが表示された状態になります。
評価とセキュリティへの影響
コミュニティの反応
- 多くの開発者はこの機能を好ましくないと判断しましたが、一部の人は「かわいい」と感じました。
- これはプライバシー保護のための API を悪用した事例と言えます。
業界標準としての確立
- Telegram: 「シークレットチャット」向けに同様の仕組みを実装。
- Signal: 類似の手法を採用。
- 将来の見通し: Apple が近い将来これを修正する可能性は低いと考えられます。