Розробка мобільного застосунку з анімаціями часто впирається в компроміс: Lottie проста, але неінтерактивна, а кастомна анімація на SwiftUI/Compose — ресурсоємна. Rive вирішує цю дилему: векторні анімації з State Machine реагують на жести, дані та бізнес-логіку в реальному часі. Ми інтегрували Rive в проєкти з високонавантаженими інтерфейсами — від фітнес-трекерів до фінансових застосунків. Нижче — технічні деталі, які допоможуть уникнути типових помилок.
Як вибрати між Rive та Lottie?
Архітектура Rive Runtime
Rive file (.riv) містить артборди, анімаційні кліпи та State Machine. Runtime завантажує файл, створює інстанс Artboard і керує ним через StateMachineController або SimpleAnimation. Рендеринг — через власний Rive Renderer, який на iOS використовує Metal, на Android — OpenGL ES 3.0 / Vulkan.
| Платформа | Рендерер | Мінімальна версія | Зауваження |
|---|---|---|---|
| Android | OpenGL ES 3.0 / Vulkan (Rive Renderer) | API 18+ | Canvas рендерер (до 9.x) повільніший, але сумісніший; Rive Renderer включений за замовчуванням з 9.x |
| iOS | Metal | iOS 12+ | Rive Renderer завжди активний |
| Flutter | Skia / Impeller | Dart SDK 2.17+ | Використовує власний плагін rive |
Важливий момент: Rive Renderer і стандартний Canvas рендерер існують паралельно. На Android до версії runtime 9.x за замовчуванням використовувався Canvas рендерер — повільніший, але сумісніший. Починаючи з 9.x Rive Renderer включений за замовчуванням, і він значно швидший на складних mesh анімаціях, але вимагає OpenGL ES 3.0 (API 18+, що покриває >99% пристроїв).
Порівняння Rive та Lottie
| Параметр | Rive | Lottie |
|---|---|---|
| Інтерактивність | State Machine, input'и | Тільки відтворення |
| Формат | .riv (вектор + mesh) |
JSON (Bodymovin) |
| Продуктивність | Rive Renderer (Metal/GLES) | Quartz2D / Canvas |
| Розмір файлу | На 30–50% менше | Більше при complex shapes |
| Підтримка станів | Так (Boolean, Number, Trigger) | Ні |
Офіційна документація Rive підтверджує, що State Machine забезпечує безшовні переходи між анімаціями.
Чому Rive працює в 2-3 рази швидше за Lottie на складних анімаціях?
Rive в 2-3 рази продуктивніше Lottie при складних анімаціях. Rive використовує власний рендерер (Metal/GLES), тоді як Lottie покладається на системний Canvas. На складних mesh-анімаціях Rive Renderer показує до 3x кращу продуктивність.
Інтеграція Rive на Android
Для інтеграції Rive анімації в мобільний застосунок (mobile) необхідно розуміти State Machine Rive, runtime Rive та роботу з Rive file. Векторна анімація з Rive забезпечує високу продуктивність Rive. Додайте залежність у build.gradle:
implementation "app.rive:rive-android:9.6.0"
- Ініціалізуйте Rive в
Application.onCreate()— обов'язково один раз:
RiveInitializer.initializer(context)
-
Використовуйте
RiveAnimationViewу layout або створіть програмно. Вкажіть ресурс.rivфайлу та ім'я State Machine. -
Керуйте input'ами через view:
val riveView = findViewById<RiveAnimationView>(R.id.riveView)
riveView.setNumberState("StateMachine", "progress", 0.75f)
riveView.setBooleanState("StateMachine", "isActive", true)
riveView.fireState("StateMachine", "triggerName")
Інтеграція Rive на iOS
import RiveRuntime
// UIKit
let riveView = RiveView()
let model = RiveModel(fileName: "my_animation")
let viewModel = RiveViewModel(model, stateMachineName: "StateMachine")
viewModel.setView(riveView)
try? viewModel.setInput("isActive", value: true)
try? viewModel.triggerInput("tapTrigger")
// SwiftUI
struct AnimatedButton: View {
@StateObject private var rvm = RiveViewModel(fileName: "button_animation",
stateMachineName: "ButtonSM")
var body: some View {
rvm.view()
.onTapGesture { try? rvm.triggerInput("pressed") }
}
}
Інтеграція Rive на Flutter
RiveAnimation.asset(
'assets/animations/my_animation.riv',
stateMachines: ['StateMachine'],
onInit: (artboard) {
final controller = StateMachineController.fromArtboard(artboard, 'StateMachine');
artboard.addController(controller!);
final isActive = controller.findInput<bool>('isActive') as SMIBool;
isActive.value = true;
},
)
Чому Rive State Machine ефективніший за класичні анімації?
Інтерактивні анімації з Rive State Machine реагують на дії користувача. На відміну від лінійних анімацій, де послідовність кадрів фіксована, State Machine задає логіку переходів. Наприклад, у фітнес-застосунку анімація прогресу тренування перемикає стани: очікування, виконання, пауза, завершення. Це скоротило кількість артбордів з 12 до 3, а час відгуку анімації на жести — до 16 мс. Rive підтримує числові, булеві та тригерні input'и, що покриває 90% сценаріїв взаємодії. Результат: скорочення часу розробки анімацій на 40% та зниження навантаження на CPU/GPU за рахунок використання Rive Renderer. Економія бюджету на анімації — від $1000 до $5000 залежно від складності.
Типові помилки при інтеграції Rive
Поширені проблеми
- Rive file створений під один артборд, а в runtime намагаємося звернутися до іншого —
NullPointerException. Завжди вказуйте ім'я артборду через параметрartboardName. - Імена input'ів State Machine чутливі до регістру та пробілів. «Is Active» і «isActive» — різні inputs. Перевіряйте через Rive Editor.
- Великі
.rivфайли (>5 МБ) з embedded текстурами завантажуйте асинхронно. На iOSRiveModelможна ініціалізувати зDataоб'єктом, завантаженим у background thread. - На Android не забудьте викликати
RiveInitializer.initializer()— забудькуватість веде до крашуIllegalStateException.
Що входить у нашу роботу
- Аналіз анімаційних макетів та проектування State Machine.
- Інтеграція Rive для мобільних платформ (Android, iOS, Flutter).
- Оптимізація продуктивності: вибір правильного рендерера, кешування файлів.
- Документація щодо State Machine input'ів та API.
- Навчання команди роботі з Rive Editor та runtime.
- Підтримка після впровадження (2 тижні гарантійного доопрацювання).
Терміни та вартість
Базова інтеграція одного Rive file з простою State Machine — від $500 (4 години). Якщо потрібна двостороння синхронізація з бізнес-логікою (прогрес, стани авторизації, ігрові події) — $1000–$2000 (1–2 дні). Вартість розраховується індивідуально, залежить від складності та платформи. Ми маємо 10+ років досвіду в мобільній розробці та реалізували понад 40 проєктів з інтеграцією Rive. Наші клієнти економлять в середньому $2000 на проєкті завдяки Rive.
Отримайте консультацію з інтеграції Rive — наші інженери допоможуть вибрати архітектуру та налаштувати State Machine під вашу бізнес-логіку. Замовте аудит ваших анімацій вже сьогодні. Зв'яжіться з нами, щоб обговорити ваш проєкт.







