Hoe Bluesky zijn logo in screenshots plaatst

Ik merkte het Bluesky-logo in de rechterhoek op en vond het vreemd dat het logo me niet stoort wanneer ik de app gebruik. Toen ik opnieuw naar de post in de app keek, was het logo niet aanwezig; het was vervangen door de "Follow"-knop.

Ik herinnerde me dat sommige apps hun logo verbergen waar de iPhone-notch zit, zodat het niet opvalt, tenzij je een screenshot maakt. Maar hier is het logo openlijk geplaatst, dus hoe doen ze dat?

Een experiment

Ik probeerde opnieuw een screenshot te maken, ditmaal midden in de overgang naar een andere app. De "Follow"-knop is zichtbaar wanneer ik de screenshot maak tijdens het wisselen van app.

Hadden ze op een bepaalde manier een listener ingesteld voor de twee knoppen die ik indruk voordat er op het laatste moment een wisseltruc wordt uitgevoerd? Ik ben geen iOS-ontwikkelaar, dus ik weet niet zeker wat daar wel en niet mogelijk is.

Op dit punt was ik licht geïntrigeerd. Gelukkig herinnerde ik me dat de Bluesky-app open source is (of in ieder geval is de code beschikbaar om in te kijken).

De technische oplossing

Het antwoord stond in het bestand dat letterlijk GrowthHack.tsx heet, geïntroduceerd in januari 2026 door mozzius. Dit bestand maakte echter gebruik van een dependency, dus om het te begrijpen keek ik in het pakket expo-privacy-sensitive, eveneens door hen gemaakt.

Het pakket creëert een UITextField met de eigenschap isSecureTextEntry ingesteld op true en rendert de eigenlijke inhoud (de knop) in de .layer van dat veld. Wanneer ik een screenshot maak, verbergt iOS dit UITextField door de laag leeg te maken, waardoor het Bluesky-logo zichtbaar wordt (het was de hele tijd aanwezig). Voor andere platforms rendert het de inhoud gewoon zoals deze is, zonder maskering.

Analyse van het gedrag

Waarom werkt het niet wanneer ik tussen apps wissel? Ik vermoed dat iOS zelf een snapshot maakt aan het begin van het gebaar (zonder de maskering te triggeren), en wanneer ik een screenshot maak, is er geen live UITextField-instantie die daarop kan reageren, maar enkel de inerte snapshot. Maar wederom: ik ben geen iOS-ontwikkelaar.

Is dit een slimme truc of een misbruik van een API die bedoeld is voor privacy? De mensen in de thread die dit gedrag toevoegden, waren er grotendeels niet blij mee, voordat de thread werd gesloten. Ik vind het wel leuk.

Ik heb wat gegoogeld en de truc is bekend. Telegram heeft iets soortgelijks geïmplementeerd voor zijn "geheime" chats, net als Signal, dus ik verwacht niet dat dit binnenkort door Apple zal worden gepatcht.