С выходом iOS 26 Apple представила обновленный интерфейс с эффектом f7007;стеклянногоf816d; UI. Однако, многие разработчики, работающие с более старыми версиями iOS, столкнулись с ограничениями, так как новый API доступен только для последних обновлений. Я решил создать собственный эффект f7007;жидкого стеклаf816d; для iOS 16, используя Metal и SwiftUI, чтобы он выглядел так же, как в iOS 26.
Процесс создания включал в себя использование шейдеров и GPU для визуализации. Я столкнулся с проблемой доступа к буферу рендера, который предоставляет Apple через CABackdropLayer, что невозможно без риска отказа в App Store. Поэтому пришлось прибегнуть к созданию скриншотов области под стеклом. Это привело к значительным задержкам, так как процесс захвата изображения оказался очень затратным по времени.
В итоге, хоть я и достиг желаемого визуального эффекта, работа с публичными API ограничивает производительность. Обещаю, что результаты стоят усилий, и я поделился разработкой в открытом доступе. Если у кого-то есть идеи по оптимизации, буду рад услышать!
tasani.ru
