Как добавить эффект Liquid Glass в Flutter-приложение
С выходом iOS 26 компания Apple представила дизайн Liquid Glass - ту самую жидкую стеклянную эстетику, которая делает интерфейсы объемными и тактильно приятными. Сообщество Flutter все это время искало способ повторить это на своей платформе. Попытки были, но с ограничениями: кто-то завязывался на Impeller и терял поддержку Windows и Web, кто-то просто делал обычное размытие, выдавая его за жидкое стекло. Теперь появилось работающее кроссплатформенное решение.
Что раньше:
Краткий обзор того, что предлагалось раньше:
Пакеты, которые либо не работали, либо не имели примеров.
Решения, завязанные на Impeller - красиво, но только для мобилок.
Обычный стекломорфизм с размытием, который никакой не жидкий.
Нативные обертки, которые работали только на iOS.
Все они либо не были кроссплатформенными, либо не давали нужного эффекта.
Что появилось сейчас:
Пакет делает именно то, что заявлено: настоящие интерактивные линзы из жидкого стекла с физикой преломления, искажения и реакции на касания. Работает на Android, iOS, Web, macOS и Windows. В основе - GPU-шейдеры, так что производительность остается высокой даже при нескольких активных линзах.
Как это устроено:
Все строится вокруг двух виджетов:
LiquidGlassView - контейнер, который захватывает содержимое фона в реальном времени и передает его в линзы.
LiquidGlass - сама линза, которую можно настроить: форма, размер, степень искажения, размытие, цвет, направление света.
Линзу можно сделать перетаскиваемой, анимировать через контроллер, накладывать поверх любого контента. Все настраивается до мелочей.
Вывод:
Жидкое стекло во Flutter наконец-то перестало быть чем-то, что можно только представить в воображении. liquid_glass_easy дает рабочий инструмент, который не требует жертвовать кроссплатформенностью и производительностью. Да, это не та фича, ради которой пользователь побежит скачивать приложение, но когда хочется добавить интерфейсу глубины и тактильности, теперь есть куда смотреть. Для дизайнерских экспериментов и вау-эффекта - вполне.