Добавить объявление

UIKit встречает Liquid Glass: как адаптировать гибридное приложение

С выходом iOS 26 и нового дизайна Liquid Glass многие команды столкнулись с неочевидными вызовами. Особенно сложная ситуация складывается у проектов с гибридной архитектурой, где UIKit и SwiftUI соседствуют годами. Адаптация - это не просто замена цветов и добавление размытий. Это переосмысление навигации, модальностей и даже базовых компонентов интерфейса. На примере приложения Grow, получившего признание редакции App Store в 173 странах, разберем, какие решения работают на практике, а какие оказываются тупиковыми.

Двойная стратегия - совместимость и прогрессивность:


Первое и главное правило успешной адаптации - сохранение работоспособности для пользователей старых версий iOS. В Grow выбрали стратегию условной компиляции и проверки доступности API через #available(iOS 26.0, *). Это позволяет:

  • Оставлять проверенные интерфейсы для iOS 18 и ниже.

  • Предлагать новый визуальный опыт пользователям iOS 26.

  • Постепенно мигрировать компоненты не поломав существующую логику.

Навигация - от кастомных решений к нативным компонентам:


Исторически сложилось, что многие проекты заменяли UINavigationBar кастомными view для сложных UI-элементов. Liquid Glass требует обратного подхода - возврата к нативным компонентам. В Grow провели рефакторинг:

  • Заменили кастомные панели навигации на UINavigationController.

  • Настроили navigationItem для размещения элементов управления.

  • Использовали Auto Layout для правильного позиционирования scroll-контейнеров.

Ключевой момент: нативные компоненты лучше адаптируются к системным эффектам морфинга и анимациям Liquid Glass.

Модальные представления:


Адаптация UISheetPresentationController оказалась одной из самых простых задач. Для активации эффектов Liquid Glass достаточно:

  • Убрать кастомные фоновые view.

  • Использовать системные API для управления размытием краев.

  • Настраивать ToolbarItem для контроля Scroll Edge Effect.


Более интересной задачей стала реализация морфинг-меню в формате popover. Вместо чисто SwiftUI-решений команда выбрала гибридный подход через UIPopoverPresentationController:

  • SwiftUI-view упаковывается в UIHostingController.

  • Контроллер привязывается к UIBarButtonItem через popoverPresentationController?.sourceItem.

  • Делегат UIPopoverPresentationControllerDelegate решает проблемы приоритета жестов и предварительной настройки контента.

Расширение возможностей - стеклянный текст:


Один из наиболее креативных аспектов адаптации - создание кастомных стеклянных эффектов. Используя Core Text, можно преобразовывать глифы шрифтов в CGPath, а затем применять к ним эффект glassEffect(_:in:). Это открывает возможности для:

  • Текстовых элементов с эффектом жидкого стекла.

  • Произвольных форм, выходящих за рамки геометрических примитивов.

  • Динамических эффектов, зависящих от контента.

Вывод:


Адаптация Liquid Glass в гибридных проектах - это баланс между нативными возможностями системы и существующей архитектурой. Самое важное - понимать, что Liquid Glass это не просто визуальное обновление, а изменение философии взаимодействия. Успешная адаптация требует не только технических изменений, но и пересмотра подходов к проектированию интерфейсов, где системные компоненты и анимации становятся частью пользовательского опыта, а не его украшением.
04.02.2026 19 129