WeAreDevelopers LIVE Apr 28, 2021

SwiftUI In Production

Peter Steinberger

Is SwiftUI ready for a massive legacy Objective-C codebase? Learn how to conquer opaque crashes and complex UIKit bridging to ship robust, production-ready enterprise SDKs.

Pause
Mute Enter Fullscreen
#1 about 5 min

Evaluating declarative interface readiness for production environments

Early experiences with modern interface tools reveal a mix of rapid development benefits and significant stability challenges.

#2 about 2 min

Testing experimental frameworks in constrained application environments

Rewriting basic settings menus in a smaller app provides a safe environment to learn new declarative paradigms.

#3 about 2 min

Replacing legacy signature flows with declarative components

Upgrading an aging electronic signature interface improves the developer experience for handling complex application states.

#4 about 2 min

Preventing merge conflicts by enforcing programmatic user interfaces

Mandating programmatic interface construction avoids the traditional pain points of collaboration with visual interface builder tools.

#5 about 2 min

Integrating high-performance native code inside declarative views

Retaining existing low-level drawing logic provides native performance beyond current declarative input capabilities.

#6 about 3 min

Supporting legacy operating systems via conditional hosting controllers

Encapsulating new declarative code inside hosting controllers maintains seamless backward compatibility for older deployment targets.

#7 about 2 min

Targeting specific operating system versions with stable platform workarounds

Selectively implementing platform-specific workarounds on finalized older operating systems prevents regressions during future system updates.

#8 about 7 min

Bridging responder chains to enable native popover presentations

Walking the responder chain to access internal view controllers enables native presentation styles missing from declarative frameworks.

#9 about 3 min

Placing navigation elements using targeted open-source layout extensions

Selectively importing specific components from external packages fills gaps in navigation bar alignment without bloating bundle size.

#10 about 4 min

Diagnosing internal graph crashes triggered by complex declarative layouts

Avoiding specific nested container closures prevents irreproducible differential layout crashes on older system versions.

#11 about 2 min

Bridging legacy objects to reactive observation state protocols

Manually triggering standard publisher events bypasses inheritance limitations when maintaining older data model compatibility.

#12 about 4 min

Gaining automatic input focus through underlying platform introspections

Subclassing base view initializers uncovers underlying platform text fields to manually invoke keyboard responder logic.

#13 about 1 min

Preventing continuous scaling layout loops through custom view extensions

Encapsulating specific typography scaling rules inside custom extensions resolves catastrophic interface layout infinite loops.

#14 about 1 min

Encapsulating complex drawing canvases within simple declarative representable structures

Constructing standard representable wrappers with declarative update blocks modernizes imperative configuration patterns efficiently.

#15 about 2 min

Converting legacy observer events into unified reactive communication streams

Mapping older observer callbacks into native publishers creates seamless data flows for modern declarative interface elements.

#16 about 4 min

Calculating spatial intersections to retrofit custom dynamic layout adjustments

Calculating frame intersections within a custom view coordinator mimics system-level keyboard avoidance adjustments missing on older platforms.

#17 about 2 min

Validating team adoption of robust declarative state management patterns

Executing new technology trials provides engineering teams with confident state management patterns despite requiring robust compatibility adjustments.

Matching moments

6:40 min

Production scaling strategies and SwiftUI view styling techniques

Andrew Morgan · World Congress 2021

4:26 min

Analyzing SwiftUI as an internal domain specific language

Milan Todorović · World Congress 2023

2:27 min

Managing views and state in SwiftUI applications

Andrew Morgan · World Congress 2021

6:57 min

Setting up a native SwiftUI application in Xcode

MIlan Todorović MIlan Todorović · World Congress 2025

5:37 min

Adopting Compose gradually in a production legacy app

Crístian Viana · World Congress 2023

2:15 min

Transitioning native desktop graphics implementations to the web

Chris Heilmann +3 · LIVE

Upcoming sessions on this topic

Open session

World Congress 2026 North America

September 25, 2026 · 14:10–14:40

Stage 7

Why Your iOS App Feels Broken After an Hour: Diagnosing Long-Session Performance on Real Devices

Vasuki Uday Kiran Vudathala

Staff Performance Engineer at ServiceNow

Vasuki Uday Kiran Vudathala
Open session

World Congress 2026 North America

September 24, 2026 · 14:50–15:20

Stage 9

How to generate business value through performance optimizations

Nikolai Sidiropulo

Software Engineer at Meta

Nikolai Sidiropulo
Open session

World Congress 2026 North America

September 24, 2026 · 13:30–14:00

Stage 1

How AI Agents Tripled Our Test Coverage on a 1.8M-Line iOS Codebase

Kush Agrawal

Staff Software Engineer, Platform

Kush Agrawal
Open session

World Congress 2026 North America

September 24, 2026 · 14:10–14:40

Stage 9

One Repo, One Strategy: Scalable Full-Stack Testing in a Monorepo World

Bartosz Leczycki, Paweł Matynia

Bartosz Leczycki
Paweł Matynia
Open session

World Congress 2026 North America

September 25, 2026 · 09:40–10:10

Stage 3

Still on 4.8 or lower? A Practical Guide to Moving Your "Un-Migratable" .NET Apps

Isaac Levin

Developer Advocate

Isaac Levin
Open session

World Congress 2026 North America

September 25, 2026 · 15:30–15:40

Outdoor Stage

Offloading IoT State: Solving the Memory Crisis on Legacy Hardware

Pravin Nagare

Senior Software Engineer, Roku

Pravin Nagare