Chapter 31
Working with AnimatableModifier and LibraryContentProvider

Earlier, you learned how to animate a shape using Animatable and AnimatableData. In this chapter, we will take it a step further and show you how to animate a view using another protocol called AnimatableModifier. Additionally, I will guide you through a new feature of SwiftUI that makes it easier for developers to share custom views in the View library, enhancing reusability. Later, I will demonstrate how to integrate the progress ring view into the View library for seamless reuse. As a sneak peek, you can refer to Figure 1 or watch this demo video ( to see it in action.

Figure 1. Using a custom view in the View library
Figure 1. Using a custom view in the View library

Understanding AnimatableModifier

Let's begin by examining the AnimatableModifier protocol. As the name suggests, AnimatableModifier is a view modifier that conforms to the Animatable protocol. This allows for powerful animation of value changes for various types of views.

protocol AnimatableModifier : Animatable, ViewModifier

So, what are we going to animate? We will build upon what we implemented in the previous chapter and add a text label at the center of the progress ring. This label will display the current percentage of progress. As the progress bar moves, the label will update accordingly. Figure 2 provides a visual representation of the label's appearance.

Figure 2. Animating the progress label
Figure 2. Animating the progress label

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

results matching ""

    No results matching ""