Peter Steinberger
SwiftUI In Production
#1about 3 minutes
The state of SwiftUI and its production readiness
SwiftUI presents a new way to build UIs but is still new and risky, prompting an exploration of its use in a production SDK.
#2about 3 minutes
A first experiment rewriting settings with SwiftUI
The initial test involved rewriting an existing settings screen in a free app to gain experience and control before tackling a major feature.
#3about 4 minutes
Why SwiftUI was chosen for a new feature
SwiftUI was selected for a new electronic signature feature because it simplifies view updates, aligns with a UI-as-code philosophy, and integrates well with existing high-performance UIKit components.
#4about 4 minutes
Integrating SwiftUI into an existing Objective-C codebase
The new SwiftUI feature is encapsulated within a UIHostingController to maintain an Objective-C API and provide a fallback for older iOS versions.
#5about 7 minutes
Presenting a true popover on iPhone with UIKit
A custom anchor button embedding a UIView is used to access a view controller and present a UIKit popover, bypassing SwiftUI's default sheet presentation on iPhone.
#6about 3 minutes
Centering items in the navigation toolbar
The SwiftUIX library provides a solution for centering toolbar items on iOS 13, while the native .toolbar modifier is used for iOS 14 and newer.
#7about 3 minutes
Debugging and avoiding attributed graph crashes
Attributed graph crashes are difficult to debug, but one common cause is nested GeometryReaders, which can be avoided with conditional logic for specific OS versions.
#8about 1 minute
Fixing ObservableObject for NSObject subclasses
To support Objective-C compatibility on iOS 13, the objectWillChange publisher must be manually implemented for ObservableObject classes that inherit from NSObject.
#9about 4 minutes
Programmatically setting the first responder
View introspection is used to find the underlying UITextField within a SwiftUI view hierarchy to programmatically call becomeFirstResponder and show the keyboard.
#10about 3 minutes
Wrapping UIKit views and bridging to Combine
Custom UIKit views are wrapped using UIViewRepresentable, and legacy notification patterns like KVO and NotificationCenter are bridged to Combine publishers for seamless state management.
#11about 4 minutes
Implementing manual keyboard avoidance for iOS 13
A custom, invisible view is added to the layout, which resizes based on keyboard notifications to manually implement keyboard avoidance on older iOS versions.
#12about 1 minute
Key takeaways from shipping SwiftUI in production
The experiment was a success, providing a robust set of workarounds and increasing team confidence in using SwiftUI for future features despite the initial challenges.
Related jobs
Jobs that call for the skills explored in this talk.
MARKT-PILOT GmbH
Stuttgart, Germany
Remote
€75-90K
Senior
Java
TypeScript
+1
Matching moments
01:32 MIN
Organizing a developer conference for 15,000 attendees
Cat Herding with Lions and Tigers - Christian Heilmann
05:03 MIN
Building and iterating on an LLM-powered product
Slopquatting, API Keys, Fun with Fonts, Recruiters vs AI and more - The Best of LIVE 2025 - Part 2
04:57 MIN
Increasing the value of talk recordings post-event
Cat Herding with Lions and Tigers - Christian Heilmann
02:48 MIN
Building trust through honest developer advocacy
Devs vs. Marketers, COBOL and Copilot, Make Live Coding Easy and more - The Best of LIVE 2025 - Part 3
03:34 MIN
The business case for sustainable high performance
Sustainable High Performance: Build It or Pay the Price
03:17 MIN
Selecting strategic partners and essential event tools
Cat Herding with Lions and Tigers - Christian Heilmann
03:05 MIN
Building collaborative design tools and the neo-brutalism trend
Slopquatting, API Keys, Fun with Fonts, Recruiters vs AI and more - The Best of LIVE 2025 - Part 2
02:39 MIN
Establishing a single source of truth for all data
Cat Herding with Lions and Tigers - Christian Heilmann
Featured Partners
Related Videos
Mobile at a Crossroads: The Declarative UI App Revolution
Peter Steinberger
From Zero to Mobile Developer in 45 Minutes With SwiftUI
Andrew Morgan
A Journey from Internal Tools to Public SDK
Lucille Tachet
View-Transition-API: Gamechanger for hybrid app-development
Sascha Lehmann
Unlocking Seamless Collaboration: Design-First APIs for UI Components
Lucien Immink
Harnessing Apple Intelligence: Live Coding with Swift for iOS
MIlan Todorović
Unsolved mysteries between Usability and Accessibility in iOS
Moh’d Abualhuda & Stephan Lemnitzer
Project Fugu: Extending the web
Lucien Immink
Related Articles
View all articles



From learning to earning
Jobs that call for the skills explored in this talk.




Ubique Systems UK Limited
Bristol, United Kingdom
£130K
C
MVC
XCode
SQLite
+4

Ubique Systems UK Limited
Bristol, United Kingdom
£130K
C
MVC
XCode
SQLite
+4


MAPP Ltd.
Loughborough, United Kingdom
£61-70K
Senior
REST
Azure
Scrum
Unit Testing
+2

Apple Inc.
Charing Cross, United Kingdom
API
C++
XCode
PyTorch
TensorFlow

Ubique Systems UK Limited
Westonzoyland, United Kingdom
£130K
C
iOS
MVC
XCode
+6