Geliştiriciler
Uygulamanızı iPhone Duo'ya Nasıl Hazırlarsınız: Öncelikli Kontrol Listesi
Uygulamanızı iPhone Duo'ya hazırlamak için öncelikli kontrol listesi: size class'lar, safe area'lar, iOS 27.1 SDK, dikey bar'lar, ArrangementView, menteşe ve test.
AppleDuo EditörlüğüYayınlanma 8 dk okuma
Bu sayfada
- Eski SDK'larla derlenen uygulamalara iPhone Duo'da ne olur?
- Bir uygulamayı iPhone Duo'ya hazırlamanın kontrol listesi nedir?
- Önce size class'lar, layout margin'ler ve safe area'lar nasıl düzeltilir?
- Tam ekran iPhone Duo deneyimi nasıl elde edilir?
- Toolbar'lar, dikey bar ve sheet'ler nasıl değişiyor?
- Hangi container'lar ve API'ler katlanma yerini benim yerime ele alır?
- iPhone Duo duruşları nasıl test edilir ve Xcode'un agent skill'leri nasıl kullanılır?
- iPhone Duo için hangi App Store varlıklarına ihtiyacım var?
- Önemli çıkarımlar
iPhone Duo, 23 Ekim 2026'da iOS 27.1 ile satışa çıktı. Uygulamanızı iPhone Duo'ya hazırlamanız gerekiyorsa iki ekrana, bir menteşeye, yan taraftaki bir kameraya ve kenara taşınan bar'lara uyum sağlıyorsunuz demektir. Bu geniş bir yüzey; bu yüzden bu kontrol listesi işi sıraya koyuyor: önce her uygulamaya yardımcı olan düzeltmeler, ardından cihaza özgü cilalar.
Bu yazı, iPhone Duo geliştirici serimizin merkezi. Her adım daha ayrıntılı bir rehbere bağlanıyor. Apple'ın Tech Talk'larına, Apple'ın iPhone Duo sayfalarına, Apple Developer Forums'a ve geliştiricilerin raporlarına dayanıyor. AppleDuo ekibi bu API'leri donanım üzerinde test etmedi ve çoğu iOS 27 veya iOS 27.1 ile geldi; bu yüzden ayrıntılar sürümler arasında değişebilir.
Eski SDK'larla derlenen uygulamalara iPhone Duo'da ne olur?
Uygulamanız zaten iPhone Duo'da çalışıyor. Nasıl görüneceği, onu hangi SDK ile derlediğinize bağlı. Apple'ın iPhone Duo hazırlık sayfası üç kademe tanımlıyor:
| Derlendiği SDK | İç ekran (açık) | Dış ekran ve bar'lar |
|---|---|---|
| iOS 26 SDK veya öncesi | Etrafında boş alanla ortalanmış | İçerik status bar'ın ve kameranın solunda durur |
| iOS 27 SDK | Ekranın çoğunu doldurur ama sağ kenardaki status bar'dan kaçınır | Kısmi uyarlama |
| iOS 27.1 SDK veya sonrası | Ekranın tamamını doldurur | Toolbar'lar ve tab bar'lar status bar'ın altında dikey olarak yerleşir |
Apple'ın önerisi, 27.1 SDK ile yayımlamadan önce içeriğinizin dikey bar'lara uyum sağladığından emin olmanız. Beklemek de uzun vadeli bir seçenek değil: Apple, Nisan 2027'den itibaren App Store yüklemelerinin iOS 27 SDK veya sonrasını kullanması gerektiğini söylüyor.
Bir uygulamayı iPhone Duo'ya hazırlamanın kontrol listesi nedir?
Her adımın harcanan emeğe göre ne kadar sorun düzelttiğine dayanarak önerdiğimiz sıra aşağıda. İlk üçü, Sarun Wongpatcharapakorn'un uygulamanızı uyarlamak için sınırlı vaktiniz varsa önerdikleri.
| Öncelik | Adım | Geldiği sürüm | Ayrıntılı rehber |
|---|---|---|---|
| 1 | Idiom veya ekran yönü yerine size class kullanın | Mevcut API | iPhone Duo size class'ları |
| 2 | Layout margin'lere ve asimetrik safe area inset'lerine uyun | Mevcut API; iOS 27'de yeni margin seçenekleri | iPhone Duo'da safe area'lar ve content margin'ler |
| 3 | Xcode 27.1 ve iOS 27.1 SDK ile derleyin | Xcode 27.1 | Bu yazı |
| 4 | Toolbar öğelerine ikon ve başlık verin | iOS 27.1 SDK (dikey bar'lar) | iPhone Duo dikey toolbar |
| 5 | Sheet konumunu kontrol edin | iOS 27 SDK | iPhone Duo'da sheet'ler ve presentationPlacement |
| 6 | Sistem container'larını ve ArrangementView'u kullanın | iOS 27.1 | SwiftUI'da ArrangementView |
| 7 | Elle yerleştirilen kontrolleri reserved region'ların dışında tutun | iOS 27.1 | Reserved region'lar ve katlanma yeri |
| 8 | İşe yaradığı yerlerde menteşe efektleri ekleyin | iOS 27.1 | Hinge durumları ve onHingeChange |
| 9 | Her duruşu Device Hub'da test edin | Xcode 27.1, 27.2'de daha fazlası | Bu yazı |
| 10 | iPhone Duo ekran görüntülerini yayımlayın | App Store Connect, Ekim 2026 | iPhone Duo için App Store ekran görüntüsü boyutları |
Önce size class'lar, layout margin'ler ve safe area'lar nasıl düzeltilir?
iPhone Duo'da yerleşimin çoğunu size class'lar belirler. Apple'ın Prepare your app for iPhone Duo Tech Talk'u bunları sıralıyor: dış ekran dikeyde compact genişlik ve regular yükseklik, yatayda iki yönde de compact. İç ekran iki yönde de regular. Sarun'un ifadesiyle, katlıyken bir iPhone, açıkken bir iPad.
Sorun şu ki birçok uygulama regular genişliği "bu bir iPad" olarak yorumluyor. Apple'ın hazırlık sayfası bunu yapmamanızı söylüyor: iPhone uygulamaları artık herhangi bir size class kombinasyonuna sahip olabilir; bu yüzden cihaz idiom'una, ekran yönüne veya sabit kodlanmış bir yüksekliğe değil, size class'ın kendisine göre dallanın. Bu SwiftUI view'u environment'ı okuyup bir yerleşim seçiyor:
struct LibraryView: View {
@Environment(\.horizontalSizeClass) private var horizontalSizeClass
var body: some View {
if horizontalSizeClass == .regular {
TwoColumnLibrary()
} else {
SingleColumnLibrary()
}
}
}
İkinci düzeltme safe area'lar. iPhone Duo'da dikey bar'lar leading ve trailing inset'ler ekler ve Apple karşılıklı inset'lerin eşit olmadığı konusunda uyarıyor. Layout margin'ler de asimetrik. Sarun, margin'lerin bir tarafta 20 point, bar'ın yanında ise 0 olabileceğini belirtiyor. Tech Talk'taki bu UIKit kalıbı her tarafı ayrı ayrı ele alıyor:
// Kaçının: leading ve trailing inset'lerinin eşit olduğunu varsayar
let width = view.bounds.width - view.safeAreaInsets.left * 2
// Tercih edin: her kenarı kendi değeri kadar içeri çeker
let width = view.bounds.inset(by: view.safeAreaInsets).width
Etkileşimli içeriği safe area içinde tutun, arka planların ise onun ötesine uzanmasına izin verin. iPhone Duo size class'ları rehberimizde duruş tablosunun tamamı var; iPhone Duo'da safe area'lar ve content margin'ler ise yeni margin API'lerini anlatıyor.
Tam ekran iPhone Duo deneyimi nasıl elde edilir?
iPhone Duo için geliştirme desteği ve iOS 27.1 SDK ekleyen Xcode 27.1 ile yeniden derleyin. Apple'ın Tech Talk'una göre tam ekran deneyimi için Xcode 27.1 gerekiyor. Bunu yapmadan önce Apple'ın hazırlık sayfasında sıralanan kalıpları temizleyin:
UIScreen.main.boundsyerineview.boundsveyawindow.boundskullanın. Apple, iki ekranlı bir cihazdaUIScreen.main'i belirsiz olarak nitelendiriyor ve kullanımdan kaldırılacağını söylüyor. ÖlçeğitraitCollection.displayScale'den okuyun.UIWindow(frame: UIScreen.main.bounds)yerineUIWindow(windowScene:)kullanın. Blake Crosley ve Adapty, en yeni SDK ile derlenen uygulamaların scene tabanlı yaşam döngüsüne ihtiyaç duyduğunu bildiriyor.UIDevice.current.orientationveyainterfaceOrientation'a dayanan yerleşim mantığını kaldırın. Bunun yerine sahip olduğunuz alanın genişliğini ve yüksekliğini karşılaştırın.- Aspect fill kullanan, kenardan kenara görselleri ve videoları kontrol edin. İç ekranın şekli beklediğinizden fazlasını kırpabilir.
Peki UIRequiresFullScreen? Apple, iPhone Duo'nun bunu hâlâ dikkate aldığını, ancak cihaz açıldığında veya kapandığında uygulamanızın yine de yeniden boyutlandığını söylüyor. Bu bir kaçış yolu değil. İç ekranda sistem ayrıca desteklenen arayüz yönlerinizi yok sayıyor ve uygulamayı ölçeklendiriyor.
Apple Developer Forums'da bir Apple evangelist'i 848047 numaralı başlıkta aynı tavsiyeyi verdi: cihaz kontrolleri yerine size class kullanın ve tüm yönleri destekleyin, çünkü iPhone uygulamaları artık iPad'de ve iPhone Mirroring aracılığıyla Mac'te yeniden boyutlanabiliyor.
Toolbar'lar, dikey bar ve sheet'ler nasıl değişiyor?
iOS 27.1 SDK ile navigation bar'lar, toolbar'lar ve tab bar'lar, dış ekranda ve iç ekran yataydayken bir kenar boyunca uzanan dikey bar'a taşınır. Apple'ın Raise the bar with iPhone Duo Tech Talk'u kuralları açıklıyor. Yalnızca navigation container'larına ait bar'lar taşınır; bu yüzden özel UIToolbar, UINavigationBar veya UITabBar örnekleri oldukları yerde kalır.
Dikey bar'ın genişliği sabit olduğundan sembolleri öne çıkarır. İkonu olan öğeler dikey eksene taşınır, yalnızca metin içeren öğeler yatay kalır. Sarun'un özeti basit: toolbar öğelerine hem ikon hem başlık verin, büyük ihtimalle hazırsınız. Başlık taşma menülerinde hâlâ kullanılıyor. Aşağıdaki konumlar ve modifier, Apple'ın Tech Talk'ta gösterdiği şekilde yazıldı. .topBarPinnedTrailing iOS 27 ile geldi:
.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)
}
Back veya Close en üste, ardından öne çıkan eylem, sonra da geri kalanlar gelir. Yer bittiğinde öğeler aşağıdan yukarıya taşar ve hangilerinin kalacağına .visibilityPriority karar verir. Calculator gibi tek sayfalık, ağırlığı alt kısımda olan bir yerleşim .toolbarVerticalBehavior(.disabled) ile devre dışı bırakabilir. iPhone Duo dikey toolbar rehberimiz taşmayı, özel view'ları ve UIKit karşılıklarını anlatıyor.
Sheet'ler de değişiyor. Dış ekranda bir sheet'in toolbar'ı dikeydir. İç ekranda sheet'ler varsayılan olarak ortalanır ve leading veya trailing tarafta durabilir. Ayrıntılar için iPhone Duo'da sheet'ler ve presentationPlacement yazısını okuyun.
Hangi container'lar ve API'ler katlanma yerini benim yerime ele alır?
Sistem container'larıyla başlayın. NavigationSplitView ve UISplitViewController kapalıyken tek bir yığına daralır, açıkken sütunları gösterir. TabView her duruşa uyum sağlar ve iç ekranda .defaultTabBarPlacement(.sidebar) ile bir sidebar'ı tercih edebilirsiniz. List ve ScrollView katlanma yerine otomatik olarak uyum sağlar.
Özel iki view'lu yerleşimler için iOS 27.1, SwiftUI'da ArrangementView'u ve UIKit'te UIArrangementViewController'ı ekliyor; bunlar Strike a pose with adaptive layouts on iPhone Duo sunumunda anlatılıyor. .split stili alanı iki view arasında böler, .overlay ise cihaz katlanana kadar onları üst üste yığar. Bir ArrangementView'u bir List, bir ScrollView veya başka bir navigation container'ının içine koymayın. ArrangementView rehberimize göz atın.
Elle yerleştirdiğiniz kontroller için, yine iOS 27.1 ile gelen reserved region'ları sorgulayın. Bir division region katlanma yerini, bir occlusion region ise etkinken iç FaceTime kamerasını işaretler. Apple SwiftUI çağrısını bir GeometryReader içinde proxy.reservedRegions(kind: .division) olarak gösteriyor. Reserved region'lar ve katlanma yeri yazımız etkin ve etkin olmayan bölgeleri açıklıyor.
Menteşenin kendisi yerleşim için değil, efektler içindir. Apple'ın dokümantasyonunda ikisi de iOS 27.1 olarak listelenen SwiftUI'daki onHingeChange ve UIKit'teki UIHingeInteraction, kapalı, kısmen açık ve tamamen açık durumlarını ve sürekli bir açı değerini bildirir. Menteşesi olmayan cihazlarda hinge değeri nil'dir; bu yüzden her zaman kontrol edin. Fikir almak için Marbles Unhinged'ın katlanma yerini nasıl bir rampaya dönüştürdüğüne bakın, ardından hinge durumları ve onHingeChange yazısını okuyun.
iPhone Duo duruşları nasıl test edilir ve Xcode'un agent skill'leri nasıl kullanılır?
Xcode 27.1'de iPhone Duo simülatörünü seçin ve uygulamanızı Device Hub'da çalıştırın. Cihazı açmak, kapatmak, döndürmek ve katlamak için ekrandaki kontrolleri kullanın ve her duruşu kontrol edin: kapalı dikey, kapalı yatay, açık dikey ve açık yatay. Apple ayrıca dikey içeriğin iki tarafta da çalıştığını doğrulamak için uygulamayı önce bir tarafta, sonra diğer tarafta Split View'a sürüklemeyi öneriyor. Dikey bar donanımın aynı tarafında kaldığı için sağdan sola dilleri de kontrol edin.
Sarun, Xcode 27.2'nin Device Hub'ının bellek baskısı, yavaş çekim animasyonlar, sallama ve düşme de simüle edebildiğini bildiriyor. Bunlar, yük altındaki bir katlanmadan sonra durumun korunduğunu kontrol etmek için faydalı.
Xcode 27 ayrıca modern en iyi uygulamalar ve yeni API'ler için agent skill'leri içeriyor. Apple'ın hazırlık sayfasına göre Xcode'un kodlama asistanından "get my app ready for iPhone Duo" (uygulamamı iPhone Duo'ya hazırla) isteğinde bulunabilirsiniz. Skill'leri başka bir kodlama ajanıyla kullanmak için onları Sarun'un paylaştığı komutla dışa aktarın:
xcrun agent skills export --output-dir ~/Downloads/xcode-skills
Skill'leri Xcode 27.1'den önce dışa aktardıysanız tekrar dışa aktarın. uikit-app-modernization skill'inin adı artık app-resizability ve SwiftUI ile iPhone Duo desteği ekliyor. Apple, skill'in her şeyi yakalamadığını belirtiyor; bu yüzden yukarıdaki kalıpları elle gözden geçirin.
iPhone Duo için hangi App Store varlıklarına ihtiyacım var?
App Store Connect'te dış ve iç ekranlar için ayrı boyutlara sahip bir iPhone Duo ekran görüntüsü alanı var. iPhone Duo ekran görüntülerini gönderdiğinizde ürün sayfanızda uygulamanın iPhone Duo için optimize edildiğini belirten bir rozet görünür. Apple, ekran görüntülerinin Nisan 2027'den itibaren zorunlu olacağını söylüyor. iPhone Duo için App Store ekran görüntüsü boyutları rehberimizde her alanın boyutu ve ilk üç karede neyin gösterileceği yer alıyor.
İki madde daha bir lansmanı tamamlıyor. Apple, App Store Connect'te bir öne çıkarılma (featuring) başvurusu göndermeyi ve tüm cihaz duruşları dahil iPhone Duo desteğini belirtmeyi öneriyor. Apadmi ayrıca App Intents kapsamınızı gözden geçirmenizi tavsiye ediyor. iOS 27'de Siri'nin yeni yetenekleriyle birlikte iOS 27'de App Intents ve semantic index rehberimiz iyi bir sonraki proje olabilir. İlham almak için menteşeyi oyunun bir parçası olarak kullanan Built for the fold sayfasındaki oyunlara göz atın.
Önemli çıkarımlar
- iOS 26 SDK veya öncesiyle derlenen uygulamalar çalışır, ancak açıkken kenarlarında boşluk kalır. Ekranı yalnızca Xcode 27.1'deki iOS 27.1 SDK doldurur.
- Önce size class'ları, layout margin'leri ve safe area inset'lerini düzeltin. Regular genişliğin iPad anlamına geldiğini veya karşılıklı inset'lerin eşit olduğunu asla varsaymayın.
- Her toolbar öğesine bir ikon ve bir başlık verin ve dikey bar'a taşınabilmeleri için sistem bar'larını kullanın.
- Yerleşim için NavigationSplitView, TabView ve ArrangementView, elle yerleştirilen kontroller için reserved region'lar, yalnızca efektler için de menteşeyi kullanın.
- Her duruşu Device Hub'da test edin, 27.1'den sonra Xcode'un agent skill'lerini yeniden dışa aktarın ve Nisan 2027'den önce iPhone Duo ekran görüntülerini ekleyin.
iPhone Duo size class'larıyla başlayın, ardından dikey toolbar konusuna geçin. Uygulamanız hazır olduğunda, hakkımızda sayfası iPhone Duo oyununuzu nasıl öne çıkarabileceğinizi anlatıyor.
Sık sorulan sorular
Mevcut uygulamalar iPhone Duo'da değişiklik yapmadan çalışır mı?
Evet. iOS 26 SDK veya daha eski bir sürümle derlenen uygulamalar çalışır, ancak cihaz açıkken etraflarında boş alanla ortalanmış görünürler. Ekranın tamamını yalnızca iOS 27.1 SDK veya sonrasıyla derlenen uygulamalar doldurur.
iPhone Duo için hangi Xcode sürümüne ihtiyacım var?
Xcode 27.1, Device Hub'daki iPhone Duo simülatörü ve iOS 27.1 SDK dahil olmak üzere iPhone Duo için geliştirme desteği ekliyor. Xcode 27.2 ise bellek baskısı ve düşme gibi Device Hub simülasyonları ekliyor.
iPhone Duo için önce neyi düzeltmeliyim?
Önce size class'ları, layout margin'leri ve safe area inset'lerini düzeltin. Cihaz idiom'una veya ekran yönüne göre dallanmayı bırakın ve leading ile trailing inset'lerinin eşit olduğunu varsaymayın.
UIRequiresFullScreen uygulamamı iPhone Duo'daki yeniden boyutlandırmanın dışında tutar mı?
Hayır. Apple, iPhone Duo'nun UIRequiresFullScreen'i hâlâ dikkate aldığını, ancak cihaz açıldığında veya kapandığında uygulamanın yine de yeniden boyutlandığını söylüyor. Her iki durumda da yeniden boyutlandırmayı planlayın.
App Store'da iPhone Duo desteğini ne zaman sunmam gerekiyor?
Apple, Nisan 2027'den itibaren yüklemelerin iOS 27 SDK veya sonrasını kullanmasını zorunlu tutuyor ve gönderimlerde iPhone Duo ekran görüntülerinin gerekeceğini söylüyor. O zamana kadar iPhone Duo ekran görüntüleri isteğe bağlı, ancak ürün sayfanıza bir rozet ekliyor.
Kaynaklar
- 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
Katlanmayı uygulamanızın bir parçası yapın.
iPhone Duo ile gerçekten bir şey yapan uygulama ve oyunları tanıtıyoruz. App Store bağlantısıyla sizinkini gönderin ya da diğer geliştiricilerin neler yaptığına bakın.