Chapter 55
Creating Advanced Animations with KeyframeAnimator

In addition to the PhaseAnimator, SwiftUI introduced the KeyframeAnimator in iOS 17, allowing developers to create advanced animations using keyframes. In this tutorial, we will delve into the KeyframeAnimator and learn how to create a more intricate animation.

The PhaseAnimator view (or modifier), which we discussed in the previous tutorial, provides developers with the ability to create multi-step animations over a sequence of phases. By specifying the desired animations for each phase, the PhaseAnimator automatically animates the content whenever the phase changes. It simplifies the process of building complex animations by handling the transitions between phases for you.

Working with KeyframeAnimator

For phase-based animation, it works well for animations that can be represented as discrete states. When a state transition happens, all properties are animated simultaneously. Once the animation for a particular state is completed, SwiftUI smoothly transitions to the next state. This process continues across all animation phases.

Keyframe-based animation is designed to accommodate a specific type of animation where each property is animated independently. By utilizing keyframes, we can animate individual properties separately, which in turn offers us greater flexibility and control over our animations.

Figure 1. A sample animation built using KeyframeAnimator
Figure 1. A sample animation built using KeyframeAnimator

Let’s try to animate an emoji icon (as illustrated above) and you will understand how we can use keyframe animator.

To access the full content and the complete source code, please get your copy at

results matching ""

    No results matching ""