Иногда бывает удобно сохранить скриншот понравившегося поста — чтобы отправить друзьям, в мемный чат или просто сохранить копию. Вот пример такого скриншота (остальной интерфейс обрезан):

Скриншот поста @eroston.bsky.social в Bluesky, в правом верхнем углу виден логотип Bluesky
Оригинал поста, если захочется расшарить

Логотип Bluesky в углу скриншота показался странным — в самом приложении он совершенно не бросается в глаза. При повторном открытии того же поста в приложении логотипа на месте не оказалось: вместо него отображалась кнопка «Подписаться».

Известно, что некоторые приложения прячут логотип там, где на iPhone находится вырез (notch), чтобы он не выпирал — но становится виден на скриншоте. Здесь же логотип расположен на открытом месте интерфейса, и вопрос был в том, как так получилось.

Была предпринята попытка сделать ещё один скриншот, на этот раз в момент переключения между приложениями:

Скриншот уменьшенной версии приложения Bluesky в момент переключения, видна кнопка Follow
Кнопка «Подписаться» видна, если сделать скриншот в момент переключения между приложениями.

Возникло предположение: неужели приложение как-то отслеживает нажатие двух кнопок для скриншота и в последний момент подменяет содержимое? Не будучи iOS-разработчиком, сложно судить, насколько это вообще технически возможно.

Любопытство взяло верх. К счастью, приложение Bluesky — с открытым исходным кодом (или как минимум код доступен для просмотра).

Ответ нашёлся в файле, который так и называется — GrowthHack.tsx, добавленном в январе 2026 года разработчиком mozzius. Файл лишь использовал зависимость, поэтому для понимания механизма пришлось заглянуть в пакет expo-privacy-sensitive того же автора.

Пакет создаёт UITextField со свойством isSecureTextEntry, установленным в true, и рендерит реальный контент (кнопку) в .layer этого поля. При создании скриншота iOS скрывает этот UITextField, обнуляя слой, — и сквозь него «проступает» логотип Bluesky, который на самом деле был там всё это время. На других платформах контент рендерится как есть, без маскировки.

Почему трюк не срабатывает при переключении между приложениями? Предположительно, iOS делает собственный снапшот в начале жеста переключения (без запуска обнуления слоя), а при создании скриншота живого экземпляра UITextField, который мог бы среагировать, уже нет — есть только инертный снапшот. Впрочем, это лишь предположение человека, не занимающегося iOS-разработкой.

Изящный трюк или злоупотребление API, предназначенным для приватности? Участники обсуждения на GitHub, где добавлялась эта функциональность, в основном отнеслись к решению негативно — прежде чем тред закрыли. Но в целом приём выглядит скорее забавным, чем вредным.

Поиск показал, что трюк далеко не новый. Telegram реализовал похожий механизм для «секретных» чатов, то же самое сделал Signal — так что вряд ли Apple закроет эту лазейку в обозримом будущем.