Реализация анимации морфинга иконок в мобильном приложении

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

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

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

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

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Реализация анимации морфинга иконок в мобильном приложении
Средний
от 1 дня до 3 дней
Часто задаваемые вопросы

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

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

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

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Реализация анимации морфинга иконок в мобильном приложении

Кнопка «play → pause» с плавным переходом между иконками, hamburger-меню, трансформирующееся в крестик, иконка лайка, которая «прыгает» при нажатии — это не декор. Это обратная связь, которая убирает когнитивную нагрузку. Пользователь не читает подпись — он видит состояние через форму.

Технические подходы по платформам

На iOS морфинг иконок реализуется через CAShapeLayer и анимацию path. Два UIBezierPath должны иметь одинаковое количество контрольных точек — иначе Core Animation не сможет интерполировать между ними и даст артефакт в виде «схлопывания» в точку. Это самая частая ошибка: дизайнер экспортирует play-иконку с 3 точками, а pause — с 4, и результат неприемлем.

let morphAnimation = CABasicAnimation(keyPath: "path")
morphAnimation.fromValue = playPath.cgPath
morphAnimation.toValue = pausePath.cgPath
morphAnimation.duration = 0.25
morphAnimation.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut)
shapeLayer.add(morphAnimation, forKey: "morphing")
shapeLayer.path = pausePath.cgPath

Для сложных иконок с несовпадающим числом точек используем CGPath интерполяцию через промежуточный ключевой кадр или библиотеку Lottie — она берёт на себя всю математику.

На AndroidAnimatedVectorDrawable с <animated-vector> и <objectAnimator на pathData. Android Studio поддерживает импорт SVG с автоматической нормализацией путей, но при сложных формах нормализатор иногда ломает совместимость точек. Проверяем через PathParser.createPathFromPathData и ручной аудит точек в векторном редакторе.

В Flutter два варианта: CustomPainter с Path.lerp для простых форм или Lottie для сложных. Path.lerp требует одинакового числа вершин — та же проблема. Для иконок с разной топологией (например, звезда ↔ круг) используем MorphableShape из пакета morphable_shape или промежуточные keyframe-состояния.

Lottie как универсальный инструмент

Когда морфинг сложнее чем play/pause — например, иконка переходит через 3–4 состояния с перекрывающимися элементами — правильный путь: дизайнер делает анимацию в After Effects или Rive, экспортирует в .lottie / .json, а мы воспроизводим через lottie-ios / lottie-android / lottie-flutter. Никакой математики в коде, полная точность дизайна.

Важный нюанс с Lottie: LottieAnimationView.setMinAndMaxProgress(0f, 0.5f) позволяет воспроизвести только первую половину анимации (например, переход A→B), а setMinAndMaxProgress(0.5f, 1f) — обратный переход (B→A). Это стандартный паттерн для двусостоянных иконок.

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

Получаем от дизайнера SVG-иконки или Lottie-файл. Если SVG — нормализуем пути (одинаковое число точек), конвертируем под целевую платформу. Реализуем анимацию с согласованными timing-параметрами. Добавляем haptic feedback там, где уместно. Проверяем на slow animations и в accessibility-режиме (Reduce Motion).

Срок: 1–3 дня в зависимости от количества иконок и сложности переходов.