Створення Lottie-анімацій для екранів мобільного додатку

Інтерфейс смикається, екрани завантажуються із затримкою — користувачі йдуть, не дійшовши до замовлення. Ми розробляємо та впроваджуємо Lottie анімації під ключ: плавні переходи, живі ілюстрації та відгук, який відчувається одразу. Скорочуємо час відмальовування екранів і прибираємо ривки без переписування додатку.

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Створення Lottie-анімацій для екранів мобільного додатку
Середній
~3-5 днів
Часті запитання

Lottie анімація: чому інтерфейс гальмує і як це виправляється

Lottie анімація виглядає нешкідливо: дизайнер віддає JSON-файл, розробник підключає його до екрана — і ось уже кнопка м'яко пульсує, а онбординг оживає.

Проблема проявляється пізніше, коли таких файлів на одному екрані п'ять, кожен зі своєю часовою шкалою, а застосунок раптом починає губити кадри на середніх пристроях.

Анімація інтерфейсу застосунку перестає бути прикрасою і стає вузьким місцем: користувач бачить ривки під час скролу, а в логах зростає споживання пам'яті.

Причина в тому, як Lottie-плеєр працює з вмістом файлу. Кожен шар — це окремий об'єкт зі своїми трансформаціями, масками та ефектами; складні маски й розмиття змушують перемальовувати область заново на кожному кадрі.

Якщо векторна сцена містить сотні шляхів, а рендеринг відбувається в реальному часі, навантаження лягає на головний потік — і плавність екранів тримається лише на потужному залізі. На слабких пристроях це виливається в просідання частоти оновлення та помітні затримки відгуку.

Друга прихована стаття витрат — вага й кількість ассетів. Один важкий JSON на екрані ще терпимий, але коли анімації підвантажуються заздалегідь і залишаються в пам'яті, застосунок непомітно з'їдає ресурс, який потрібен спискам і зображенням.

Оптимізація анімацій починається не з коду, а з аудиту: скільки сцен реально потрібно, які шари можна спростити, де достатньо статичного стану.

Продуктивність мобільного застосунку тут упирається в три речі — складність сцени, момент її запуску та спосіб рендерингу.

Прибрати зайві маски, розбити довгу анімацію на короткі фрагменти, запускати її лише за видимості екрана й кешувати результат — це не косметика, а робота з вузьким місцем, яке безпосередньо впливає на утримання. Розбираємо, як це закривається на практиці.

Що дає вивірена Lottie анімація: ефект у цифрах

Lottie анімація — це векторний формат, який програється нативно на пристрої, а не як відеопотік. Ключова різниця з GIF та послідовністю PNG: замість сотень растрових кадрів у збірку потрапляє один компактний JSON-файл із кривими та таймінгами.

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

Що саме вимірюємо

  • Час відмалювання кадру. Векторні шари перераховуються на GPU, важкі растрові підстановки не блокують головний потік — інтерфейс залишається чутливим навіть при скролі.
  • Споживання пам'яті. Один JSON замість набору кадрів скорочує вагу екрана в рази: анімація не тримає в пам'яті десятки растрових шарів одночасно.
  • Частка відмов на слабких пристроях. Без відеопотоку та зайвих декодерів анімація не «з'їдає» кадри на бюджетних моделях — сценарій відпрацьовує передбачувано.
  • Оптимізація відмалювання. Маски, градієнти та вкладені композиції перезбираються в плоску структуру, щоб не плодити зайві шари при рендері.

Порівняння форматів анімації

Варіант Коли підходить Обмеження
Lottie (вектор) Іконки, онбординг, мікроанімації, стани кнопок Складні фотореалістичні сцени потребують растрових вставок
GIF Прості короткі цикли, де важлива сумісність Обмежена палітра, велика вага, немає плавності
Відео (MP4/WebM) Довгі заставки, складні ефекти Важка вага, окремий декодер, складніше масштабувати під екрани
Растрова послідовність Рідкісні кадрові ефекти Різко зростає вага збірки та споживання пам'яті

Вибір формату — це компроміс між вагою, плавністю та складністю сцени. Для інтерфейсних анімацій вектор майже завжди виграє: він масштабується під будь-яку щільність екрана без втрати якості та не тягне за собою відеоплеєр.

Lottie від Airbnb задає стандарт обміну векторною анімацією між дизайном і розробкою — файл збирається один раз і однаково програється на обох платформах.

Ми закладаємо у збірку перевірку ваги, числа шарів і профіль відмалювання, щоб ефект від анімацій був реальним, а не декларативним.

Як ми впроваджуємо анімації: етапи інженерної роботи

Впровадження анімацій починається не з відмальовування, а з аудиту інтерфейсу: інженери проходять по екранах, заміряють час відгуку, знаходять місця, де інтерфейс «мовчить» — перехід між станами, завантаження даних, підтвердження дії.

На цьому етапі фіксуємо, які сценарії справді виграють від руху, а які залишаються статичними: анімація заради анімації з'їдає бюджет кадрів і заважає роботі.

Далі — проєктування та складання. Кожен перехід отримує таймінг, криву прискорення та точку виходу, щоб рух збігався з логікою екрана, а не жив окремо від неї.

Готові сцени збираються в Lottie-анімацію та перевіряються на реальних пристроях: вага файлу, плавність на слабкому залізі, поведінка при перериванні жестом.

  1. Аудит інтерфейсу. Проходимо по екранах, заміряємо відгук, складаємо карту місць, де потрібна анімація, і відсікаємо зайве.
  2. Узгодження сценаріїв. Фіксуємо, що саме анімуємо, як довго і що відбувається при повторному натисканні або виході з екрана.
  3. Прототип руху. Збираємо чорнову Lottie-анімацію на ключових переходах, показуємо на пристрої до фінального відмальовування.
  4. Продакшн-складання. Відмальовуємо сцени, оптимізуємо контури та шари, прибираємо все, що не впливає на картинку, але тягне вагу.
  5. Перевірка на пристроях. Проганяємо на слабких і сильних моделях, дивимося плавність і споживання пам'яті при тривалому використанні.
  6. Інтеграція в застосунок. Підключаємо анімації до екранів, стежимо, щоб вони не блокували інтерфейс і коректно зупинялися.
  7. Передача анімацій і документації. Віддаємо вихідники, готові файли, правила таймінгів та інструкцію, як вносити правки без нас.

Такий інженерний процес дає передбачуваний результат: анімації не роздувають складання, не гальмують на слабких пристроях і залишаються керованими після здачі. Опишіть задачу — повернемося з оцінкою та планом за етапами.

Чим відрізняється Lottie від покадрової та нативної анімації?

Lottie анімація — це векторна анімація, яка описується не набором картинок, а математичною моделлю: координати, криві, ключові кадри та тайминги. Файл зберігає інструкції «що і як рухається», а відмальовку на пристрої виконує рантайм-бібліотека.

Звідси головна відмінність від покадрової анімації: замість десятків растрових кадрів на кожен перехід у застосунок потрапляє один компактний файл, який масштабується під будь-який екран без втрати різкості.

Покадрова анімація — це послідовність готових зображень, що програються як слайди. Вона дає повний контроль над картинкою: можна намалювати складні текстури, шум, світло, ефекти, які вектор просто не відтворить.

Але плата — вага та пам'ять: довга сцена перетворюється на сотні кадрів, кожен займає місце у збірці та в оперативній пам'яті під час програвання. На слабких пристроях це помітно за просіданнями під час прокручування та за витратою батареї.

Нативна анімація збирається засобами самої платформи — шарами, трансформаціями, переходами між станами екрана. Вона ідеальна для інтерфейсних рухів: поява кнопки, зміна вкладки, відгук на натискання. Тут мінімальна вага та максимальна чутливість, бо все робить система.

Обмеження — виразність: складну ілюстративну сцену з десятками незалежних об'єктів нативною анімацією збирати довго та дорого в підтримці.

Вибір формату — це компроміс між виразністю, вагою та складністю правок. Lottie виграє там, де потрібна детальна векторна сцена, єдиний файл для двох платформ і швидка правка без перезбирання застосунку: дизайнер змінює файл, і оновлення прилітає без релізу.

Покадрова бере гору на коротких зациклених роликах з фотореалістичною графікою, де вектор безсилий. Нативна — на всьому, що стосується поведінки інтерфейсу, а не ілюстрації.

За пам'яттю та складністю Lottie програє, коли сцена перевантажена: сотні шарів, важкі маски, розмиття та градієнти змушують рантайм перераховувати геометрію на кожному кадрі, і на бюджетних пристроях це дає просідання.

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

Кейс: як ми прибрали смикання екранів у застосунку доставки

Екран оформлення замовлення в застосунку доставки смикався під час скролу: кадр збирався довше, ніж пристрій встигав його показати, і на слабких моделях анімація розсипалася на ривки.

Проблема була не у верстці, а в тому, що важкі векторні шари перезбиралися на кожному кадрі замість того, щоб програватися як готова послідовність.

Заміри до правок: відмальовування кадру виходило за бюджет у 16 мс, пікове споживання пам'яті на екрані трималося близько 180 МБ, а частка відмов під час відкриття кошика на пристроях початкового рівня сягала 7%.

Що саме змінили

Ми винесли анімацію кошика та статусів доставки в Lottie анімацію — заздалегідь прораховану векторну послідовність, яку програє нативний рендерер без перезбирання шарів на кожному кадрі.

Важкі растрові спрайти та ланцюжки вкладених шарів замінили на один компактний файл, а сам програвач ініціалізується один раз під час входу на екран і перевикористовується між переходами.

Окремо обмежили кількість одночасно активних анімацій: поки одна програється, решта ставляться на паузу, щоб не конкурувати за потік відмальовування.

Метрики до і після

Метрика До Після
Час відмальовування кадру виходило за бюджет 16 мс стабільно в межах бюджету
Пікова пам'ять на екрані ~180 МБ ~95 МБ
Відмови на слабких пристроях до 7% нижче 1%
Розмір анімаційного ресурсу кілька наборів спрайтів один векторний файл

Скрол перестав смикатися, а екран кошика відкривається передбачувано навіть на бюджетних моделях. Ми працюємо на Lottie — форматі, який однаково програється на обох платформах без окремого збирання під кожну, тому правки анімації не потребують перезбирання нативних модулів.

Результат впровадження

Плавність інтерфейсу перестала залежати від класу пристрою: те, що раніше «сипалося» на слабких моделях, тепер працює однаково рівно.

Оптимізація застосунку дала побічний ефект — екран став швидше відкриватися й менше навантажувати батарею, бо рендерер не перераховує шари на кожному кадрі. Далі цей самий підхід ми перенесли на екрани відстеження замовлення та онбордингу.

Сумніви щодо сумісності, відкату та доступів — розбираємо

Lottie анімація — це не окремий артефакт «у вакуумі», а файл, який має коректно програватися на конкретних версіях iOS і Android, у конкретній бібліотеці рантайму та в конкретному стані екрана.

Тому головне технічне питання не «чи гарно виглядає», а «що буде, коли анімація зустрінеться з вашим поточним стеком». Нижче — розбір типових сумнівів, які виникають до старту.

Що якщо у нас інша версія рантайму? Ми збираємо анімацію під ту гілку бібліотеки, яка вже стоїть у проєкті, а не під останню. Якщо версія стара — або адаптуємо векторні шари під підтримуваний набір властивостей, або пропонуємо точкове оновлення рантайму з перевіркою на регресії. Сумісність анімацій перевіряється на реальних пристроях з вашої матриці, а не лише в редакторі.

Що якщо після релізу потрібно відкотити? Кожна анімація версіонується окремим файлом, тому відкат змін — це заміна одного артефакту на попередній, без перезбирання логіки екрана. Ми фіксуємо, яка версія пішла в який реліз, щоб повернення займало хвилини, а не години пошуків.

Як ви отримаєте доступ до проєкту і що залишиться у вас?

Ми працюємо у вашому репозиторії або передаємо вихідники окремим архівом — доступи до проєкту оформлюються на ваші акаунти, а не на наші. Після здачі у вас залишаються редаговані вихідники анімацій, а не лише стиснені файли, тому правки можна вносити без нас.

Що якщо ми захочемо змінювати анімації самі? Передача документації включає структуру шарів, назви груп і правила експорту — дизайнер або розробник з базовим досвідом внесе правку, не ламаючи рантайм.

Технічні сумніви щодо міграції на інший рушій теж закриваємо заздалегідь: описуємо, які властивості не переносяться один в один.

Що замовник отримує на руки:

  • вихідні файли анімацій у редагованому форматі;
  • експортовані файли під iOS і Android з перевіркою на пристроях;
  • карту версій: який файл у якому релізі;
  • інструкцію з експорту та заміни анімації;
  • список підтримуваних властивостей і обмежень рантайму;
  • чеклист перевірки перед релізом.

Опишіть вашу поточну версію рантайму та матрицю пристроїв — повернемося з оцінкою та планом робіт з анімацій.

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

Останні роботи

  • Розробка мобільного додатка для компанії FEEDME
    Розробка мобільного додатка для компанії FEEDME
    1010
  • Розробка мобільного додатку для компанії XOOMER
    Розробка мобільного додатку для компанії XOOMER
    903
  • Розробка мобільного додатку для компанії RHL
    Розробка мобільного додатку для компанії RHL
    1332
  • Розробка мобільного додатку для компанії ZIPPY
    Розробка мобільного додатку для компанії ZIPPY
    1180
  • Розробка мобільного додатку для компанії Affhome
    Розробка мобільного додатку для компанії Affhome
    1107
  • Розробка мобільного додатку для компанії FLAVORS
    Розробка мобільного додатку для компанії FLAVORS
    714