Développeurs
Préparer votre app pour l'iPhone Duo : la checklist par priorité
Checklist par priorité pour adapter votre app à l'iPhone Duo : size classes, safe areas, SDK iOS 27.1, barres verticales, ArrangementView, charnière et tests.
Par la rédaction AppleDuoPublié le 10 min de lecture
Sur cette page
- Que deviennent sur iPhone Duo les apps compilées avec un ancien SDK ?
- Quelle checklist suivre pour préparer une app à l'iPhone Duo ?
- Comment corriger d'abord les size classes, les marges et les safe areas ?
- Comment obtenir l'expérience plein écran sur iPhone Duo ?
- Comment changent les barres d'outils, la barre verticale et les sheets ?
- Quels conteneurs et quelles API gèrent le pli à ma place ?
- Comment tester les postures de l'iPhone Duo et utiliser les agent skills de Xcode ?
- De quels éléments App Store ai-je besoin pour l'iPhone Duo ?
- Ce qu'il faut retenir
L'iPhone Duo est en vente depuis le 23 octobre 2026, avec iOS 27.1. Préparer votre app pour l'iPhone Duo, c'est l'adapter à deux écrans, une charnière, une caméra sur le côté et des barres qui passent sur le bord. Cela fait beaucoup de terrain à couvrir, alors cette checklist met le travail dans l'ordre : d'abord les corrections utiles à toutes les apps, ensuite les finitions propres à l'appareil.
Cet article est le point d'entrée de notre série iPhone Duo pour les développeurs. Chaque étape renvoie vers un guide plus détaillé. Il s'appuie sur les Tech Talks d'Apple, les pages iPhone Duo d'Apple, les Apple Developer Forums et des retours de développeurs. L'équipe AppleDuo n'a pas testé ces API sur l'appareil, et la plupart sont nouvelles dans iOS 27 ou iOS 27.1 : certains détails peuvent donc changer d'une version à l'autre.
Que deviennent sur iPhone Duo les apps compilées avec un ancien SDK ?
Votre app fonctionne déjà sur iPhone Duo. Son apparence dépend du SDK avec lequel vous l'avez compilée. La page de préparation à l'iPhone Duo d'Apple décrit trois niveaux :
| Compilée avec | Écran intérieur (ouvert) | Écran extérieur et barres |
|---|---|---|
| SDK iOS 26 ou antérieur | Centrée, entourée d'espace vide | Le contenu se place à gauche de la barre d'état et de la caméra |
| SDK iOS 27 | Occupe la majeure partie de l'écran mais évite la barre d'état sur le bord droit | Adaptation partielle |
| SDK iOS 27.1 ou ultérieur | Occupe tout l'écran | Les barres d'outils et d'onglets passent à la verticale sous la barre d'état |
Apple recommande de vérifier que votre contenu s'adapte aux barres verticales avant de livrer avec le SDK 27.1. Attendre n'est pas non plus une option à long terme : Apple indique qu'à partir d'avril 2027, les envois sur l'App Store devront utiliser le SDK iOS 27 ou ultérieur.
Quelle checklist suivre pour préparer une app à l'iPhone Duo ?
Voici l'ordre que nous recommandons, selon ce que chaque étape corrige au regard de l'effort. Les trois premières sont celles que suggère Sarun Wongpatcharapakorn si vous avez peu de temps pour adapter votre app.
| Priorité | Étape | Introduit dans | Pour aller plus loin |
|---|---|---|---|
| 1 | Utiliser les size classes, pas l'idiom ni l'orientation | API existante | Size classes de l'iPhone Duo |
| 2 | Respecter les marges de mise en page et les marges de safe area asymétriques | API existante ; nouvelles options de marge dans iOS 27 | Safe areas et marges de contenu sur iPhone Duo |
| 3 | Compiler avec Xcode 27.1 et le SDK iOS 27.1 | Xcode 27.1 | Cet article |
| 4 | Donner aux éléments de barre d'outils une icône et un titre | SDK iOS 27.1 (barres verticales) | La barre d'outils verticale de l'iPhone Duo |
| 5 | Vérifier le placement des sheets | SDK iOS 27 | Sheets et presentationPlacement sur iPhone Duo |
| 6 | Utiliser les conteneurs système et ArrangementView | iOS 27.1 | ArrangementView en SwiftUI |
| 7 | Garder les commandes placées à la main hors des reserved regions | iOS 27.1 | Reserved regions et le pli |
| 8 | Ajouter des effets de charnière là où ils sont utiles | iOS 27.1 | États de charnière et onHingeChange |
| 9 | Tester chaque posture dans Device Hub | Xcode 27.1, davantage dans 27.2 | Cet article |
| 10 | Publier des captures d'écran iPhone Duo | App Store Connect, octobre 2026 | Tailles des captures App Store pour l'iPhone Duo |
Comment corriger d'abord les size classes, les marges et les safe areas ?
Les size classes pilotent l'essentiel de la mise en page sur iPhone Duo. Le Tech Talk d'Apple Prepare your app for iPhone Duo les détaille : l'écran extérieur est en largeur compact et hauteur regular en portrait, et compact dans les deux sens en paysage. L'écran intérieur est regular dans les deux sens. Comme le résume Sarun, plié c'est un iPhone, déplié c'est un iPad.
Le piège, c'est que beaucoup d'apps interprètent une largeur regular comme « c'est un iPad ». La page de préparation d'Apple le déconseille : les apps iPhone peuvent désormais avoir n'importe quelle combinaison de size classes, alors basez votre code sur la size class elle-même, pas sur l'idiom de l'appareil, l'orientation ou une hauteur codée en dur. Cette vue SwiftUI lit l'environnement et choisit une mise en page :
struct LibraryView: View {
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
var body: some View {
if horizontalSizeClass == .regular {
TwoColumnLibrary()
} else {
SingleColumnLibrary()
}
}
}
Les safe areas sont la deuxième correction. Sur iPhone Duo, les barres verticales ajoutent des marges leading et trailing, et Apple prévient que les marges opposées ne sont pas égales. Les marges de mise en page sont elles aussi asymétriques. Sarun note qu'elles peuvent valoir 20 points d'un côté et 0 à côté de la barre. Ce modèle UIKit tiré du Tech Talk traite chaque côté séparément :
// À éviter : suppose que les marges leading et trailing sont identiques
let width = view.bounds.width - view.safeAreaInsets.left * 2
// À préférer : applique à chaque bord sa propre valeur
let width = view.bounds.inset(by: view.safeAreaInsets).width
Gardez le contenu interactif dans la safe area et laissez les arrière-plans la dépasser. Notre guide sur les size classes de l'iPhone Duo contient le tableau complet des postures, et safe areas et marges de contenu sur iPhone Duo présente les nouvelles API de marge.
Comment obtenir l'expérience plein écran sur iPhone Duo ?
Recompilez avec Xcode 27.1, qui ajoute la prise en charge du développement pour l'iPhone Duo et le SDK iOS 27.1. Le Tech Talk d'Apple indique que Xcode 27.1 est nécessaire pour l'expérience plein écran. Avant cela, éliminez les pratiques que liste la page de préparation d'Apple :
- Remplacez
UIScreen.main.boundsparview.boundsouwindow.bounds. Apple qualifieUIScreen.maind'ambigu sur un appareil à deux écrans et annonce son abandon prochain. Lisez l'échelle depuistraitCollection.displayScale. - Remplacez
UIWindow(frame: UIScreen.main.bounds)parUIWindow(windowScene:). Blake Crosley et Adapty indiquent tous deux que les apps compilées avec le dernier SDK nécessitent le cycle de vie basé sur les scènes. - Supprimez la logique de mise en page basée sur
UIDevice.current.orientationouinterfaceOrientation. Comparez plutôt la largeur et la hauteur de l'espace dont vous disposez. - Vérifiez les images et vidéos plein cadre qui utilisent aspect fill. La forme de l'écran intérieur peut rogner plus que prévu.
Et UIRequiresFullScreen ? Apple indique que l'iPhone Duo le respecte toujours, mais votre app est quand même redimensionnée quand l'appareil s'ouvre ou se ferme. Ce n'est pas une porte de sortie. Sur l'écran intérieur, le système ignore aussi les orientations d'interface prises en charge et met l'app à l'échelle.
Sur les Apple Developer Forums, un evangelist d'Apple a donné le même conseil dans le fil 848047 : utilisez les size classes plutôt que des tests sur l'appareil, et prenez en charge toutes les orientations, puisque les apps iPhone peuvent désormais être redimensionnées sur iPad et sur Mac via la recopie de l'iPhone.
Comment changent les barres d'outils, la barre verticale et les sheets ?
Avec le SDK iOS 27.1, les barres de navigation, les barres d'outils et les barres d'onglets passent dans une barre verticale le long d'un bord, sur l'écran extérieur et sur l'écran intérieur en paysage. Le Tech Talk d'Apple Raise the bar with iPhone Duo explique les règles. Seules les barres gérées par des conteneurs de navigation se déplacent : les instances personnalisées de UIToolbar, UINavigationBar ou UITabBar restent où elles sont.
La barre verticale a une largeur fixe, elle privilégie donc les symboles. Les éléments dotés d'une icône passent sur l'axe vertical, et les éléments uniquement textuels restent horizontaux. Le résumé de Sarun est simple : donnez aux éléments de barre d'outils une icône et un titre, et vous êtes probablement prêt. Le titre reste utilisé dans les menus de débordement. Les placements et le modificateur ci-dessous sont écrits tels que les montre le Tech Talk d'Apple. .topBarPinnedTrailing est nouveau dans iOS 27 :
.toolbar {
ToolbarItem(placement: .cancellationAction) {
Button("Close", systemImage: "xmark") { dismiss() }
}
ToolbarItem(placement: .topBarPinnedTrailing) {
Button("Done", systemImage: "checkmark") { save() }
}
ToolbarItem {
Button("Share", systemImage: "square.and.arrow.up") { share() }
}
.visibilityPriority(.high)
}
Retour ou Fermer se place en haut, puis l'action principale, puis le reste. Quand la place manque, les éléments débordent de bas en haut, et .visibilityPriority détermine lesquels restent. Une mise en page d'une seule page, chargée vers le bas, comme Calculette, peut désactiver la barre avec .toolbarVerticalBehavior(.disabled). Notre guide sur la barre d'outils verticale de l'iPhone Duo couvre le débordement, les vues personnalisées et les équivalents UIKit.
Les sheets changent aussi. Sur l'écran extérieur, la barre d'outils d'une sheet est verticale. Sur l'écran intérieur, les sheets sont centrées par défaut et peuvent se placer côté leading ou trailing. Lisez sheets et presentationPlacement sur iPhone Duo pour les détails.
Quels conteneurs et quelles API gèrent le pli à ma place ?
Commencez par les conteneurs système. NavigationSplitView et UISplitViewController se réduisent à une seule pile quand l'appareil est fermé et affichent des colonnes quand il est ouvert. TabView s'adapte à chaque posture, et sur l'écran intérieur vous pouvez activer une barre latérale avec .defaultTabBarPlacement(.sidebar). List et ScrollView s'adaptent automatiquement au pli.
Pour les mises en page personnalisées à deux vues, iOS 27.1 ajoute ArrangementView en SwiftUI et UIArrangementViewController en UIKit, présentés dans Strike a pose with adaptive layouts on iPhone Duo. Le style .split répartit l'espace entre deux vues, et .overlay les superpose jusqu'à ce que l'appareil se plie. Ne placez pas une ArrangementView dans une List, une ScrollView ou un autre conteneur de navigation. Consultez notre guide ArrangementView.
Pour les commandes que vous placez à la main, interrogez les reserved regions, elles aussi nouvelles dans iOS 27.1. Une région de division marque le pli, et une région d'occlusion marque la caméra FaceTime intérieure lorsqu'elle est active. Apple montre l'appel SwiftUI sous la forme proxy.reservedRegions(kind: .division) dans un GeometryReader. Notre article sur les reserved regions et le pli explique les régions actives et inactives.
La charnière elle-même sert aux effets, pas à la mise en page. onHingeChange en SwiftUI et UIHingeInteraction en UIKit, tous deux indiqués comme iOS 27.1 dans la documentation d'Apple, signalent les états fermé, partiellement ouvert et entièrement ouvert, ainsi qu'un angle continu. La valeur de charnière vaut nil sur les appareils qui n'en ont pas, vérifiez-la donc toujours. Pour trouver des idées, voyez comment Marbles Unhinged transforme le pli en rampe, puis lisez états de charnière et onHingeChange.
Comment tester les postures de l'iPhone Duo et utiliser les agent skills de Xcode ?
Sélectionnez le simulateur iPhone Duo dans Xcode 27.1 et lancez votre app dans Device Hub. Utilisez les commandes à l'écran pour ouvrir, fermer, faire pivoter et plier l'appareil, et vérifiez chaque posture : fermé en portrait, fermé en paysage, ouvert en portrait et ouvert en paysage. Apple suggère aussi de faire glisser l'app en Split View d'un côté, puis de l'autre, pour confirmer que le contenu vertical fonctionne des deux côtés. Vérifiez également les langues écrites de droite à gauche, puisque la barre verticale reste du même côté de l'appareil.
Sarun indique que le Device Hub de Xcode 27.2 peut aussi simuler une pression mémoire, des animations au ralenti, une secousse et une chute. C'est utile pour vérifier que l'état survit à un pliage sous charge.
Xcode 27 inclut aussi des agent skills pour les bonnes pratiques modernes et les nouvelles API. La page de préparation d'Apple indique que vous pouvez demander à l'assistant de code de Xcode de « préparer mon app pour l'iPhone Duo ». Pour utiliser ces skills avec un autre agent de code, exportez-les avec la commande partagée par Sarun :
xcrun agent skills export --output-dir ~/Downloads/xcode-skills
Si vous avez exporté les skills avant Xcode 27.1, exportez-les à nouveau. La skill uikit-app-modernization s'appelle désormais app-resizability, et elle ajoute la prise en charge de SwiftUI et de l'iPhone Duo. Apple précise que la skill ne repère pas tout, alors passez en revue à la main les pratiques ci-dessus.
De quels éléments App Store ai-je besoin pour l'iPhone Duo ?
App Store Connect propose un emplacement de captures d'écran iPhone Duo, avec des tailles distinctes pour l'écran extérieur et l'écran intérieur. Lorsque vous soumettez des captures iPhone Duo, votre page produit affiche un badge indiquant que l'app est optimisée pour l'iPhone Duo. Apple annonce que ces captures seront obligatoires à partir d'avril 2027. Notre guide sur les tailles des captures App Store pour l'iPhone Duo donne toutes les tailles d'emplacement et ce qu'il faut montrer dans les trois premières images.
Deux éléments complètent un lancement. Apple suggère de soumettre une demande de mise en avant dans App Store Connect en mentionnant la prise en charge de l'iPhone Duo, y compris toutes les postures de l'appareil. Apadmi recommande aussi de faire le point sur votre couverture App Intents. Avec les nouvelles capacités de Siri dans iOS 27, notre guide sur App Intents et l'index sémantique dans iOS 27 est un bon projet pour la suite. Pour vous inspirer, parcourez les jeux de Built for the fold, qui intègrent la charnière au gameplay.
Ce qu'il faut retenir
- Les apps compilées avec le SDK iOS 26 ou antérieur fonctionnent, mais apparaissent avec des bandes vides une fois l'appareil ouvert. Seul le SDK iOS 27.1 de Xcode 27.1 remplit l'écran.
- Corrigez d'abord les size classes, les marges de mise en page et les marges de safe area. Ne supposez jamais qu'une largeur regular signifie iPad, ni que les marges opposées sont identiques.
- Donnez à chaque élément de barre d'outils une icône et un titre, et utilisez les barres système pour qu'elles puissent passer dans la barre verticale.
- Utilisez NavigationSplitView, TabView et ArrangementView pour la mise en page, les reserved regions pour les commandes placées à la main, et la charnière uniquement pour les effets.
- Testez chaque posture dans Device Hub, réexportez les agent skills de Xcode après la 27.1, et ajoutez des captures d'écran iPhone Duo avant avril 2027.
Commencez par les size classes de l'iPhone Duo, puis passez à la barre d'outils verticale. Quand votre app est prête, la page À propos explique comment faire mettre en avant votre jeu iPhone Duo.
Questions fréquentes
Les apps existantes fonctionnent-elles sur iPhone Duo sans modification ?
Oui. Les apps compilées avec le SDK iOS 26 ou antérieur fonctionnent, mais lorsque l'appareil est ouvert elles apparaissent centrées, entourées d'espace vide. Seules les apps compilées avec le SDK iOS 27.1 ou ultérieur occupent tout l'écran.
Quelle version de Xcode faut-il pour l'iPhone Duo ?
Xcode 27.1 ajoute la prise en charge du développement pour l'iPhone Duo, dont le simulateur iPhone Duo dans Device Hub et le SDK iOS 27.1. Xcode 27.2 ajoute d'autres simulations dans Device Hub, comme la pression mémoire et une chute.
Que faut-il corriger en premier pour l'iPhone Duo ?
Corrigez d'abord les size classes, les marges de mise en page et les marges de safe area. Arrêtez de faire dépendre votre code de l'idiom de l'appareil ou de l'orientation, et ne supposez pas que les marges leading et trailing sont égales.
UIRequiresFullScreen exclut-il mon app du redimensionnement sur iPhone Duo ?
Non. Apple indique que l'iPhone Duo respecte toujours UIRequiresFullScreen, mais que l'app est quand même redimensionnée quand l'appareil s'ouvre ou se ferme. Prévoyez le redimensionnement dans tous les cas.
Quand devrai-je prendre en charge l'iPhone Duo sur l'App Store ?
À partir d'avril 2027, Apple exige que les envois utilisent le SDK iOS 27 ou ultérieur et indique que les soumissions devront inclure des captures d'écran iPhone Duo. D'ici là, ces captures sont facultatives mais ajoutent un badge à votre page produit.
Sources
- Prepare your app for iPhone Duo · Apple Developer (Tech Talks)
- Strike a pose with adaptive layouts on iPhone Duo · Apple Developer (Tech Talks)
- Raise the bar with iPhone Duo · Apple Developer (Tech Talks)
- Leverage multiple displays and scenes on iPhone Duo · Apple Developer (Tech Talks)
- iPhone Duo: Three steps to make your app shine · Apple Developer
- Prepare and submit your apps for iPhone Duo · Apple Developer News
- Recommended source of truth for adapting UIKit layouts on iPhone Duo · Apple Developer Forums
- Start with size classes, layout margins, and safe area insets · Sarun W. (@sarunw) on X
- Export Xcode 27 agent skills · Sarun W. (@sarunw) on X
- Re-export agent skills after Xcode 27.1 · Sarun W. (@sarunw) on X
- Xcode 27.2 Device Hub simulations · Sarun W. (@sarunw) on X
- Give toolbar items both an icon and a title · Sarun W. (@sarunw) on X
- iPhone Duo for developers · Blake Crosley
- How to adapt your iOS app to iPhone Duo · Adapty
- iPhone Duo: what now for your app? · Apadmi
Faites du pli une partie de votre app.
Nous présentons les apps et les jeux qui exploitent vraiment l’iPhone Duo. Envoyez-nous la vôtre avec un lien vers l’App Store, ou découvrez ce que d’autres ont créé.