JellyFab — необычное FAB-меню для Jetpack Compose, в котором центральная кнопка не просто открывает дополнительные действия, а растягивается и покачивается, словно желе. Эффект реализован без шейдеров: только
Canvas, Animatable и немного геометрии. Вместо стандартного FloatingActionButton используется обычный кликабельный Box, под которым можно полностью самостоятельно отрисовывать и деформировать форму.Главная идея — представить круг не готовой фигурой, а набором из 36 точек. При появлении пунктов меню ближайшие к ним точки смещаются наружу, причём сила смещения плавно уменьшается по гауссовой кривой. Затем точки соединяются кривыми Безье, а тень меняется вместе с деформацией кнопки. Хороший пример того, что выразительная UI-анимация необязательно требует сложных технологий — иногда достаточно правильно представить задачу и синхронизировать несколько простых эффектов.
Статья 🇺🇸: https://proandroiddev.com/i-built-a-jelly-like-fab-menu-for-jetpack-compose-42e9f65f6576
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность