We’ve arrived at day 96 of the 100 Days of SwiftUI! Yesterday, we were presented with the final milestone challenge of the course. Today, we’re starting our final project, where we’ll focus on optimizing the usage of the screen real estates of iPads and much more. The project’s name? Snowseeker. Let’s dive in!
Snowseeker introduction
In this project we’re going to create SnowSeeker: an app to let users browse ski resorts around the world, to help them find one suitable for their next holiday.
This will be the first app where we’ll focus on using the extra screen real estate an iPad provides.
Working with two side by side views in SwiftUI
One of the smartest, simplest ways that our apps adapt to varying screen sizes is actually baked right in to NavigationView
. We’ve been using that for quite some time now. Paul goes into more detail in his article.
Using alert() and sheet() with optionals
SwiftUI has two ways of creating alerts and sheets, and so far we’ve mostly only used one: a binding to a Boolean that shows the alert or sheet when the Boolean becomes true.
The second option allows us to bind an optional to the alert or sheet, and we used it briefly when presenting map pins.
Using groups as transparent layout containers
SwiftUI’s Group
view is commonly used to work around the 10-child view limit, but it also has another important behavior: it acts as a transparent layout container. This means the group doesn’t actually affect our layout at all, but still gives us the ability to add SwiftUI modifiers as needed, or send back multiple views without using @ViewBuilder
. In this way, it differs from, for example, a section.
Wrap up
And that’s it for day 96! We’ll continue on with this project for the final days, so stay tuned for that. We can see the finish line coming closer with each line of code that we finish. Let’s go!
100 Days of SwiftUI – Day 96