25 octombrie 2026
iPhone Duo: ce trebuie să schimbi în aplicația ta
Apple are acum un iPhone pliabil. iPhone Duo are un ecran exterior, folosit când telefonul e închis, și un ecran interior mult mai mare, când îl deschizi. Clienții tăi vor trece de la unul la altul de mai multe ori pe zi, iar aplicația ta trebuie să țină pasul.
Dacă ai o aplicație iOS și nu ai lucrat la ea de câteva luni, cel mai probabil nu e pregătită. Vestea bună: în multe cazuri nu e nevoie de un redesign, ci de o serie de corecturi bine țintite. În articolul ăsta îți explic ce se întâmplă cu o aplicație neoptimizată, ce trebuie schimbat și cum îți dai seama cât durează adaptarea. Pe alocuri intru și în detalii tehnice, ca să poți discuta concret cu echipa care se ocupă de aplicație.
De ce contează pentru afacerea ta
Cei care cumpără primii un telefon pliabil scump sunt, de obicei, utilizatori activi, care folosesc multe aplicații și le compară. Pe ecranul mare, o aplicație neadaptată se vede imediat: apare mică, în mijloc, cu spațiu gol în jur, ca o aplicație de iPhone deschisă pe iPad. Nu se strică nimic, dar produsul pare abandonat.
Apple încurajează direct optimizarea. Aplicațiile care trimit în App Store Connect capturi de ecran pentru iPhone Duo primesc pe pagina din magazin o insignă care arată că sunt optimizate pentru noul dispozitiv. Tot acolo poți cere ca aplicația să fie luată în calcul pentru promovarea din App Store, menționând că e optimizată pentru iPhone Duo în toate pozițiile dispozitivului. Concurentul care face asta primul are un avantaj vizibil pe pagina din magazin.
Ce se întâmplă cu aplicația ta acum
Comportamentul depinde de versiunea SDK-ului iOS cu care a fost compilată ultima versiune a aplicației. Pe scurt:
- Compilată cu iOS 26 sau mai vechi: aplicația funcționează, dar nu se adaptează. Pe ecranul interior apare centrată, cu spațiu gol în jur. Pe ecranul exterior stă în stânga barei de stare și a camerei.
- Compilată cu iOS 27: aplicația umple aproape tot ecranul interior, dar ocolește bara de stare din dreapta. Spațiul gol e mai mic.
- Compilată cu iOS 27.1 sau mai nou: aplicația ocupă tot ecranul, pe ambele ecrane. Barele de instrumente și de taburi se mută pe verticală, pe marginea ecranului.
Aici e capcana. Simpla recompilare cu Xcode-ul nou face aplicația să se întindă pe tot ecranul. Dacă interfața a fost construită pe presupunerea că ecranul are mereu aceleași dimensiuni, rezultatul poate arăta mai rău decât varianta veche: imagini tăiate, texte întinse pe toată lățimea, butoane suprapuse sau ascunse. De aceea actualizarea trebuie făcută odată cu verificarea și corectarea interfeței, nu doar „o recompilăm și gata”.
Ce e diferit la iPhone Duo
Ghidul de design publicat de Apple, Designing for iPhone Duo, descrie câteva lucruri pe care nu le-am avut până acum pe iPhone:
- Două ecrane de forme diferite. Ecranul exterior e mai lat și mai scund decât al unui iPhone obișnuit, iar cel interior e mare, cu o balama la mijloc.
- Mai multe poziții. Telefonul poate fi ținut parțial pliat, ca o carte, așezat pe masă sau sprijinit pe o margine. Apple nu cere câte un layout pentru fiecare poziție, ci un layout care se adaptează la spațiul disponibil.
- Bare de navigare pe lateral. Pe ecranul exterior și pe ecranul interior ținut orizontal, bara de taburi și bara de instrumente se mută pe marginea laterală, ca să rămână mai mult spațiu pe verticală pentru conținut. Excepția e ecranul interior ținut vertical, unde barele rămân sus și jos.
- Zone rezervate. Camera frontală exterioară e mereu vizibilă, în colț. Camera interioară stă sub ecran și interfața se dă la o parte doar când e activă. Când telefonul e parțial pliat, zona balamalei împarte ecranul interior în două, iar conținutul important nu ar trebui să stea fix pe pliu.
- Două aplicații pe același ecran. Pe ecranul interior se poate folosi Split View, deci aplicația ta poate primi doar o parte din ecran, la aproape orice dimensiune.
Cum ar trebui să se comporte aplicația
Principiul general din ghidul Apple e simplu: aplicația nu trebuie reinventată pe ecranul mare. Același produs, aceleași funcții, aceeași stare, doar că folosește mai bine spațiul. Concret, asta înseamnă:
- Clientul nu pierde nimic când deschide sau închide telefonul. Dacă scria un mesaj, completa un formular sau era la jumătatea unei comenzi, continuă exact de unde a rămas.
- Aceleași funcții în orice poziție. Unele butoane se pot muta într-un meniu când spațiul e mic, dar nicio acțiune nu dispare.
- Pe ecranul mare, un nivel în plus. Aplicația Mail e exemplul dat de Apple: închis, telefonul arată fie lista de emailuri, fie un email. Deschis, le arată pe amândouă, una lângă alta. La fel poate funcționa o listă de produse cu detaliile produsului, sau o listă de programări cu programarea selectată.
- Fără schimbări bruște. Când telefonul se pliază, elementele se mută doar cât e nevoie ca să rămână vizibile. Un buton care sare în alt colț al ecranului e greu de găsit.
- Imagini care nu se taie. Fotografiile mari și video-urile care umplu ecranul pot pierde exact partea importantă pe un ecran mai lat. Merită verificat fiecare ecran cu imagini mari.
Ce trebuie schimbat în cod
Apple a publicat și o listă de pregătire pentru developeri. Mai jos sunt problemele pe care le întâlnesc cel mai des în aplicațiile existente, cu ce trebuie schimbat. Dacă nu ești developer, poți trimite secțiunea asta echipei tale ca punct de plecare.
1. Dimensiunile se citesc din fereastră, nu din ecran
Mult cod vechi calculează layout-ul pornind de la UIScreen.main.bounds, adică dimensiunea ecranului fizic. Pe iPhone Duo, aplicația nu ocupă neapărat tot ecranul, iar ecranul însuși se schimbă. Corect este să folosești dimensiunea ferestrei sau a view-ului (view.bounds, window.bounds, iar în SwiftUI GeometryReader sau onGeometryChange) și să o recitești de fiecare dată când se schimbă, nu o singură dată la pornire. Fereastra se creează cu UIWindow(windowScene:), nu cu dimensiunea ecranului.
2. Orientarea nu mai spune cum arată ecranul
Logica de tipul „dacă telefonul e în landscape, arată două coloane” nu mai funcționează. Pe ecranul interior, aplicația poate fi lată ținând telefonul vertical, iar în Split View poate fi îngustă ținând telefonul orizontal. Codul care se bazează pe UIDevice.current.orientation sau interfaceOrientation trebuie înlocuit cu o comparație simplă între lățimea și înălțimea disponibile.
3. „Regular width” nu mai înseamnă iPad
Multe aplicații aleg layout-ul după tipul dispozitivului (userInterfaceIdiom == .phone) sau tratează lățimea „regular” ca semn că rulează pe iPad. Pe iPhone Duo, un iPhone poate avea orice combinație de size classes. Același lucru e valabil pentru verificări de genul bounds.height == 844 sau liste cu dimensiunile modelelor cunoscute de iPhone: trebuie eliminate. Vestea bună e că, dacă aplicația are deja un layout bun pentru iPad, ecranul interior ar trebui să arate ca o continuare firească a lui.
4. Componentele standard fac o mare parte din muncă
Dacă aplicația folosește componentele standard Apple pentru bare de taburi, toolbar-uri, split view-uri, alerte și sheet-uri, mutarea barelor pe lateral și ocolirea pliului vin automat. Ghidul mai cere ca fiecare buton din toolbar să aibă atât iconiță, cât și titlu (titlul apare în meniul de overflow), să folosești meniul de overflow al sistemului în locul unuia propriu și să stabilești ce butoane rămân vizibile primele când spațiul e mic. Pentru componente proprii, Apple oferă API-ul ReservedRegion, care ține elementele importante departe de cameră și de pliu. Pentru ecrane cu două zone, cum ar fi o listă cu detalii sau o hartă cu un panou peste ea, există noile arrangement views, care aranjează automat cele două părți în funcție de spațiu și de pliu.
5. Aplicațiile Flutter și React Native
Aplicațiile cross-platform au aceleași probleme, doar că în alt cod. În Flutter, de exemplu, echivalentul lui UIScreen.main.bounds e un layout construit o singură dată din MediaQuery, iar soluția e un layout care reacționează la spațiul disponibil, cu LayoutBuilder și MediaQuery.sizeOf. În Flutter, barele de navigare sunt desenate de framework, nu sunt componentele native Apple, deci mutarea lor pe lateral nu vine automat ca într-o aplicație nativă. În React Native depinde de bibliotecile de navigare folosite. În ambele cazuri contează ce suport adaugă versiunile noi ale framework-ului și ce trebuie ajustat manual în aplicație.
Cum verifici dacă aplicația e pregătită
Nu ai nevoie de un iPhone Duo fizic pentru prima evaluare. Apple oferă câteva unelte:
- Asistentul din Xcode: îi poți cere „get my app ready for iPhone Duo”, iar el caută tiparele problematice de mai sus și propune corecturi. Aceeași verificare poate fi exportată pentru alți agenți de programare, cu
xcrun agent skills export. Apple spune clar că nu prinde tot, deci verificarea manuală rămâne necesară. - Simulatorul iPhone Duo din Xcode 27.1: cea mai fidelă variantă, cu toate pozițiile dispozitivului.
- Simulatorul redimensionabil și iPhone Mirroring pe macOS 27: fereastra aplicației poate fi întinsă și strânsă la dimensiuni extreme, ceea ce scoate repede la iveală layout-urile fixe.
Un test rapid pe care îl poți face chiar tu, după ce primești un build de test: deschide fiecare ecran important al aplicației și întreabă-te dacă vezi tot ce trebuie, dacă imaginile arată bine, dacă butoanele sunt la locul lor și dacă, după ce „închizi” și „deschizi” telefonul, ești tot unde ai rămas.
Cât durează adaptarea?
Depinde mai mult de cum a fost construită aplicația decât de cât de mare e:
- Câteva zile: aplicație construită cu componente standard și layout adaptiv, care are deja o variantă bună de iPad. De multe ori e nevoie doar de recompilare, testare și ajustări mici.
- Una-trei săptămâni: aplicație care merge doar pe iPhone, cu dimensiuni fixe și logică legată de orientare în câteva locuri. Ecranele trebuie trecute pe rând și corectate.
- Mai mult: aplicație veche, cu multe componente proprii, navigare desenată de mână sau un framework rămas în urmă cu versiunile. Aici, optimizarea pentru iPhone Duo vine de obicei la pachet cu o actualizare tehnică amânată de mult.
Primul pas e o evaluare: rulezi aplicația în simulator, treci prin ecranele principale și faci o listă cu ce se strică. Abia apoi poți estima corect.
Pe scurt
- O aplicație neoptimizată merge pe iPhone Duo, dar arată mică și învechită pe ecranul mare.
- Recompilarea cu Xcode-ul nou, fără verificarea interfeței, poate face lucrurile să arate mai rău.
- Ținta e aceeași aplicație, care folosește bine spațiul, păstrează starea și nu pierde funcții când se pliază.
- Insigna din App Store e un avantaj vizibil pentru cei care se mișcă primii.
Dacă vrei să știi cum arată aplicația ta pe iPhone Duo și cât ar dura adaptarea, scrie-mi. Pot face o evaluare în simulator și îți spun concret ce e de schimbat. Pentru aplicațiile pe care le întreținem deja, actualizările de felul ăsta fac parte din abonamentul de mentenanță și dezvoltare, iar despre ce mai presupune întreținerea unei aplicații am scris în articolul despre mentenanța după lansare.