Как стать автором
Обновить

Разработчик, не бойся нового iPhone

Время на прочтение2 мин
Количество просмотров3.8K
Многие разработчики ожидают новых проблем от выхода нового iPhone, так как уже почти никто не сомневается, что разрешение его экрана будет больше, чем у iPhone 4 и 4S. С каждым днём поступает всё больше подтверждений, что новый айфон обзаведется экраном с разрешением 640x1136, то есть вытянется в высоту.


И вот еще одно подтверждение: программист Cédric Luthi с ником 0xced опубликовал в своем блоге запись, проливающую свет на то, как были сделаны скриншоты iOS Simulator из вчерашней новости с 9to5Mac. Простое изменение конфигурационных файлов iOS Simulator приводит к его запуску в нестандартном на данный момент разрешении 640x1136 (можно и в других, как я понял).

Проблемы


Я протестировал этот твик сначала на текущем Xcode и iOS Simulator 5.1 — все мои приложения (особенно те, что на Cocos2D) поплыли в большей или в меньшей степени. Где-то появились черные дыры, где-то элементы позиционируются относительно друг друга не так, как предполагал программист. Приложения на Cocos2D версии 1.x плохо работают с ориентацией устройства, точнее — вообще не работают. Я был в ужасе.

ios5.1 in 640x1136ios5.1 in 640x1136 2

Если у вас или вашей команды в App Store уже достаточно много приложений — такое незаурядное событие вызовет много головной боли. Надо будет обновить каждое приложение, исправить все недочеты верстки, устранить жесткие привязки к размеру экрана и тому подобное.

Но не стоит сильно беспокоится! Apple подумала о пользователях и разработчиках: в App Store довольно много приложений уже не получают ни поддержки, ни обновлений — нельзя же их бросать на произвол судьбы и позволять им выглядеть на новом айфоне просто ужасно!

Решение


ios6
Я запустил с тем же твиком бету Xcode и iOS Sumulator 6. И обнаружил то, что и предполагал. Чтобы интерфейс приложения «не поплыл», Apple добавила в iOS 6 такую фичу: при запуске старого, неадаптированного приложения сверху и снизу экрана добавляются черные полосы, которые урезают доступное приложению пространство на экране до обычных 3:2 (или 2:3, смотря какая ориентация), и приложение выглядит нормально. Заметим, что таким свойством не обладает iOS 5, из чего можно сделать вывод, что iPhone 5 (или 6?) выйдет сразу на новой iOS.
ios6.0 in 640x1136ios6.0 in 640x1136

Так что, дорогие коллеги, если у вас было беспокойство по поводу нового разрешения, можете сильно не переживать — с выходом нового айфона негативных отзывов о ваших приложения, связанных с нарушенным внешним видом, вряд ли прибавится. Времени для приведения интерфейса в порядок будет достаточно, а нововведение iOS 6 — Auto Layout, перекочевавшее с Mac OS, — вам в этом поможет.

UPD
Что особенно интересно, так это то, что на растянутом симуляторе под iOS 6 все приложения (и системные тоже), кроме SpringBoard, работают в чёрных рамках. В то же время все системные приложения на растянутом симуляторе с iOS 5.1 выглядят хорошо и работают на весь экран. Скорее всего, в Info.plist приложения должен быть добавлен какой-то параметр, чтобы оно запускалось в iOS 6 на полный экран, а iOS 5 просто еще об этом не знает, и запускает как есть.

Ответ на вопрос «Как ведет себя клавиатура в таком режиме?»


Ответ на вопрос «Уж статус бар точно должен быть сверху экрана...»
Да, есть глюк (видео) при вызове Центра уведомлений (свайп сверху экрана, как на девайсе):

Теги:
Хабы:
Всего голосов 40: ↑27 и ↓13+14
Комментарии32

Публикации

Истории

Работа

iOS разработчик
16 вакансий
Swift разработчик
17 вакансий

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань