
Цей матеріал згенеровано за допомогою штучного інтелекту та опубліковано без попередньої перевірки людиною. Він може містити помилки і не є професійною консультацією. Повідомити про проблему: info@delionsoft.com.
Компанія Apple опублікувала рекомендації щодо адаптації застосунків для iOS до iPhone Duo — складаного пристрою з зовнішнім дисплеєм, більшим внутрішнім дисплеєм та проміжними станами часткового складання. Згідно з оригінальним звітом, застосунки, які розраховані на єдиний фіксований розмір екрану або мають власні елементи навігації, найімовірніше, будуть виглядати некоректно. Деякі розробники розкритикували короткий проміжок часу між анонсом і виходом пристрою.
Що сталося
Рекомендації охоплюють чотири напрямки. По-перше, інструменти збірки: застосунки, скомпільовані за допомогою Xcode 27.1, можуть використовувати всю площу екрану, тоді як застосунки, створені за допомогою попередніх версій, не виходять за межі області статусної панелі та камери. По-друге, макет: Apple не рекомендує використовувати фіксовані розміри, такі як UIScreen.main.bounds, а також не радить будувати логіку на основі userInterfaceIdiom або орієнтації інтерфейсу. Рекомендований підхід — розмір, віднесений до контейнера, із використанням стандартних стеків SwiftUI, навігації та розділених вікон, або UIKit Auto Layout, що керується змінами горизонтальних та вертикальних класів розмірів.
По-третє, навігація та панелі інструментів. На пристрої Duo панелі інструментів та навігаційні панелі можуть у певних положеннях розміщуватися вертикально вздовж краю дисплея. Налаштовані панелі, створені безпосередньо на основі UIToolbar, UINavigationBar або UITabBar, можуть не відповідати цій поведінці; натомість стандартні API панелей інструментів, приєднані до навігаційного стека або навігаційного контролера, будуть її дотримуватися.
По-четверте, зарезервовані області. Вони відповідають згину, що розділяє дисплей, та зонам, де апаратне забезпечення перекриває вміст — внутрішня фронтальна камера, коли вона активна, та зовнішня фронтальна камера завжди. Види, що надаються фреймворком, адаптуються автоматично; користувацькі види повинні запитувати API зарезервованих областей і розміщуватися навколо них. Обробка камер також змінюється, оскільки відкриття, закриття або поворот пристрою може змінити, яка з трьох камер є активною, тому застосунки повинні вибирати камеру за напрямком, у якому вона спрямована, а не за фіксованим ідентифікатором.
Реакція, наведена в оригінальному звіті, була неоднозначною. Один розробник порівняв це з появою нової платформи, про яку повідомляють приблизно за місяць, а інший замислився, скільки застосунків взагалі цим перейматимуться. Редактор iOS Dev Weekly висловив ще більш незручну думку: про подібні завдання повідомляли заздалегідь і раніше, але більшість команд все одно виконували їх із запізненням — UIScreen.main.bounds, як він висловився, був «багом, що чекав на пристрій».
Чому це важливо
Для невеликої команди, що розробляє один застосунок для iOS, це не переписання коду, але це реальний обсяг роботи, який вступає в конфлікт із вашим планом розвитку. Витрати пропорційні тому, скільки нестандартних макетів та елементів інтерфейсу ви накопичили. Командам, які дотримувалися стандартних контейнерів та класів розмірів, знадобиться переважно час на тестування; командам із саморобними панелями вкладок, жорстко заданими відступами та розгалуженням за розміром екрану знадобиться рефакторинг, перш ніж вони зможуть навіть оцінити пристрій. Найбільший ризик несуть застосунки, що інтенсивно використовують камеру — сканування, KYC, польова звітність — оскільки зміна позиції може непомітно перемкнути активну камеру.
Що робити
- Проведіть аудит коду на наявність фіксованих розмірів екрану, перевірок ідіом та орієнтації. Цей перелік — ваш беклог, і це корисна робота незалежно від того, чи ви коли-небудь випустите застосунок для Duo.
- Замінюйте власні конструкції навігації та панелей інструментів на стандартні API там, де це доцільно; розміщення з боків там вже передбачено.
- Якщо ви використовуєте камеру, перегляньте, як відбувається вибір пристроїв і як поводиться сесія під час відкриття, закриття або повороту пристрою.
- Чітко визначте, чи входить підтримка Duo у плани на цей квартал. Чесна відповідь «поки що ні» із зазначенням дати краща за незаплановану метушню.
