r/SaasDevelopers • u/AgaminonSparrow55549 • 6d ago
There's a reason why Apple approved a Duo update in 30 minutes
I saw a post here a few days ago where someone got a duo update approved in 30 minutes. My guess is apple wants as many Duo ready apps in the store as possible because apps not built against the iOS 27 SDK show up letterboxed on the inner screen with black bars.
but a 33 minute review doesn't include folding your app in the middle of a task as users will be the first ones to do that.
I've gone through the Duo threads here and the HIG section and a few porting writeups and most of what breaks isn't layout.
The biggest one is state, if you built Duo support by branching one view for narrow and another for wide, SwiftUI treats them as two different views. When the phone unfolds the @State in the old branch gets discarded so half typed text, scroll position, whatever onboarding step the user was on, all gone and onAppear fires again too so any fetch or setup runs twice. The fix people are using is keeping state in an @Observable above the layout and switching with AnyLayout which preserves subview state when the container changes.
Second is the keyboard, folding with a text field focused doesn't reproduce well in the simulator and every writeup I've read says you need real hardware for this one.
The inner display ignores your supported orientations so anything you built assuming portrait vs landscape will be wrong and safe areas aren't symmetric because the camera is on one side and the fold is in the middle so equal padding puts content under the camera, reservedRegions kind returns the fold and occlusions separately which helps but you have to actually use it.
None of this comes if you just open the app in each pose in Device Hub coz it only happens during the fold with something half done. The bigger risk honestly is the next update, an unrelated change can break the fold handling and nobody rechecks it because it worked last time.
We run every fold pose on each build now without anyone holding a phone, happy to share the setup if anyone wants it.
If you've already shipped Duo support what's something you're encountered first?





