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)


We started by looking at how Xcode interprets a Watch App within an existing project. From this, we learned about extensions and their file structure when created in Xcode.

Next, we created our Apple Watch project and familiarized ourselves with the autogenerated code; we looked at how the newly created My Favourite Recipes Watch target now offers us Apple Watch simulators that we can use in the same way as iOS or iPadOS simulators.

When we finally got stuck into developing our Watch App, we saw how HostingController acts as an entry point for our watchOS app, harnessing our initial SwiftUI View, hence allowing us to create simple List() views and Text() views, just like we had done previously.

We were then introduced to the WatchConnectivity framework. We learned about the APIs available to us for communicating and sending direct messages from our parent app to our Watch...