- Resizing images to fit the available space
- How ScrollView lets us work with scrolling data
- Pushing new views onto the stack using NavigationLink
- Working with hierarchical Codable data
- How to lay out views in a scrolling grid
- Loading a specific kind of Codable data
- Using generics to load any kind of Codable data
- Merging Codable structs
Challenge
- Add the launch date to MissionView, below the mission badge. You might choose to format this differently given that more space is available, but itβs down to you.
- Extract one or two pieces of view code into their own new SwiftUI views β the horizontal scroll view in MissionView is a great candidate, but if you followed my styling then you could also move the Rectangle dividers out too._
- For a tough challenge, add a toolbar item to ContentView that toggles between showing missions as a grid and as a list.