Il nuovo iPhone pieghevole arriva il 23 ottobre. Cosa si rompe nella tua app e come risolverlo.

Il nuovo iPhone pieghevole arriva il 23 ottobre. Cosa si rompe nella tua app e come risolverlo.

Apple ha aperto le submission all'App Store per l'iPhone Duo il 5 ottobre, e il dispositivo va in vendita il 23 ottobre. È il primo iPhone pieghevole di Apple: un display esterno più piccolo per l'uso con il dispositivo chiuso, e un display interno più grande quando lo si apre. Il punto critico per gli sviluppatori è che le dimensioni dell'app cambiano nel momento in cui qualcuno piega o distende il dispositivo, e quelle dimensioni non corrispondono sempre allo schermo fisico. Per gestirlo, Apple ha rilasciato il release candidate di Xcode 27.1 il 5 ottobre con il simulatore pieghevole, un Device Hub per verificare ogni postura e un set di API di layout costruite attorno alla piega.

Ecco la parte che fissa la scadenza. Le app costruite con l'iOS 27 SDK si ridimensionano già per riempire la maggior parte del display interno. Compilando con l'iOS 27.1 SDK, la tua app ottiene il badge «ottimizzata per iPhone Duo», con le toolbar e le tab bar che si spostano in una barra verticale sotto l'area di stato. Le versioni precedenti continuano a funzionare, ma con bordi neri. Da aprile 2027 ogni submission all'App Store dovrà includere screenshot per iPhone Duo, quindi anche se per ora salti l'hardware, non puoi rimandare il lavoro sul layout a lungo.

Cosa si rompe davvero

Principalmente due cose. La prima sono le dimensioni dello schermo hardcoded. Le linee guida di Apple sono esplicite: cerca nel tuo progetto UIScreen.main e rimuovilo. Leggi le dimensioni dalla view o dalla window (view.bounds, window.bounds, o GeometryReader in SwiftUI), e rileggi i valori ogni volta che cambiano, perché una piega può ridimensionare la tua app a metà sessione. La seconda è la logica di orientamento. Su iPhone Duo l'orientamento del dispositivo non indica più la forma della tua app, quindi qualsiasi cosa basata su UIDevice.current.orientation o interfaceOrientation va rimossa. Confronta la larghezza e l'altezza dello spazio che hai effettivamente a disposizione.

Per i layout che devono rispondere alla piega stessa, ci sono due nuovi strumenti. Le regioni riservate ti permettono di interrogare il geometry proxy per sapere dove si trovano la cerniera e le fotocamere: una regione .division segna la piega, una regione .occlusion segna una fotocamera, e ciascuna riporta il suo frame e se è attiva in quel momento. La regione della piega è attiva solo quando il dispositivo è parzialmente aperto, un dettaglio utile, perché puoi leggerla mentre il dispositivo è piatto e impostare un numero pari di colonne così nulla finirà mai sulla piega. Il secondo strumento, ArrangementView in SwiftUI (o UIArrangementViewController in UIKit), è un container a due pannelli che divide o sovrappone le tue view primaria e secondaria e sposta il separatore sulla piega automaticamente.

Questo film l'abbiamo già visto

Nei nostri progetti nativi per iOS e Android, le app che hanno superato senza problemi l'era del multitasking iPad e della Split View erano sempre quelle che dimensionavano le view rispetto al loro container, non allo schermo. Quelle con dimensioni hardcoded hanno richiesto interventi veri e propri, e non era mai un pomeriggio veloce. Abbiamo visto la stessa divisione nei progetti in ambito healthcare e IoT, dove una build per telefono e una per tablet condividevano un unico codebase: il team che si fidava delle size class ha consegnato, il team che gestiva caso per caso le dimensioni dello schermo ha speso uno sprint a disfare il lavoro. iPhone Duo è la stessa lezione con una forma nuova. Se il tuo layout si adatta già all'iPad e a iPhone Mirroring su Mac, sei già a buon punto.

Una parola di cautela sulla scorciatoia. Xcode 27.1 ti permette di chiedere all'assistente di codifica di «preparare la mia app per iPhone Duo», e questo eseguirà una scansione per questi pattern e proporrà delle correzioni. È genuinamente utile per trovare ogni UIScreen.main in un codebase grande. Non è però un motivo per fare il merge del diff senza leggerlo. Le modifiche al layout toccano esattamente le schermate su cui i tuoi utenti trascorrono più tempo, e una riscrittura automatica che sposta un controllo fuori dalla piega può altrettanto facilmente portare un target di tocco sotto una fotocamera. Trattalo come qualsiasi altra pull request.

La mossa per questa settimana

Punta una CI lane su Xcode 27.1, compila con l'iOS 27.1 SDK ed esegui le tre o quattro schermate con più traffico attraverso ogni postura nel simulatore: chiuso, aperto, a libro e ruotato. Prima di tutto questo, fai un grep del codebase per UIScreen.main, UIDevice.current.orientation e le costanti di frame fisse. Quella ricerca da sola ti dice quanto è grande questo lavoro, molto prima che tu scriva una riga di nuovo codice di layout. Per la maggior parte delle app è più piccolo di quanto sembri. Per alcune è una riscrittura, ed è meglio saperlo adesso che a marzo 2027.

È anche un buon momento per pensare oltre iOS. La disciplina che iPhone Duo impone, dimensionare rispetto a un container e non fidarsi mai di un viewport fisso, è la stessa che mantiene un'app web leggibile da un telefono a un monitor ultrawide. Quando costruiamo app cloud-native per clienti enterprise, quella responsività è data per scontata. Il mobile nativo viene finalmente spinto nella stessa direzione, e i team che la trattano come un'abitudine architetturale piuttosto che una patch una tantum spenderanno molto meno tempo a rincorrere il prossimo form factor. Puoi vedere come abbiamo affrontato il lavoro cross-platform nel nostro portfolio, e la pagina sviluppo descrive come costruiamo per web e mobile insieme.

Se preparare un'app per un nuovo form factor senza riscrivere il layout da zero ti suona familiare, parliamone.

expert-analysisiosmobile-developmentswiftuitech-news