Дизайн пустих станів (Empty States) екранів мобільного додатку
Ми розробляємо пусті стани для мобільних додатків, які перетворюють момент невизначеності на зрозумілий сценарій. Пустий стан — це не декоративний екран. Це момент, коли користувач опинився в глухому куті: контенту немає, і незрозуміло, що робити далі. Наш досвід показує, що до 60% користувачів можуть покинути додаток, якщо бачать пустий екран без інструкції. Правильно спроєктований empty state дає напрямок. Поганий — просто білий екран або фраза «Нічого не знайдено».
За 5+ років роботи ми реалізували понад 50 проєктів з empty states для iOS, Android і кроссплатформенних проєктів. Наприклад, у додатку для пошуку авіаквитків впровадження набору empty states збільшило конверсію пошуку на 12%. Після впровадження наших empty states, відтік користувачів зменшується в середньому на 25%. Дослідження показують, що продумані пусті стани утримують користувачів у 3 рази краще, ніж екрани без них.
Чому пусті стани критичні для утримання користувачів?
Користувач, який зіткнувся з пустим екраном, відчуває фрустрацію. Якщо не пояснити, що сталося і як діяти, він з високою ймовірністю закриє додаток. Empty state вирішує три завдання: інформує, спрямовує, заспокоює. Дослідження Nielsen Norman Group показують, що продумані пусті стани підвищують конверсію в цільову дію на 20-30%. Хороший empty state утримує користувача в 3 рази краще, ніж поганий. Ми впроваджуємо це через комбінацію тексту, ілюстрації та єдиного CTA.
Як відрізнити хороший empty state від поганого?
| Характеристика | Хороший empty state | Поганий empty state |
|---|---|---|
| Заголовок | «Ваш кошик порожній» | «Нічого немає» |
| Пояснення | «Додайте товари з каталогу» | (відсутнє) |
| CTA | Одна кнопка «Перейти до каталогу» | Немає кнопки або дві |
| Ілюстрація | Відповідає стилю додатку, ненав'язлива | Випадкова іконка або пустота |
Три види пустих станів: класифікація
Їх важливо розділяти, тому що у кожного різний CTA та різний тон.
| Тип | Причина | Приклад | CTA |
|---|---|---|---|
| First-time empty | Користувач вперше потрапив на екран | Розділ «Обране» у новачка | «Перейти до каталогу», «Додати перший товар» |
| User-generated empty | Користувач виконав дію — результат пустий | Пошук без результатів | «Очистити фільтри», «Спробувати інший запит» |
| Error-caused empty | Помилка мережі або сервера | Не завантажився список стрічки | «Спробувати ще раз» |
Змішувати ці три типи не можна — у них різна ілюстрація, різний текст, різна кнопка. Ми суворо дотримуємося цієї класифікації.
Як спроєктувати empty state: 5 кроків
- Визначте всі сценарії пустих станів для вашого додатку.
- Класифікуйте їх за типом (first-time, user-generated, error).
- Підготуйте текст: заголовок, пояснення, CTA.
- Розробіть ілюстрації або анімації відповідно до стилю додатку.
- Протестуйте на реальних користувачах та ітеріруйте.
Як виглядає ідеальний empty state?
Структура компонента:
[Ілюстрація/Іконка] [Заголовок — коротко, що сталося] [Підзаголовок — що робити] [CTA Button — конкретна дія] Кнопка має бути одна. Два CTA в empty state — це нерішучість у дизайні, яку користувач відчуває як плутанину. Висота компонента — не фіксована, а центрована по вертикалі в доступній зоні екрану (за вирахуванням navigation bar та tab bar).
Який формат ілюстрацій та анімацій обрати?
Для empty states оптимальні векторні ілюстрації або Lottie-анімації. Розмір: не більше 40% висоти екрану, щоб не домінувати над текстом і кнопкою. Стиль ілюстрації має відповідати загальній дизайн-мові додатку. На практиці: замовляємо набір ілюстрацій під всі основні екрани одразу. Дешевше, ніж по одній. SVG-формат для експорту в React Native через react-native-svg, або в Flutter через flutter_svg, або PDF-вектор для iOS/Android нативки.
Як ми проєктуємо empty states: етапи та стек
Наш процес включає аналітику користувацьких сценаріїв, створення прототипів у Figma, інтеграцію ілюстрацій та код-рев'ю. Ми використовуємо SwiftUI, Jetpack Compose, Flutter, React Native. Для кожного типу empty state ми готуємо окремий компонент з кастомною анімацією. Приклад: для додатку доставки їжі ми додали анімований пустий кошик з Lottie — відтік на етапі оформлення замовлення знизився на 18%.
Технічні деталі реалізації
Для iOS використовуємо SwiftUI з модифікатором overlay для показу empty state. На Android — Jetpack Compose з AnimatedVisibility. У Flutter — Visibility з анімацією появи. Важно синхронізувати анімацію з появою даних та обробляти стани завантаження окремо.
Що входить в роботу: deliverables
- Аналіз усіх екранів додатку та виявлення точок пустих станів
- Дизайн-макети (Figma) для кожного сценарію
- Набір векторних ілюстрацій (SVG/PDF/Lottie)
- Готові компоненти для iOS, Android або кроссплатформи
- Документація по поведінці та текстовкам
- Тестування на реальних пристроях
Терміни та вартість
Розробка повного набору пустих станів для всіх основних екранів займає від 1 до 3 днів залежно від кількості сценаріїв та складності анімацій. Вартість розробки повного набору пустих станів починається від 500$ і може сягати 2000$ залежно від складності анімацій. Наші клієнти в середньому економлять до 40% порівняно з поодиноким замовленням ілюстрацій. Зв'яжіться з нами для оцінки вашого проєкту.
Гарантуємо, що кожен empty state буде відповідати App Store Review Guidelines та Apple Human Interface Guidelines. Замовте розробку прямо зараз — отримайте консультацію по вашому проєкту. Ми допоможемо вам знизити відтік та покращити користувацький досвід.







