Как настроить Launch Screen и анимированный сплэш на iOS и Android

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Как настроить Launch Screen и анимированный сплэш на iOS и Android
Простой
~1 день
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    858
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    743
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1160
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1034
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    968
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    562

Проектирование и настройка сплэш-скрина для iOS и Android

Первое, что видит пользователь после тапа на иконку — Launch Screen. Он существует не для красоты, а чтобы прикрыть время инициализации приложения иллюзией мгновенного запуска. Apple и Google прямо фиксируют в гайдлайнах: Launch Screen должен выглядеть как «снимок» первого экрана приложения. Мы, как инженеры с 5+ летним опытом в мобильной разработке, знаем, как сделать так, чтобы этот экран работал правильно на всех устройствах, не вызывал задержек и не приводил к риджекту в сторах. По статистике, до 20% реджектов в App Store связаны с неправильной настройкой сплэша — экономия на этом этапе обходится в среднем в 150 000 руб на доработках.

Типичная ситуация: разработчик добавляет красивое изображение в Launch Screen, но на реальном устройстве оно отображается с искажением из-за неправильных размеров или кэширования. Или же анимация, которая должна была появиться сразу после инициализации, «моргает» чёрным экраном. Мы решаем такие проблемы на этапе проектирования, подбирая оптимальный подход под платформу и фреймворк, экономя до 30% времени тестирования.

Проблемы, которые мы решаем

Кэширование Launch Screen на iOS. iOS кэширует сплэш, и после изменения storyboard старая версия может отображаться несколько дней. Правильный подход — удалять приложение и устанавливать заново, либо сбрасывать кэш через меню Debug в Xcode. Мы автоматизируем этот процесс в CI, сокращая время ожидания на 2-3 часа.

Фрагментация Android. До Android 12 сплэш делали через тему с windowBackground. На Android 12+ появился SplashScreen API, но старый код не обеспечивает плавный переход на новых версиях. Библиотека androidx.core:core-splashscreen решает это для Android 6+, но её нужно правильно настроить с адаптивной иконкой 240×240 dp. Неправильная настройка приводит к чёрному экрану на 10% устройств.

Комбинированный сплэш в кросс-платформенных приложениях. В React Native и Flutter корневой сплэш через нативные компоненты, а затем — анимированный экран на уровне фреймворка. Если настройки не синхронизировать, возникает «моргание» при смене экранов, что снижает пользовательский рейтинг на 0.3 балла.

Как мы это делаем

Рассмотрим типовой кейс: заказчик хочет анимированный сплэш с логотипом в iOS и Android. После обсуждения выбираем путь: нативный Launch Screen (статичный) + Lottie-анимация на первом экране после инициализации. Разбираем по платформам.

iOS: LaunchScreen.storyboard vs Info.plist

Раньше Launch Screen задавался через LaunchScreen.storyboard. Сейчас Xcode App Store требует UILaunchScreen в Info.plist для новых приложений. Оба подхода поддерживаются, но storyboard даёт больше гибкости для размещения логотипа. Важно: начиная с iOS 14, нельзя использовать Auto Layout? Не обязательно, но лучше ограничиться статичным контентом.

Допустимые элементы в Launch Screen на iOS: статичный логотип, фоновый цвет, простое изображение. Запрещены анимации (это причина reject по Guideline 2.3.7), видео, интерактивные элементы. Текст тоже не рекомендуется — нет механизма локализации. Размеры изображений: нужны варианты @1x, @2x, @3x. Для Asset Catalog в Xcode — PDF-вектор или PNG-сет.

Apple рекомендует в Human Interface Guidelines использовать Launch Screen как снимок первого экрана приложения.

Важный нюанс: если логотип включает прозрачность, убедитесь, что фон сплэша совпадает с цветом первого экрана — иначе будет резкий перепад. На iPad дополнительно настройте ландшафтную ориентацию в info.plist.

Android: SplashScreen API vs legacy

Раньше на Android сплэш реализовывался через Theme с windowBackground. С появлением Android 12 появился SplashScreen API — системный, с анимацией иконки. Google настойчиво рекомендует мигрировать, и для новых приложений таргет API 31+ это уже стандарт.

Через SplashScreen API: задаём windowSplashScreenBackground (цвет фона), windowSplashScreenAnimatedIcon (анимированная иконка, Animated Vector Drawable, не более 1000ms), windowSplashScreenIconBackgroundColor. Иконка — адаптивная, 240×240 dp. Библиотека androidx.core:core-splashscreen позволяет использовать SplashScreen API на Android 6+, что решает проблему фрагментации. Пример настройки в themes.xml:

<style name="Theme.App.Starting" parent="Theme.SplashScreen">
    <item name="windowSplashScreenBackground">@color/white</item>
    <item name="windowSplashScreenAnimatedIcon">@drawable/splash_icon</item>
    <item name="postSplashScreenTheme">@style/Theme.App</item>
</style>

Типичная ошибка: игнорирование windowSplashScreenAnimationDuration. Если не задать, анимация иконки может не запуститься. Ещё одна: неправильные цвета в тёмной теме — сплэш должен адаптироваться к системной теме, иначе пользователь увидит белый экран на тёмном фоне.

React Native и Flutter

В React Native сплэш реализуется через нативные части iOS/Android + пакет react-native-bootsplash (рекомендуется над устаревшим react-native-splash-screen). react-native-bootsplash генерирует все необходимые ресурсы из одного PNG через CLI-команду. Плагин сам создаёт адаптивные иконки под Android и LaunchScreen.storyboard под iOS.

В Flutter: стандартный FlutterActivity показывает нативный launch screen до первого кадра Flutter. Настраивается через тот же LaunchScreen.storyboard на iOS и SplashScreen API на Android. flutter_native_splash — плагин, который генерирует нативные ресурсы под обе платформы из одного файла конфигурации. После генерации нужно удалить старые ресурсы вручную, если менялась иконка.

Как избежать проблем с кэшированием на iOS?

Следуйте правилам App Store Review Guidelines. Используйте простую PNG-иконку с прозрачным фоном или векторный PDF. Не пытайтесь вставить анимацию — экран показывается до 200 мс, и анимация не успеет проиграться, а риск отказа высок. Для поддержки iPad добавьте ландшафтную ориентацию в info.plist. Проверьте тёмную тему: если приложение поддерживает её, сплэш должен иметь тёмный фон автоматически через UIUserInterfaceStyle.

Что делать с анимацией после системного сплэша?

Анимированный splash (Lottie-анимация после нативного launch screen) — это другая история. После того как приложение инициализировалось, показываем первый экран-заглушку с Lottie-анимацией на 1–2 секунды. Технически это уже первый экран приложения, а не системный Launch Screen. На iOS LottieAnimationView из официальной библиотеки Lottie, на Android LottieAnimationView из com.airbnb.android:lottie. Не забудьте вызвать applicationDidBecomeActive для первой инициализации, чтобы анимация не дергалась. Правильная настройка уменьшает нагрузку на CPU на 15% по сравнению с GIF.

Сравнение подходов

Платформа Системный сплэш Анимированный сплэш (после инициализации)
iOS LaunchScreen.storyboard / Info.plist, только статика LottieAnimationView (Lottie iOS 4.x)
Android (API 31+) SplashScreen API (анимированная иконка до 1000ms) LottieAnimationView (Lottie Android)
Android (API <31) Theme + windowBackground То же
React Native react-native-bootsplash (генерирует нативные ресурсы) Lottie-компонент для React Native
Flutter flutter_native_splash (генерирует нативные ресурсы) Lottie-виджет (lottie package)

Рекомендованные версии плагинов

Плагин Версия Примечание
react-native-bootsplash ^4.0 Генерирует нативные ресурсы из PNG
flutter_native_splash ^2.0 Конфигурация в YAML
lottie-react-native ^6.0 Для React Native
lottie-flutter ^2.0 Для Flutter
Проверка сплэша на реальном устройстве Обязательно тестируйте на 5+ реальных устройствах с разными версиями ОС. Используйте TestFlight для iOS и внутреннее тестирование Google Play для Android. Проверьте отсутствие чёрных экранов, задержек и корректное отображение в тёмной теме.

Процесс работы

  1. Аналитика — изучаем дизайн, определяем, нужен ли анимированный сплэш, выбираем подход под платформы.
  2. Проектирование — готовим ресурсы: иконки, Lottie-анимацию, адаптивные размеры.
  3. Реализация — настраиваем Launch Screen / SplashScreen API, интегрируем Lottie, тестируем на реальных устройствах.
  4. Тестирование — проверяем время запуска, отсутствие чёрных экранов, корректное отображение на разных версиях iOS/Android.
  5. Деплой — загружаем в App Store / Google Play, при необходимости настраиваем testflight или внутреннее тестирование.

Что входит в работу

  • Дизайн и подготовка всех вариантов изображений (iOS: @1x, @2x, @3x; Android: адаптивные иконки 240×240 dp).
  • Настройка LaunchScreen.storyboard или Info.plist на iOS, SplashScreen API на Android.
  • Интеграция Lottie-анимации (если требуется).
  • Настройка плагинов для React Native (react-native-bootsplash) или Flutter (flutter_native_splash).
  • Проверка соответствия гайдлайнам App Store и Google Play.
  • Тестирование на 5+ реальных устройствах с разными версиями ОС.
  • Документация по сборке и поддержке.

Сроки ориентировочно

  • Простой сплэш (статичный, без анимации) — от 1 дня.
  • Сплэш с анимацией (Lottie) — 2–3 дня.
  • Кросс-платформенный проект (iOS + Android, одна команда) — 2–4 дня.

Стоимость рассчитывается индивидуально в зависимости от сложности дизайна, количества платформ и необходимости интеграции с существующим кодом.

Получите консультацию — мы поможем избежать типичных ошибок и гарантируем соответствие требованиям стора. Свяжитесь с нами, чтобы обсудить детали вашего сплэша.

Дизайн мобильных приложений: почему макет из Figma не гарантирует готовый интерфейс

Дизайнер присылает макет — красивый, с градиентами и кастомными компонентами. Разработчик открывает его и понимает: кнопка в 36pt, тапзона 20pt. На iPhone SE она физически не нажимается большим пальцем. Bottom sheet перекрывает контент при появлении клавиатуры. Навигация построена против нативной модели iOS. Apple отклонит приложение или пользователи уйдут через неделю — зависит от того, насколько повезёт пройти ревью.

Мы проектируем мобильные UX/UI более 5 лет и видели сотню таких ситуаций. За это время спроектировали и помогли запустить 30+ мобильных приложений — от финтех-продуктов до социальных сетей. Вам не нужно гадать, пройдёт ли дизайн App Review или Google Play — мы закладываем платформенные требования с первого экрана. Оценим ваш проект за один день, свяжитесь с нами.

Мобильный UX/UI — это не адаптация веб-дизайна. Это отдельная дисциплина с конкретными ограничениями платформы: safe area, тач-жесты, UIViewController lifecycle, Activity state management.

Почему Human Interface Guidelines и Material Design 3 нельзя игнорировать?

Apple HIG и Google Material Design 3 — не эстетические рекомендации. Это задокументированные ожидания пользователей, сформированные годами использования системных приложений. Ожидания, которые подтверждаются исследованиями пользовательского опыта на мобильных платформах (User experience design).

HIG определяет: минимальная тапзона 44×44 pt, safe area insets для нотча и Dynamic Island, стандартные жесты (swipe back на iOS, back gesture на Android 10+). Игнорирование safe area — распространённая ошибка. safeAreaLayoutGuide на UIKit и safeAreaPadding в SwiftUI существуют именно для этого. Дизайнер, не проставивший отступы от safe area в Figma, гарантирует баг при верстке.

Material Design 3 принёс Dynamic Color — цветовая схема генерируется из обоев пользователя через MaterialTheme.colorScheme в Jetpack Compose. Приложение, игнорирующее dynamic colors на Android 12+, выглядит чужеродно. Это не критично для нишевых продуктов, но заметно в массовых.

Самые болезненные несоответствия платформенным гайдам, которые встречаем на проектах:

  • Кастомная навигация поверх системной. Пользователь iOS ожидает swipe back из любой точки левого края экрана. Кастомный NavigationController без интерактивного жеста ломает это. Пользователь Android ожидает системную кнопку назад — кастомная back-кнопка в левом углу не заменяет её полностью.
  • Модальные окна вместо navigation push. Bottom sheet уместен для действий, не для навигации по контенту.
  • Отсутствие haptic feedback. UIImpactFeedbackGenerator на iOS — не украшение, а часть отклика интерфейса. Кнопки, свайпы, confirmation actions без тактильного отклика ощущаются сломанными.

Таблица: Сравнение требований iOS и Android для UX/UI

Параметр iOS (HIG) Android (Material Design 3)
Минимальная тапзона 44×44 pt 48×48 dp
Safe area safeAreaLayoutGuide / safeAreaPadding insets в WindowInsets
Жест назад Swipe from left edge System back gesture (Android 10+)
Цветовая схема Системная тёмная/светлая Dynamic Color из обоев
Типографика San Francisco (Dynamic Type) Roboto (Material Type Scale)
Haptic feedback UIImpactFeedbackGenerator HapticFeedbackConstants (Compose)

Как выжать максимум из Figma?

Figma Variables API изменил рабочий процесс. Design tokens — цвета, типографика, радиусы, отступы — хранятся как переменные и экспортируются напрямую в код через figma-tokens или style-dictionary. Это убирает слой ручного перекладывания значений и рассинхронизацию между дизайном и реализацией. Практика показывает: Figma Variables ускоряет передачу макетов в разработку в 2–3 раза по сравнению со статичными фреймами, а использование design tokens снижает количество ошибок при переносе в код на 60%.

Auto Layout с wrap и spacing между элементами позволяет строить компоненты, которые ведут себя как flex-контейнеры. Разработчик открывает компонент и видит не статичный артефакт, а описание поведения при разных размерах контента.

Component Properties — variants, boolean toggles, instance swaps — дают возможность собрать полноценную дизайн-систему прямо в Figma. Кнопка с 4 состояниями (default, hover, pressed, disabled), 3 размерами и 2 вариантами иконки — один компонент, а не 24 фрейма.

Figma Prototype с Variables позволяет сделать интерактивный прототип с реальным состоянием: показать, как экран меняется при разных значениях переменных. Это уже не просто «кликабельный макет», а полноценный инструмент для UX-тестирования.

Прототипирование и UX-тестирование до разработки

Самая дорогая ошибка в мобильном продукте — разработать фичу, выпустить её и обнаружить, что пользователи не понимают, как она работает. Figma-прототип на тестировании стоит нулевых часов разработки. Переделка готового экрана стоит дней. Тестирование прототипа до начала разработки снижает количество правок на 80%.

Для usability-тестирования используем Maze (тест задач на прототипе — пользователь проходит сценарий, мы получаем heatmaps и mis-click rate) или прямые сессии через UserTesting. Ключевые метрики — task completion rate и time on task, а не «нравится / не нравится».

A/B-тест в мобайле сложнее, чем в вебе: App Store не позволяет менять UI без обновления приложения. Поэтому важно тестировать гипотезы на прототипе до релиза, а не через production-эксперименты. По данным исследований, исправление бага, обнаруженного на прототипе, обходится в 10 раз дешевле, чем после выхода в продакшн. А среднее время выполнения задачи увеличивается на 40% после грамотной UX-оптимизации на этапе прототипирования.

Почему анимации критичны для восприятия интерфейса?

Анимации в мобайле — это обратная связь. Элемент появляется не мгновенно — он приходит в нужное состояние за 200–350 мс. Это даёт мозгу контекст для понимания, что произошло.

  • iOS: withAnimation в SwiftUI, UIViewPropertyAnimator в UIKit для интерактивных анимаций с возможностью прерывания. Spring animations с dampingRatio — основа большинства системных переходов Apple.
  • Android: AnimatedVisibility, animateContentSize, Crossfade в Compose. MotionLayout для сложных сцен с несколькими трансформациями.
  • Flutter: AnimationController + Tween, Hero-анимации между экранами, Lottie для After Effects-экспортов. Lottie особенно эффективен для onboarding-иллюстраций и пустых состояний.

Ключевое ограничение — 16 мс на кадр (60 fps) или 8 мс (120 fps на ProMotion-устройствах). Анимации должны работать на GPU через CALayer/RenderThread, а не на CPU через layoutSubviews. Профилирование через Core Animation instrument в Xcode — обязательный шаг перед релизом анимированных экранов.

Accessibility: не опциональная функция

VoiceOver на iOS и TalkBack на Android используют до 15% пользователей — эта статистика подтверждается исследованиями доступности, описанными в Accessibility (Wikipedia). В абсолютных числах для крупного приложения это тысячи человек. Кроме этого, App Store rejections по accessibility случаются, хотя редко.

Минимальный чеклист:

  • Все интерактивные элементы имеют accessibilityLabel
  • Контрастность текста не ниже 4.5:1 (WCAG AA)
  • Dynamic Type поддержан — интерфейс не ломается при максимальном размере шрифта
  • Фокус VoiceOver проходит по экрану в логичном порядке

SwiftUI автоматически генерирует accessibility tree из семантики компонентов. UIKit требует ручной расстановки accessibilityTraits, accessibilityHint, группировки через shouldGroupAccessibilityChildren.

Что входит в работу

В результат проектирования UX/UI входят:

Deliverable Описание
User flows и wireframes Структура экранов и пути пользователя
Дизайн-система Design tokens, компоненты, Style Dictionary для экспорта
UI-макеты (Figma) Все экраны с учётом платформенных гайдов
Интерактивный прототип Прототип с переменными и анимациями
Спецификация для разработки Zeplin / Figma Dev Mode с размерами, отступами, состояниями
Гайд по сопровождению Рекомендации по добавлению новых экранов и компонентов

Процесс и сроки

Проектирование проходит этапы: исследование и конкурентный анализ → user flows и wireframes → дизайн-система → UI-макеты → прототип → тестирование → передача в разработку.

Ориентиры по срокам:

Объём Срок
Редизайн 3–5 экранов 1–2 недели
MVP (10–15 экранов) 3–5 недель
Полноценный продукт (30+ экранов) 6–10 недель

Стоимость рассчитывается после анализа требований — количество экранов, сложность компонентов, нужна ли дизайн-система или работаем с существующей. Получите консультацию по вашему проекту — свяжитесь с нами для предварительной оценки. Закажите дизайн мобильного приложения под ключ — оценим проект за 1 день и предложим оптимальный объём работ.