Работа с графикой во Flutter - Андрей Смирнов, Wrike
ฝัง
- เผยแพร่เมื่อ 8 ก.พ. 2025
- Используя Flutter, можно создавать прекрасные интерфейсы, но встроенных возможностей не всегда достаточно для самых неожиданных требований наших приложений.
В этом докладе мы заглянем под капот графического движка Flutter. Разберемся, как устроена анимация. Напишем custom виджет, используя Dart. Нарисуем custom виджет, используя Flare.
Очень классно что много про низкоуровневые штуки. Про виджеты в сети инфа есть, а как что под капотом работает не особо. Спасибо.
Спасибо.
На очереди погружение в рендеринг пайплайн ).
Побольше бы таких докладов !)
Обьясняете супер понятно, не каждый так умеет )
Остался один вопрос, почему все это нельзя было построить на основе SVG. Тут производительность выше получается или какие плюсы? Почему в Гугле не захотели использовать SVG под капотом? Ведь намного удобнее иметь возможность рисовать какие-то элементы в графическом софте, а потом просто добавлять в приложение. Ну а при желании можно и вручную писать внутри приложения, как делается в вебе, хочешь руками рисуй, хочешь кодом. Но нет, надо обязательно надо впихнуть новую технологию, для которой надо придумывать новые велосипеды (приложения), хотя SVG уже поддерживают практически все векторные редакторы.
Смотрите, в данном докладе я касался только векторной графики, но ведь это далеко не все возможности Skia и не все сценарии использования в разработке UI.
Если посмотрите fiddle.skia.org/named/, то убедитесь, что далеко не все можно реализовать при помощи svg (в особенности, когда дело касается растров шейдеров масок и пр.).
Насчет софта - он появляется. Есть и скрипты для конвертации векторной графики из adobe illustrator, есть и инструменты типа flutter shape maker (совсем недавно был создан), который упрощает разработчику работу с переносом векторов в код.
Приветствую Андрей! А что делать, если нужно отрисовать сложный рисунок асинхронно, в отдельном изоляте, чтобы к моменту, когда его надо будет показать, он уже был готов? Какие способы есть? А то и CustomPainter и Canvas только в главном изоляте работают.
Нормальная тема
Когда листаешь красивый интерфейс с кучей анимацией и прочими приблудами приходишь в уныние, что в век быстрых изменений и смен технологий этот красивый интерфейс, над которым работали пол года протянет максимум на 1-2 года. Смысла в этом не много, лучше придерживаться минимализма и не заморачиваться, весь дизайн должен идти из коробки(для Android - Material Design, а для iOS - Cupertino), важно лишь подчеркнуть фирменный стиль своеобразными цветами, не меняя общую методологию дизайна запускаемой платформы
Спасибо за комментарий.
Да, согласен.
Поэтому я в самом начале моего доклада попытался обозначить проблему в том, что мы ограничены нашими SDK, да и вообще просто сложностью алгоритмов таких вот анимаций.
И действительно, вкладывать огромные ресурсы в такие сложные интерфейсы никто не хочет, потому по факту таких приложений мы и не видим.
Но, на мой взгляд, flutter сильно развязывает нам руки тогда, когда дело касается кастомных интерфейсов - например, по сравнению с тем же самым RN (там такие вещи конечно же тоже решаются, просто цена немного другая).
BeeWay Inc вы забывете, что помимо каких-то простых приложений, призванных просто предоставлять доступ к бэкенду того или иного сервиса, есть еще более сложные приложения, которые строятся на визуальной составляющей. И не всегда стандартных возможностей хватает для этого. В этом случае можно извратиться и начать городить свой огород и придумывать какие-то костыли, но все-таки лучше иметь такую возможность из коробки. Во многих сферах представление информации в визуальном виде намного упрощает ее понимание. Это важно, например, для всяких обучающих приложений. Когда это все делается лишь для красоты интерфейса, да, сомнительный плюс, особенно если это всего-навсего клиент для какого-то интернет магазина.
А есть ссылка на гит проекта 2:40
Виджет называется Liquid Swipe, 42:25
@@aydynbai спасибо
ишь ты что захотел, ему видать мало платят, бедняжка, открыл для себя Америку - Skia