Book Image

An iOS Developer's Guide to SwiftUI

By : Michele Fadda
Book Image

An iOS Developer's Guide to SwiftUI

By: Michele Fadda

Overview of this book

– SwiftUI transforms Apple Platform app development with intuitive Swift code for seamless UI design. – Explore SwiftUI's declarative programming: define what the app should look like and do, while the OS handles the heavy lifting. – Hands-on approach covers SwiftUI fundamentals and often-omitted parts in introductory guides. – Progress from creating views and modifiers to intricate, responsive UIs and advanced techniques for complex apps. – Focus on new features in asynchronous programming and architecture patterns for efficient, modern app design. – Learn UIKit and SwiftUI integration, plus how to run tests for SwiftUI applications. – Gain confidence to harness SwiftUI's full potential for building professional-grade apps across Apple devices.
Table of Contents (25 chapters)
Free Chapter
1
Part 1: Simple Views
5
Part 2: Scrollable Views
8
Part 3: SwiftUI Navigation
11
Part 4: Graphics and Animation
14
Part 5: App Architecture
17
Part 6: Beyond Basics

Using CALayers in SwiftUI

SwiftUI does not support CALayers directly, the equivalent functionality has been essentially combined within Views themselves.

There is also no compelling reason to use CALayers to obtain further acceleration, as that has also been implemented by other means in SwiftUI; in particular, there is no need to use CALayers to render really complex hierarchies of views because SwiftUI does not use Auto Layout. In UIKit, that would have had a rendering cost that increases with the number of views to be rendered. There is not a “layer” abstraction on top of View in SwiftUI.

That said, there are times when you need to implement code that was originally developed for UIKit. SwiftUI provides a protocol, UIViewRepresentable, that can be used for this purpose and allows to basically embed a UIView within a SwiftUI view.

If you need to use a custom UIView within SwiftUI, bear in mind that it is faster to use CALayers rather than Core Graphics.

...