Book Image

Animating SwiftUI Applications

By : Stephen DeStefano
Book Image

Animating SwiftUI Applications

By: Stephen DeStefano

Overview of this book

Swift and SwiftUI are the backbone of Apple application development, making them a crucial skill set to learn. Animating SwiftUI Applications focuses on the creation of stunning animations, making you proficient in this declarative language and employing a minimal code approach. In this book, you'll start by exploring the fundamentals of SwiftUI and animation, before jumping into various projects that will cement these skills in practice. You will explore some simple projects, like animating circles, creating color spectrums with hueRotation, animating individual parts of an image, as well as combining multiple views together to produce dynamic creations. The book will then transition into more advanced animation projects that employ the GeometryReader, which helps align your animations across different devices, as well as creating word and color games. Finally, you will learn how to integrate the SpriteKit framework into our SwiftUI code to create scenes with wind, fire, rain, and or snow scene, along with adding physics, gravity, collisions, and particle emitters to your animations. By the end of this book, you’ll have created a number of different animation projects, and will have gained a deep understanding of SwiftUI that can be used for your own creations.
Table of Contents (18 chapters)

Animating flower petals in an arc

We have a background, text labels, and an inhaling and exhaling breath effect; now let’s add the petals to the scene. We can add the petal code in a separate file, so press Command + N to bring up the New File window, and create a new SwiftUIView file called PetalView.

The goal here is to make five petals move in an arc, so they open and close. We only need two variables for this, so this will be a very small file: we need one Boolean (Bool) variable to track the animation, and another variable to hold the number of rotations we want for each petal. Let’s add them now:

    @Binding var petal: Bool
    var degrees: Double = 0.0

The Binding variable called petal will handle the animation. We are using the Binding wrapper because we are in a new struct, and we will need to use this variable in another struct, ContentView. When we prefix a variable with the Binding wrapper, we can then use...