Reader small image

You're reading from  An iOS Developer's Guide to SwiftUI

Product typeBook
Published inMay 2024
Reading LevelBeginner
PublisherPackt
ISBN-139781801813624
Edition1st Edition
Languages
Right arrow
Author (1)
Michele Fadda
Michele Fadda
author image
Michele Fadda

Michele is currently working as a technical project and program manager at Eggon, an innovative startup in Padua, Italy, and as the director of FWLAB Limited, a UK App development studio. He specializes in skills such as Imperative Programming, Functional programming, Swift, Mobile Application Development. He started programming as a child with Assembly language and has worked for 20 years as a consultant using a variety of languages and technologies. He started developing for iOS with iOS on iOS v.3.0 in 2009. He has also developed many apps as a solo developer and has also participated in numerous projects.
Read more about Michele Fadda

Right arrow

An Introduction to Animations in SwiftUI

There are quite a few ways to animate content in SwiftUI. SwiftUI animations have a declarative syntax, meaning you describe what results you want to achieve, and SwiftUI does the heavy lifting. Animations in SwiftUI tend to be state-driven (i.e., they depend on state changes, making them reactive and easy to reason about).

SwiftUI provides pre-made modifiers such as animation, transition, and scaleEffect, which allow the effective application of animation effects to views. It is generally more straightforward than UIKit, as you don’t need to meddle with an imperative syntax or manage synchronization manually, nor do you need a deep understanding of layer properties.

SwiftUI offers a good balance of flexibility and control using implicit and explicit animations. In contrast, more complex custom animations can be achieved using animatable properties and modifiers, which will require additional effort.

On the other hand, to this...

Technical requirements

You will find the code related to this chapter here: https://github.com/PacktPublishing/An-iOS-Developer-s-Guide-to-SwiftUI, under the CH9 folder.

Gestures

Gestures are a way to recognize and respond to touch events. They are used to add interaction to SwiftUI views. Some examples of gestures that are used include zooming in on images by pinching, dismissing views by swiping down, and double tapping.

We can conceptually divide gestures into three categories: basic, advanced, and composite.

Basic gestures attach a single simple straightforward gesture to a view, such as tapping or swiping, and they are typically simple to implement because they can be implemented with a few lines of code. These actions mimic natural human actions and are intuitive for human users. Their behavior is what the user normally expects by having been exposed across multiple applications and as such they minimize the cognitive load required to interact with the app; users don’t need to think hard to remember complex gestures.

Complex gestures, both advanced and composite, instead involve multiple touch points (multiple fingers) and multiple...

Creating implicit animations

Implicit animations are animations where the behavior of the animation is implied and not described in detail. They are the most straightforward way to add animations to your app views. The simplest requirement to implement them is to apply the .animation modifier to a view, and SwiftUI will automatically apply any changes to the properties of that view.

Implicit animations will automatically occur when a value changes in a view, without you needing to specify the animation effect to apply. SwiftUI will apply interpolation while transitioning between animation states automatically. This allows you to add animation effects with minimal code. The default animation is often what the user is accustomed to seeing in an iOS app, and therefore it is often the right choice in terms of usability.

Note

When talking about animation, easing refers to the adjustment of the speed and movement of the animation to create a more natural, organic-looking movement...

Transitions

SwiftUI transitions allow you to animate the insertion and removal of views from the UI. To apply a transition to a view, we use the .transition(_:) modifier.

The basic transition types that SwiftUI provides include the following:

  • opacity: This transition causes views to fade in or out when they’re inserted or removed
  • scale: This transition causes views to grow or shrink in size when they’re inserted or removed
  • slide: This transition causes a view to slide in or out from the edge of the screen when it is either added or removed
  • move(edge:): This transition moves a view in or out from the specified edge of the screen
  • offset(x:y:): This transition moves a view by the specified amount of typographical points when it is inserted or removed

By default, if you don’t specify a transition, iOS will apply a default transition when presenting (adding) or removing views from the screen. There are several default transitions available...

Summary

In this chapter about SwiftUI animation, we began by defining gesture recognizers, as these are often combined with animation. Then, we examined how to combine gesture recognizers with animation. We have covered simple implicit animation and more complex explicit animations. We completed the chapter by examining animated transitions, which are used to spruce up the presentation of views in the UI.

In the next chapter, we will begin discussing application architecture.

lock icon
The rest of the chapter is locked
You have been reading a chapter from
An iOS Developer's Guide to SwiftUI
Published in: May 2024Publisher: PacktISBN-13: 9781801813624
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
undefined
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €14.99/month. Cancel anytime

Author (1)

author image
Michele Fadda

Michele is currently working as a technical project and program manager at Eggon, an innovative startup in Padua, Italy, and as the director of FWLAB Limited, a UK App development studio. He specializes in skills such as Imperative Programming, Functional programming, Swift, Mobile Application Development. He started programming as a child with Assembly language and has worked for 20 years as a consultant using a variety of languages and technologies. He started developing for iOS with iOS on iOS v.3.0 in 2009. He has also developed many apps as a solo developer and has also participated in numerous projects.
Read more about Michele Fadda