Разработка iPhone/iPod touch приложений: Установка Splash screen (Default.png)

splashscreen

В случае, когда инициализация приложения в iPhone/iPod занимает много времени, это сильно сказывается на первом впечатлении о приложении в целом. Не буду говорить за всех, но мне, например, не нравится, когда после запуска приложения я полчаса вижу черный экран, перед тем, как приложение запустится. Так что эта статья посвящена такой вещи как Splash Screen, и особенностях его установки. Если в двух словах, то в iPhone/iPod приложении – это просто картинка, которая показывается до того, как ваше приложение загрузится. Причем показывается сразу же, как только вы нажали на кнопку запуска приложения, и до тех пор, пока не вызовется


- (void)applicationDidFinishLaunching:(UIApplication *)application {
 // Это, конечно, первое место в программе (не считая viewDidLoad)
 // где мы можем писать код, но до того, как мы попадем сюда
 // может пройти достаточно много (относительно) времени

}

как уже говорилось, в статье об индикаторах загрузки, это самый момент подменить Splash Screen, если приложение требует дополнительной загрузки данных. Однако, я немного отвлекся. Итак, устанавливаем Splash Screen.

Установка Splash Screen

Итак. Нам понадобится “.png” файл определенного размера. Почему определенного размера? Об этом чуть дальше. Итак, размер файла должен составлять 320×480(320х460 см. update) пикселей. Делайте что хотите, но если вы вдруг попытаетесь поставить файл другого размера, то вас просто “не поймут”, и откажутся отображать хоть что-то. Будет обидно. Я столкнулся с такой проблемой, и это стоило мне нескольких минут нервов. Кроме опреденного размера, этот файл должен иметь вполне определенное название, а именно Default.png. Причем именно с большой буквы. Иначе – снова не поймут. Насколько мне удалось проверить, в SDK 3.0 тоже особо ничего не поменялось, так что все будет работать. После того, как у нас есть правильноназванноиразмеренный файл, просто добавляем его в проект.

picture-10

Добавляем Default.png в проект

targetsОднако, иногда этого оказывается недостаточно. Причина мне не совсем ясна, но Xcode после добавления файла иногда не добавляет его в ресурсы, и поэтому его приходится руками перетаскивать в нужный target.

ipohesplash

Вот и все. Запускаем приложение, и видим наш Splash Screen во всей красе ;) Красивый синий сплеш. И пользователям уже не так скучно ждать, пока вы пытаетесь загрузить весь интернет в Айфон.
Не буду особо разглагольствовать по поводу того, что, по возможности, время загрузки нужно сократить до минимума. Это и так понятно. В случае начальной загрузки, splash screen позволяет немного “сгладить” время ожидания пользователя при запуске приложения, однако, все же не стоит этим злоупотреблять. Терпение пользователей не вечно ;)

UPDATE : Замечание EisernWolf позволило узнать еще одну особенность. Итак, в документации написано следующее :

[...]Default.png: The 480 x 320 pixel image to display when your application is launched. The system uses this file as a temporary background until your application loads its window and user inter face. [...]

. То есть Размер картинки должен быть не 320х460 а 320х480. Однако, это не совсем так. Был проведен эксперимент, попробованы оба варианта картинок, и вот какой результат (кликните на изображение, чтобы увидеть оригинал):

splash320x480 splash320x460

Можно увидеть следующее: Во-первых, оба варианта работают, более того, в обоих вариантах изображение не пережимается. Во-вторых, 20 пикселей изображения 320х480 “съедаются” за счет statusBar’а.

Что же случится, если statusBar’а не будет? (Как отключить statusBar при запуске приложения и много других вкуностей описаны в документации (таблица 1-3)). Добавляем в <PROJECTNAME>.plist файл свойство UIStatusBarHidden в true. Проверяем еще раз:

Splash320x480 Splash320x460 Splash320x400

И вот, что у нас получилось – в случае 320х480 – самый лучший результат – изображение на весь экран, не пережатое. В случае 320х460 – также изображение не пережатое, однако на экране черная полоска сверху 20 пикселей в высоту (там где раньше был statusBar). С изображением 320х400 – все совсем плохо. Во-первых, оно было пережато до 320х460, плюс, черная полоска вверху экрана.

Исходя из опытов, можно сказать следующее – лучше всего для splash-screen’a использовать изображение размером 320х480 – оно будет работать в обоих вариантах(с и без statusBar’a). Однако, необходимо помнить, что в случае, если все-таки statusBar будет включен, то он закроет 20 пикселей вверху изображения.

Исходники проекта Splash-example.

Спасибо, EisernWolf.

Комментарии

Бубнов Славик

в 12:23, 29.05.2009

Было бы прикольно, если бы учитывалось положение девайса и, например, в “landscape”-режиме показывалась соотвутствующая картинка =)

eisernWolf

в 17:21, 04.07.2009

Чтобы не нервнічать, нужно чітать документацію:


Default.png: The 480 x 320 pixel image to display when your application is launched. The system uses this file as a temporary background until your application loads its window and user inter face. [...]

© iPhone Application Programming Guide

Так что, вообсче говоря, непонятно откуда ваші 320 х 460 взялісь.

Павел Тайкало

в 14:22, 06.07.2009

>>eisernWolf :Чтобы не нервнічать, нужно чітать документацію:
(Updated)

Оставить комментарий