Изменение state оборачивают в withAnimation или вешают .animation на view; matchedGeometryEffect связывает hero-переходы по id в namespace.
Разбор
- implicit vs explicit animations.
- transactions для тонкого контроля.
- Слишком широкие animation modifiers анимируют лишнее.
- Accessibility Reduce Motion учитывают.
Итог
Анимации декларативны: анимируете изменение state, не покадровый UIKit код.