L'ère de l'iPhone redimensionnable : préparez votre app avant septembre
Comment préparer une app iPhone aux écrans redimensionnables ? Le SDK contre lequel vous liez votre app est la limite que trace Apple : le Device Hub de Xcode 27 considère explicitement le mode de redimensionnement comme non pris en charge pour les apps liées à iOS 26 ou antérieur, et chaque entrée sur la redimensionnabilité dans les notes de version d’iOS 27 est conditionnée à « compilée avec le SDK iOS 27 ».12 Ensuite : auditez chaque hypothèse de taille figée (lectures de UIScreen.main.bounds, cadres codés en dur, mises en page conditionnées à l’orientation), appuyez-vous sur les classes de taille et sur les conteneurs SwiftUI adaptatifs, et testez en continu dans les aperçus Resizable Canvas de Xcode 27 et le mode de redimensionnement du Device Hub.2 Le prérequis d’orientation qui bloquait la redimensionnabilité continue est marqué Fixed dans les notes de version actuelles : la voie est donc dégagée.1
Les bêtas d’automne d’Apple ont passé l’été à converger vers un seul message pour les développeurs iPhone : cessez de supposer un rectangle fixe. Les preuves se trouvent dans l’outillage et dans les notes de version plutôt que dans les keynotes : la redimensionnabilité arrive avec la liaison au SDK iOS 27, le canevas d’aperçu se redimensionne librement, et les notes de version ont levé le dernier obstacle structurel à mesure que le cycle de bêta mûrissait. Quel que soit le matériel présenté cet automne, le contrat logiciel a déjà changé.
TL;DR : iOS 27 apporte la redimensionnabilité continue aux apps compilées avec le nouveau SDK ; Xcode 27 livre les surfaces de test correspondantes (aperçus Resizable Canvas, mode de redimensionnement du Device Hub) ; et les notes de version actuelles — l’édition bêta 7, la bêta 7 étant sortie le 24 août — indiquent la condition d’orientation comme Fixed : elle est passée des problèmes connus aux problèmes résolus entre les éditions bêta 4 et bêta 6, et les orientations déclarées ne décident plus si votre app se redimensionne.1 Le travail relève surtout de la soustraction : trouvez les endroits où votre mise en page croit à une seule taille d’écran, et supprimez cette croyance. Ci-dessous, la checklist, dans l’ordre où je la déroulerais.
Pourquoi maintenant
Trois faits datés lancent le chronomètre :
- La bêta 7 est arrivée le 24 août, le cycle étant dans sa phase de stabilisation : les bêtas tardives d’Apple corrigent plutôt qu’elles n’ajoutent, et les versions finales sont sorties en septembre chaque année.1
- La frontière de la redimensionnabilité, c’est la liaison au SDK. Les notes de version de Xcode 27 décrivent l’entrée dans le mode de redimensionnement du Device Hub « avec une app liée à un SDK iOS 26 ou antérieur » comme « non prise en charge ».2 Le même schéma traverse les notes iOS : chaque entrée sur la redimensionnabilité est conditionnée à « compilée avec le SDK iOS 27 ». Recompilez et vous êtes du côté redimensionnable de cette limite ; restez sur l’ancien SDK et vous renoncez à la direction que prend la plateforme.
- Le dernier verrou structurel a sauté. À l’époque de la bêta 4, une app iPad dont
UISupportedInterfaceOrientationsomettait l’une des quatre orientations était traitée comme non redimensionnable en continu : un problème connu dont le contournement documenté avait un coût non documenté que j’ai détaillé dans l’article sur le contournement de la redimensionnabilité. Ce problème est passé des problèmes connus aux problèmes résolus entre les éditions bêta 4 et bêta 6 des notes, et l’édition actuelle l’indique Fixed : « À partir d’iOS 27, les orientations d’interface prises en charge ne devraient plus être une condition de la redimensionnabilité continue. » La liste des problèmes connus d’UIKit dans les notes de la bêta 7 est vide.1
Au total : la plateforme attend désormais que votre mise en page soit fonction de son conteneur, et non d’une fiche technique d’appareil. L’iPad a enseigné cette leçon le premier avec le multitâche ; iOS 27 étend le même contrat à l’iPhone.
La checklist
1. Recompilez avec le SDK iOS 27, puis regardez vraiment
L’adhésion, c’est la recompilation. Avant de changer une ligne de code de mise en page, compilez avec Xcode 27, ouvrez le mode de redimensionnement du Device Hub, et faites glisser. La plupart des apps SwiftUI bien découpées survivent à ce premier contact mieux que leurs auteurs ne l’imaginent ; ce qui casse est instructif, et cela casse toujours aux mêmes rares endroits — c’est précisément l’objet du reste de cette checklist.
2. Traquez les croyances de taille figée
Les fautifs classiques, dans l’ordre où ils mordent en général :
UIScreen.main.boundsutilisé comme « la taille de l’écran ». Dans un monde redimensionnable, il n’y a pas une taille d’écran, etUIScreen.mainest formellement déprécié depuis iOS 26. Dérivez les tailles de votre window scene ou, en SwiftUI, du conteneur via unGeometryReaderemployé avec parcimonie ou uncontainerRelativeFrame(_:)employé délibérément.- Cadres codés en dur et nombres magiques calibrés sur des appareils précis (« 390 points de large, donc un iPhone »). Toute déduction d’appareil du type
if width == <number>vous mentira. - Mise en page conditionnée à l’orientation plutôt qu’à la taille. Les tests d’orientation n’ont jamais été qu’un proxy ; iOS 27 découplant les orientations de la redimensionnabilité, ce proxy est officiellement du poids mort. Branchez sur les classes de taille horizontale et verticale, ce à quoi elles étaient destinées.
- Mise en cache des dimensions au lancement. Tout ce qui est mesuré une seule fois au démarrage puis stocké est périmé dès le premier redimensionnement.
3. Laissez les conteneurs adaptatifs faire leur travail
La boîte à outils de mise en page moderne de SwiftUI a été conçue exactement pour cela : ViewThatFits pour choisir entre plusieurs agencements, containerRelativeFrame pour dimensionner par rapport au conteneur plutôt qu’à l’écran, les grilles et les cadres flexibles pour tout ce qui se situe entre les deux. Si votre app date de l’ère du rectangle fixe, le refactoring le plus rentable consiste généralement à remplacer une mise en page porteuse à base de GeometryReader et d’arithmétique par ces primitives. Les apps UIKit obtiennent le même résultat avec les classes de taille et les sections pilotées par l’environnement de UICollectionViewCompositionalLayout.
Les changements de barre d’outils et de mise en page dans iOS 27 poussent dans la même direction : le framework vous donne désormais un contrôle explicite là où l’espace vient à manquer, et l’espace vient maintenant à manquer dynamiquement.
4. Testez là où le redimensionnement se produit vraiment
Xcode 27 vous offre deux surfaces dédiées, toutes deux arrivées à maturité tôt dans le cycle de bêta :
- Le mode Resizable Canvas dans les aperçus : il n’est plus contraint à des ratios de taille précis (la contrainte a été levée en bêta 2), ce qui vous permet de parcourir toute la gamme de formes que votre app pourrait occuper.2
- Le mode de redimensionnement du Device Hub pour les apps en cours d’exécution, avec les sorties de secours corrigées depuis la bêta 3 (quitter le mode de redimensionnement par un crash ou un passage en arrière-plan ne bloque plus l’écran de l’appareil jusqu’au redémarrage).2
Faites un passage sur chaque écran principal dans chacun des deux. Les bugs que vous trouverez se concentreront dans les écrans qui mettaient en cache, supposaient ou déduisaient.
5. Réexaminez les drapeaux posés il y a des années
UIRequiresFullScreen et les déclarations UISupportedInterfaceOrientations restrictives sont la façon dont les apps se sont historiquement soustraites aux exigences du multitâche iPad. Aucune des deux n’est dépréciée, mais toutes deux sont désormais porteuses d’une manière nouvelle : le cycle de bêta a passé plusieurs éditions à préciser comment elles interagissent avec la redimensionnabilité continue, et les problèmes connus de l’ère bêta 4 concernant le comportement de redimensionnement de UIRequiresFullScreen sont maintenant marqués Fixed dans les problèmes résolus.1 Si ces clés sont dans votre Info.plist à cause d’une décision prise en 2019, c’est le mois pour reprendre cette décision volontairement. L’analyse du coût du contournement détaille les effets de bord du jeu d’orientations à vérifier avant d’élargir quoi que ce soit.
6. Prévoyez les effets de second ordre
Redimensionnable signifie que votre texte se répartit différemment, que vos images se recadrent différemment, que votre NavigationSplitView se replie et se déplie au bon vouloir de quelqu’un, et que vos états vides soigneusement réglés s’affichent à des rapports d’aspect que vous n’avez jamais prévisualisés. Rien de tout cela n’est difficile isolément. C’est tout cela réuni qui explique pourquoi la checklist commence maintenant, et non la semaine où le matériel sort.
Ce que je laisserais de côté
Laissez de côté les spéculations sur des appareils précis. Le contrat de redimensionnabilité est dans le SDK que vous pouvez télécharger aujourd’hui, documenté dans des notes de version que vous pouvez lire aujourd’hui, testable dans un outillage livré avec la première bêta de Xcode 27. Si un iPhone pliable arrive cet automne, les apps qui ont fait la liste ci-dessus sont prêtes ; s’il arrive au printemps prochain, le même travail paie immédiatement sur le multitâche iPad et sur tout ce que la plateforme redimensionnera ensuite. Se préparer au mécanisme vaut mieux que se préparer à la rumeur.
Points clés
- La limite d’adhésion, c’est la liaison au SDK. Recompilez avec le SDK iOS 27 et la redimensionnabilité devient le problème et l’opportunité de votre app ; le Device Hub considère les apps liées à un SDK plus ancien comme non prises en charge en mode de redimensionnement.2
- Le verrou d’orientation a sauté. Les orientations déclarées ne décident plus de la redimensionnabilité : le problème est marqué Fixed dans les notes actuelles, et la liste des problèmes connus d’UIKit est vide.1
- Le travail consiste à supprimer des hypothèses, pas à ajouter des fonctionnalités. Lectures de taille d’écran, mises en page à nombres magiques, proxys d’orientation, caches de lancement : trouvez, remplacez par une mise en page dérivée du conteneur, terminé.
- Testez dans les vraies surfaces. Les aperçus Resizable Canvas et le mode de redimensionnement du Device Hub existent précisément pour cela ; un passage dans chacun, écran par écran, révèle l’essentiel de ce qui va mordre.
FAQ
Mon app devient-elle redimensionnable automatiquement ?
La liaison au SDK est la frontière que trace Apple : les notes de version de Xcode 27 qualifient de non pris en charge le mode de redimensionnement avec des apps liées au SDK iOS 26 ou antérieur, et les notes iOS conditionnent chaque comportement de redimensionnabilité à une compilation avec le SDK iOS 27.12 Ce qui se passe ensuite dépend de votre mise en page : le SwiftUI piloté par le conteneur s’adapte pour l’essentiel ; les hypothèses de taille figée ressortent sous forme de bugs.
Dois-je toujours déclarer les quatre orientations pour être redimensionnable en continu ?
Non : les notes de version actuelles indiquent la condition d’orientation comme Fixed (elle a été levée entre les éditions bêta 4 et bêta 6), en précisant que « les orientations d’interface prises en charge ne devraient plus être une condition de la redimensionnabilité continue ».1 Les bêtas antérieures exigeaient le contournement par les quatre orientations, qui avait des effets de bord à l’échelle de l’app qu’il vaut la peine de comprendre si vous l’avez livré.
UIRequiresFullScreen est-il déprécié maintenant ?
Non. Cette clé reste prise en charge, et les problèmes connus du cycle de bêta concernant son comportement de redimensionnement sont marqués Fixed dans les problèmes résolus des notes actuelles.1 Mais c’est exactement le genre de renoncement vieux de plusieurs années qu’il vaut la peine de reprendre délibérément sur une plateforme pensée d’abord pour le redimensionnement.
À partir de quand cela devient-il urgent ?
Les versions finales d’iOS 27 sont attendues en septembre, et le cycle d’exigences de SDK d’automne d’Apple signifie que les nouvelles soumissions passeront au SDK iOS 27 selon le calendrier habituel d’Apple après cette date. La checklist ci-dessus représente une semaine de travail concentré pour la plupart des apps : confortablement tenable avant la saison des sorties si vous commencez maintenant.
Sources
-
Documentation développeur Apple, iOS & iPadOS 27 Release Notes (édition bêta 7, 24 août 2026). Source du statut Fixed du problème 166422120 : « Sur iPad, si votre app iPad est compilée avec le SDK iOS 27 et que son
UISupportedInterfaceOrientationsn’inclut pas les quatre orientations d’interface, l’app est traitée comme non redimensionnable en continu. À partir d’iOS 27, les orientations d’interface prises en charge ne devraient plus être une condition de la redimensionnabilité continue. » Le problème figurait dans les problèmes connus de l’édition bêta 4 et était passé dans les problèmes résolus dès l’édition bêta 6 (des copies archivées le confirment) ; les quatre problèmes de redimensionnement liés àUIRequiresFullScreende l’ère bêta 4 (178558224, 178559386, 178560235, 178562971) sont de même marqués Fixed dans les problèmes résolus, et la liste des problèmes connus d’UIKit dans l’édition bêta 7 est vide. ↩↩↩↩↩↩↩↩↩↩ -
Documentation développeur Apple, Xcode 27 Release Notes (bêta 6). Source de : le mode de redimensionnement du Device Hub avec « une app liée à un SDK iOS 26 ou antérieur » qualifié de « non pris en charge » ; « les aperçus iOS en mode Resizable Canvas ne sont plus contraints à des ratios de taille précis » ; le bug d’affichage corrigé à la sortie du mode de redimensionnement ; et « Xcode 27 beta 6 inclut Swift 6.4 et les SDK pour iOS 27, iPadOS 27, tvOS 27, watchOS 27, macOS 27 et visionOS 27 ». ↩↩↩↩↩↩↩