Book Image

Learn SwiftUI

By : Chris Barker
Book Image

Learn SwiftUI

By: Chris Barker

Overview of this book

SwiftUI is the new and powerful interface toolkit that lets you design and build iOS, iPadOS, and macOS apps using declarative syntax. It is a powerful way to develop the UI elements of applications, which would normally be tightly coupled to application logic. Learn SwiftUI will get you up to speed with the framework and cross-device UI development in no time. Complete with detailed explanations and practical examples, this easy-to-follow guide will teach you the fundamentals of the SwiftUI toolkit. You'll learn how to build a powerful iOS and iPadOS application that can be reused for deployment on watchOS. As you progress, you'll delve into UI and unit testing in iOS apps, along with learning how to test your SwiftUI code for multiple devices. The book will also show you how to integrate SwiftUI features such as data binding and network requests into your current application logic. By the end of this book, you will have learned how to build a cross-device application using the SwiftUI framework and Swift programming.
Table of Contents (17 chapters)


In this chapter, we started by integrating a basic MapKit View into SwiftUI, making use of the UIViewRepresentable protocol we picked up in Chapter 7, Creating a Form with States and Data Binding.

From there, we learned how to add annotations to our map using mock data we created in our Helper class. Starting with the basic annotations offered to us by the Apple MapKit framework, we customized our annotations by adding data that was made visible to users when they selected a specific location.

Next, we touched on Apple's Core Location framework by implementing our own MapLocationManager and using Xcode to simulate multiple locations from within our app. We saw how SwiftUI updated our MapView instantly once our location changed.

Finally, we tied everything together by adding another bar button item to our ContentView() that presented our RecipeMapView() as a sheet...