For iPhone Duo, should I use size classes or GeometryReader? How should I think about which one to reach for?

Asked on 2026-10-29

1 search

For iPhone Duo / resizable iPhone app layouts, think of it like this:

  • Use size classes when you want to make a layout decision based on the available space class — for example, collapsing navigation, switching between compact and regular arrangements, or choosing between broad layout modes.
  • Use GeometryReader or the surrounding view size when you need finer-grained control over the actual dimensions of a specific view.

Apple’s guidance in Modernize your UIKit app is to stop checking user interface idiom for layout decisions and to use size classes instead for sizing constraints. If you need more precision, use the view’s available size rather than scene bounds or orientation.

How to choose

A good rule of thumb:

  • “What layout mode should I use?” → size classes
  • “Exactly how big is this container right now?” → geometry / available size
  • Avoid using:
    • interface idiom
    • interface orientation
    • screen bounds for layout decisions

Mental model

On newer iPhone experiences, your app can appear in more contexts and sizes, so Apple wants apps to be dynamic and adaptive instead of tied to a specific device shape. Size classes are the higher-level signal; geometry is the lower-level measurement.

If you want, I can also give you a SwiftUI vs UIKit decision guide for when to use GeometryReader versus size classes.