More screenshots

    Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseDotsDots+21 more

    iPhone Duo Ready: Foldable Fixes (Flutter & React Native)

    1

    Find what the iPhone Duo breaks in your Flutter or React Native app before your users do: banners refused unfolded, bars under the camera, stretched phone layouts. Then fix each one with a test.

    $15

    Secure checkout via Stripe

    Money-back guarantee

    Converts to your local currency at checkout

    Security scanned
    iPhone Duo Ready: Foldable Fixes (Flutter & React Native)

    iPhone Duo Ready: Foldable Fixes (Flutter & React Native)

    Example session with this skill installed

    My Flutter app has an update going to the App Store next week. Check it's ready for the iPhone Duo and tell me what to fix first.

    • Read your context and instructions
    • Compiled the iphone duo ready

    Summary

    Audited my-app for the iPhone Duo: 1 error, 6 warnings, 1 info. The banner error costs ad revenue on every unfolded Duo, so it goes first.

    Audit output (real, app name replaced)

    $ python3 scripts/duo_audit.py --app .
    my-app (flutter)
      ERROR DUO-BANNER  packages/ui/lib/widgets/google_banner_ad.dart:84
            adaptive banner asked at the full window width; unfolded Duo (951 pt) is refused 'Ad size will not fit on screen'. Retry at the short side (references/banner-fix.md).
      WARN  DUO-BANNER-FOLD  packages/ui/lib/widgets/google_banner_ad.dart:84
            a banner loaded unfolded is kept after folding to the 466 pt cover screen; drop it in didChangeDependencies when wider than the window.
      WARN  DUO-ORIENT  lib/bootstrap.dart:51
            locks portrait, and no landscape or wide layout found. Unfolded, iOS refuses the lock (UISceneErrorDomain Code=101) and runs the app at 951x669.
      WARN  DUO-ONECOLUMN
            no screen switches to two panes on a wide window. Unfolded (951x669) the app shows one phone column across a small iPad. Split list/detail and dashboard screens at 840 pt: references/two-pane.md.
      WARN  DUO-SIDECOLUMN  packages/ui/lib/screens/settings/settings_screen.dart:24
            2 file(s) draw their own top or bottom bar and nothing moves it into the Duo's side status column (iOS 27.1 SDK: right inset 84, top 0 on the cover). references/side-column.md.
      WARN  DUO-STATUSHIDDEN  ios/Runner/Info.plist
            UIStatusBarHidden is true: the unfolded Duo shows no side status column, so the app keeps top bars unlike every other app. Show it unless the app is full-screen by design (a game). references/side-column.md.
      WARN  DUO-TESTS
            no test resizes to a Duo size. Add references/resize-test.md's fold test.
      INFO  DUO-SHOTS
            no iPhone Duo screenshots. Required on every App Store submission from April 2027.
    

    What each finding means here

    CheckWhat a Duo user seesFix
    DUO-BANNERNo banner at all when unfolded: Google refuses any banner wider than the 466 pt cover screen ("Ad size will not fit on screen")Retry once at the short side (references/banner-fix.md), with a test that fails first
    DUO-BANNER-FOLDBanner loaded unfolded is squeezed after foldingDrop it in didChangeDependencies when wider than the window
    DUO-ORIENTPortrait lock refused unfolded; app runs at 951x669Landscape layout for each screen
    DUO-ONECOLUMNOne phone column stretched across a small iPadSplit settings and list screens into two panes at 840 pt
    DUO-SIDECOLUMNAppBar runs under the camera in the right-hand status columnSwap Scaffold + AppBar for SideBarScaffold (references/side-bars-code.md)
    DUO-STATUSHIDDENInner screen has no system columnSet UIStatusBarHidden to false
    DUO-TESTSNothing above is caught by the suiteResize test: 466x678, 951x669, 669x951 and back, asserting where buttons land

    Next steps

    1. Write the banner resize test and watch it fail, then apply the retry.
    2. Add the side-column test (FakeViewPadding(right: 84, bottom: 34)) and move the bars.
    3. Run on the Xcode 27.1 Duo simulator: scripts/duo_posture.sh open, then screenshot --display=3 (inner) and --display=1 (cover).
    4. Check the release build with scripts/sdk_check.sh: anything below iphoneos27.1 is letterboxed unfolded.

    Connects securely to your tools. The creator never sees your data.

    About this skill

    The iPhone Duo went on sale on 23 October 2026, and most apps on it are broken in ways nothing warns you about. Your tests pass, the app builds, and then on the unfolded screen there's no banner ad, the app bar runs under the camera, and the phone layout is stretched across a small iPad.

    Flutter sees the fold as a window resize and nothing else. No hinge, no posture. So most of what breaks is a resize bug you can catch in a widget test, once you know what to look for.

    What it finds

    • Banner ads refused when unfolded. Google's SDK won't serve a banner wider than the main screen, and on the Duo that's the 466 pt cover screen. 679 pt loads and 680 fails with "Ad size will not fit on screen". The skill includes a drop-in retry and its test.
    • Bars under the camera. Built with the iOS 27.1 SDK, the Duo puts the status bar in a column down the right edge, on both screens. A Flutter AppBar runs straight across it. The skill includes a SideBarScaffold that moves back, actions and bottom toolbar buttons into that column, with tests.
    • A hidden status bar. With UIStatusBarHidden set, the inner screen gets no column and your app looks unlike everything else on the device.
    • One phone column on a small iPad. It shows how to split list and detail screens into two panes at 840 pt, with a drop-in AdaptivePanes widget and the traps (grids sized from the window, a selection lost on fold).
    • Portrait locks iOS ignores unfolded, a missing UIScene manifest that stops an iOS 27 SDK build from launching, a camera controller drawn after release, and a lazy list that drops a half-typed text field on fold.
    • Letterboxed builds. sdk_check.sh reads which SDK built your .app or .ipa. Below iOS 27.1 the inner screen is letterboxed.

    Fold the simulator without touching the mouse

    simctl has no hinge control. duo_posture.sh open presses the Open, Closed and Partially Open buttons in Xcode's Device Hub through macOS Accessibility, so your cursor and focus stay put. That's how the screenshots in this listing were taken.

    How it works

    Run duo_audit.py --app . for file:line findings, or --workspace <dir> for one line per app. Then the skill works through them with Claude: errors first, a resize test that fails before each fix, a check on the Duo simulator, and Duo screenshots last.

    I build small apps on my own and have a shelf of them on the App Store and Google Play. Every fix here came from one of them, found on the Xcode 27.1 Duo simulator.

    How to use

    1. 1

      Connect your agent to the Agensi MCP

      Copy the prompt and paste it into Claude, ChatGPT, Cursor or any agent that supports MCP. It sets up the connection for you. Manual setup

    2. 2

      Sign in to Agensi

      Your agent shows a sign-in link. Sign in and click Allow.

    3. 3

      Ask for what you need

      Your agent loads this skill and uses it on your task. It always asks before any payment.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill goes through the trust checks below.

    Security scanned

    Checked by our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    Money-back guarantee

    Doesn't do what its page promises? You get your money back.

    Trust & safety

    Security scan

    Security scan passed today

    Requires

    Python 3.9+
    macOS + Xcode 27.1 (simulator steps only)
    Flutter or React Native project

    Listedtoday

    What's inside

    Frequently Asked Questions