‘Universal App’ is an overloaded term. Different platforms use it to refer to different concepts. Even Apple has used it to mean different things: a single app that can run natively in Intel and M1, or a single purchase that will run in all their platforms.
In this workshop, we will cover how to write applications that, using a single codebase, can be compiled to produce binaries that run natively in iOS, iPadOS and macOS, and take advantage of their respective user interfaces. We will write from scratch a simple application using SwiftUI, that takes into account the very important differences that those three platforms have regarding, for example, navigation. We will try to maximize code reuse and maintenance by employing different techniques, such as conditional compilation, or using different files in different targets.