Многие разработчики ожидают новых проблем от выхода нового iPhone, так как уже почти никто не сомневается, что разрешение его экрана будет больше, чем у iPhone 4 и 4S. С каждым днём поступает всё больше подтверждений, что новый айфон обзаведется экраном с разрешением 640x1136, то есть вытянется в высоту.
И вот еще одно подтверждение: программист Cédric Luthi с ником 0xced опубликовал в своем блоге запись, проливающую свет на то, как были сделаны скриншоты iOS Simulator из вчерашней новости с 9to5Mac. Простое изменение конфигурационных файлов iOS Simulator приводит к его запуску в нестандартном на данный момент разрешении 640x1136 (можно и в других, как я понял).
Я протестировал этот твик сначала на текущем Xcode и iOS Simulator 5.1 — все мои приложения (особенно те, что на Cocos2D) поплыли в большей или в меньшей степени. Где-то появились черные дыры, где-то элементы позиционируются относительно друг друга не так, как предполагал программист. Приложения на Cocos2D версии 1.x плохо работают с ориентацией устройства, точнее — вообще не работают. Я был в ужасе.
Если у вас или вашей команды в App Store уже достаточно много приложений — такое незаурядное событие вызовет много головной боли. Надо будет обновить каждое приложение, исправить все недочеты верстки, устранить жесткие привязки к размеру экрана и тому подобное.
Но не стоит сильно беспокоится! Apple подумала о пользователях и разработчиках: в App Store довольно много приложений уже не получают ни поддержки, ни обновлений — нельзя же их бросать на произвол судьбы и позволять им выглядеть на новом айфоне просто ужасно!
Я запустил с тем же твиком бету Xcode и iOS Sumulator 6. И обнаружил то, что и предполагал. Чтобы интерфейс приложения «не поплыл», Apple добавила в iOS 6 такую фичу: при запуске старого, неадаптированного приложения сверху и снизу экрана добавляются черные полосы, которые урезают доступное приложению пространство на экране до обычных 3:2 (или 2:3, смотря какая ориентация), и приложение выглядит нормально. Заметим, что таким свойством не обладает iOS 5, из чего можно сделать вывод, что iPhone 5 (или 6?) выйдет сразу на новой iOS.
Так что, дорогие коллеги, если у вас было беспокойство по поводу нового разрешения, можете сильно не переживать — с выходом нового айфона негативных отзывов о ваших приложения, связанных с нарушенным внешним видом, вряд ли прибавится. Времени для приведения интерфейса в порядок будет достаточно, а нововведение iOS 6 — Auto Layout, перекочевавшее с Mac OS, — вам в этом поможет.
UPD
Что особенно интересно, так это то, что на растянутом симуляторе под iOS 6 все приложения (и системные тоже), кроме SpringBoard, работают в чёрных рамках. В то же время все системные приложения на растянутом симуляторе с iOS 5.1 выглядят хорошо и работают на весь экран. Скорее всего, в Info.plist приложения должен быть добавлен какой-то параметр, чтобы оно запускалось в iOS 6 на полный экран, а iOS 5 просто еще об этом не знает, и запускает как есть.
И вот еще одно подтверждение: программист Cédric Luthi с ником 0xced опубликовал в своем блоге запись, проливающую свет на то, как были сделаны скриншоты iOS Simulator из вчерашней новости с 9to5Mac. Простое изменение конфигурационных файлов iOS Simulator приводит к его запуску в нестандартном на данный момент разрешении 640x1136 (можно и в других, как я понял).
Проблемы
Я протестировал этот твик сначала на текущем Xcode и iOS Simulator 5.1 — все мои приложения (особенно те, что на Cocos2D) поплыли в большей или в меньшей степени. Где-то появились черные дыры, где-то элементы позиционируются относительно друг друга не так, как предполагал программист. Приложения на Cocos2D версии 1.x плохо работают с ориентацией устройства, точнее — вообще не работают. Я был в ужасе.
Если у вас или вашей команды в App Store уже достаточно много приложений — такое незаурядное событие вызовет много головной боли. Надо будет обновить каждое приложение, исправить все недочеты верстки, устранить жесткие привязки к размеру экрана и тому подобное.
Но не стоит сильно беспокоится! Apple подумала о пользователях и разработчиках: в App Store довольно много приложений уже не получают ни поддержки, ни обновлений — нельзя же их бросать на произвол судьбы и позволять им выглядеть на новом айфоне просто ужасно!
Решение
Я запустил с тем же твиком бету Xcode и iOS Sumulator 6. И обнаружил то, что и предполагал. Чтобы интерфейс приложения «не поплыл», Apple добавила в iOS 6 такую фичу: при запуске старого, неадаптированного приложения сверху и снизу экрана добавляются черные полосы, которые урезают доступное приложению пространство на экране до обычных 3:2 (или 2:3, смотря какая ориентация), и приложение выглядит нормально. Заметим, что таким свойством не обладает iOS 5, из чего можно сделать вывод, что iPhone 5 (или 6?) выйдет сразу на новой iOS.
Так что, дорогие коллеги, если у вас было беспокойство по поводу нового разрешения, можете сильно не переживать — с выходом нового айфона негативных отзывов о ваших приложения, связанных с нарушенным внешним видом, вряд ли прибавится. Времени для приведения интерфейса в порядок будет достаточно, а нововведение iOS 6 — Auto Layout, перекочевавшее с Mac OS, — вам в этом поможет.
UPD
Что особенно интересно, так это то, что на растянутом симуляторе под iOS 6 все приложения (и системные тоже), кроме SpringBoard, работают в чёрных рамках. В то же время все системные приложения на растянутом симуляторе с iOS 5.1 выглядят хорошо и работают на весь экран. Скорее всего, в Info.plist приложения должен быть добавлен какой-то параметр, чтобы оно запускалось в iOS 6 на полный экран, а iOS 5 просто еще об этом не знает, и запускает как есть.
Ответ на вопрос «Как ведет себя клавиатура в таком режиме?»
Ответ на вопрос «Уж статус бар точно должен быть сверху экрана...»