Group Group Group Group Group Group Group Group Group

How to Create a Splash Screen With SwiftUI |

Learn to build a splash screen that uses animation and SwiftUI to go beyond the typical static launch screen and keeps users interested while the app loads.

This is a companion discussion topic for the original entry at

At the end of the “Improving the Circle Animation” section I had to add:

self.uScale = 1

into restartAnimation() before the circle would restart at the smaller size. Before that it only grew bigger the first animation.

I noticed that while following the tutorial that the background didn’t actually fill in solidly until adding the Image near the end of the tutorial. The map was always visible behind the animations and title. This can be seen in the Fuber-Finished project as well if you comment out the Image.

The problem is that the VStack with the .background modifier is not expanding to fill the screen.

Adding the following .frame modifier to the VStack is one way to fix this:

.frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity)

For other possible fixes see

Apple says:

Design a launch screen that’s nearly identical to the first screen of your app. If you include elements that look different when the app finishes launching, people can experience an unpleasant flash between the launch screen and the first screen of the app.

Avoid including text on your launch screen. Because launch screens are static, any displayed text won’t be localized.

Downplay launch. People are likely to switch apps frequently, so design a launch screen that doesn’t draw attention to the app launching experience.

Don’t advertise. The launch screen isn’t a branding opportunity. Don’t design an entry experience that looks like a splash screen or an “About” window. Don’t include logos or other branding elements unless they’re a static part of your app’s first screen.

I’ll stick with Apple. Thanks…

@smacewan You’re welcome!


3. Adding an extra property, so SwiftUI knows how to animate your shape

under struct FuberU: Shape is misleading (I think)

Here FuberU is implementing the protocol Animatable which gives the control to property that need to be animated and in this case it is the percent property of the FuberU.

Am I missing something here?

@ronyr Can you please help with this when you get a chance? Thank you - much appreciated! :]

@pgudivada I’m sorry for missing your comment. Are things clearer now? If not, can you please explain your question? I’m not sure I follow…

This tutorial is more than six months old so questions are no longer supported at the moment for it. Thank you!