Ваш інтернет-магазин уже використовує Jivo для веб-чату. Тепер клієнти чекають підтримки в мобільному додатку. Але інтеграція Jivo SDK — не просто «додати бібліотеку»: потрібно налаштувати ініціалізацію, передачу контексту клієнта та push-сповіщення. Без тонкого налаштування оператори не бачать історію або не отримують повідомлення. Ми інтегрували Jivo SDK у 15+ проєктів під iOS та Android і знаємо, де найчастіше спотикаються. За багаторічний досвід виробили алгоритм, що скорочує час налаштування на 40% порівняно з самостійною реалізацією. Отримайте консультацію з інтеграції — це безкоштовно.
Перший сценарій — клієнт авторизований, і оператору потрібно бачити його дані: ім'я, контакт, тарифний план. Другий — push-сповіщення приходять тільки коли оператор онлайн. Третій — кастомізація: SDK дозволяє міняти кольори, але не layout, що конфліктує з дизайн-системами. Розберемо кожен кейс і покажемо, як ми це вирішуємо. Зв'яжіться з нами — оцінимо ваш проєкт за один робочий день.
Установка та ініціалізація
iOS
# Podfile
pod 'JivoSDK'
// AppDelegate.swift
import JivoSDK
func application(_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
JivoSDK.shared.set(channelID: "your_channel_id")
return true
}
func application(_ application: UIApplication,
didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) {
JivoSDK.shared.setPushToken(deviceToken)
}
Android
// build.gradle.kts
implementation("com.jivosite:sdk:3.x.x")
// Application.onCreate()
JivoSDK.init(this, "your_channel_id")
channelID береться з панелі Jivo: Налаштування → Канали → Мобільний додаток.
Відкриття чату та передача даних клієнта
// iOS: відкрити чат і передати контекст
JivoSDK.shared.presentContactForm(over: viewController)
JivoSDK.shared.setContactInfo(
name: "Іван Іванов",
email: "[email protected]",
phone: "+380901234567",
brief: "Тариф: Premium, ID: 12345"
)
Поле brief видно оператору як «замітка» — зручно передавати тариф, ID замовлення, останню дію. Оператор одразу розуміє, з ким розмовляє, не перемикаючи вікна.
Як налаштувати push-сповіщення?
SDK використовує APNs (iOS) та FCM (Android). Токен передається через setPushToken. Важливий нюанс: push-сповіщення приходять тільки коли оператор в мережі. Якщо всі офлайн — повідомлення не відправиться. Це особливість Jivo: SDK працює в зв'язці з операторським додатком, а не як самостійний push-сервіс. Ми реалізуємо fallback: якщо оператор неактивний, показуємо in-app сповіщення або пропонуємо залишити контакт. Згідно з документацією Jivo, push-сповіщення вимагають активної сесії оператора.
Чому кастомізація Jivo SDK — компроміс?
SDK надає базові методи зміни зовнішнього вигляду: setTitleColor, setAccentColor, setFont. Повністю перебудувати layout не можна. Якщо дизайн-система продукту строга, ми пропонуємо гібридний варіант: вбудувати WebView з Jivo-чатом і кастомізувати через CSS. Це потребує додаткової роботи (1–2 дні), але дає повний контроль.
Порівняння Jivo SDK з альтернативами
| Критерій |
Jivo SDK |
Zendesk SDK |
Intercom SDK |
| Мова інтерфейсу |
російська, англійська |
40+ мов |
20+ мов |
| Кастомізація |
обмежена (кольори, шрифти) |
широка (компоненти) |
середня (теми) |
| Push-сповіщення |
тільки при активному операторі |
працюють завжди |
працюють завжди |
| Термін інтеграції (наш досвід) |
1–2 дні |
3–5 днів |
2–4 дні |
| Передача контексту клієнта |
через brief |
через SDK-методи |
через атрибути |
Jivo SDK виграє у простоті інтеграції та швидкості — базове налаштування займає день. Якщо потрібна мультимовність або повний контроль UI, краще розглянути Zendesk. Але для українського ринку та україномовних операторів Jivo — оптимальний вибір.
Типові проблеми та їх вирішення
| Проблема |
Рішення |
| Push не приходять на iOS |
Перевірити виклик setPushToken після реєстрації push |
| Невірний channelID |
Скопіювати з панелі Jivo: Налаштування → Канали |
| Застаріла версія SDK |
Оновити до останньої з GitHub |
| Немає зворотного зв'язку при офлайн-операторі |
Додати fallback: in-app сповіщення або контактна форма |
Що входить в інтеграцію Jivo SDK
- Встановлення та налаштування SDK під iOS (Swift 5.9+, UIKit/SwiftUI) та Android (Kotlin 1.9+, Jetpack Compose).
- Конфігурація каналу в панелі Jivo (отримання channelID, налаштування прав операторів).
- Реалізація передачі даних авторизованого клієнта (ім'я, контакт, контекстна записка).
- Інтеграція push-сповіщень через APNs (iOS) та FCM (Android) з генерацією сертифікатів та обробкою токенів.
- Налаштування обробки станів: оператор онлайн/офлайн, відсутність мережі.
- Тестування на реальних пристроях (iPhone, Android) та в TestFlight / Firebase App Distribution.
- Документація: архітектурна схема, опис методів, інструкція для операторів.
- Гарантія сумісності з останніми версіями iOS та Android.
Ця послуга — вкладення, яке окупається за рахунок автоматизації консультацій. Ми допомагаємо оптимізувати бюджет, виключаючи типові помилки.
Орієнтири за термінами
Базова інтеграція з чатом, передачею даних та push — 1–2 дні. Якщо потрібна глибока кастомізація або зв'язка з CRM/аналітикою — до 4 днів. Вартість розраховується індивідуально: залиште заявку, і ми підготуємо комерційну пропозицію.
Типові помилки при інтеграції Jivo SDK
- Забувають викликати
setPushToken в iOS, через що push не приходить.
- Передають невірний
channelID (плутають з ID сайту).
- Використовують застарілу версію SDK: перевіряйте актуальну на Jivo Developer Hub.
- Не тестують сценарій офлайн-оператора: користувач пише повідомлення, але відповідь не приходить — і немає зворотного зв'язку.
- Намагаються кастомізувати layout стандартними методами — впираються в обмеження.
Ми за багаторічний досвід роботи з Jivo SDK накопичили бібліотеку типових рішень цих проблем. Якщо хочете уникнути граблів, отримайте консультацію — це безкоштовно. Замовте оцінку вашого проєкту — ми зв'яжемося протягом дня.
Підтримка мобільних додатків: моніторинг, хотфікси та оновлення ОС
Після виходу нової major версії ОС кожен другий додаток отримує сплеск crash rate. Background App Refresh перестає працювати, foreground service policy блокує фонові задачі, а новий iPhone з іншим співвідношенням сторін ламає hardcoded layout. Якщо не реагувати протягом 24–48 годин, рейтинг у стор падає, користувачі йдуть до конкурентів. Ми маємо 10+ років досвіду супроводу мобільних додатків і знаємо, як утримати crash-free rate на рівні 99,9% навіть після великих оновлень ОС. Замовте безкоштовний аудит — оцінимо ваш проект за 24 години.
Регулярна підтримка знижує crash rate до 99.9% — це в 10 разів краще, ніж без неї
Без проактивного моніторингу команди витрачають тижні на пошук причини крэшу, а користувачі отримують нестабільну версію. Ми налаштовуємо алерти в реальному часі: Firebase Crashlytics, Sentry з breadcrumbs, а для Flutter — sentry_flutter з WidgetsFlutterBinding.ensureInitialized(). Головна метрика — crash-free users rate нижче 99,5% — тривожний сигнал, нижче 99% — інцидент. Наш SLA: критичний крэш (crash rate >1%) — хотфікс за 24–48 годин до публікації, 3–7 днів до проходження рев'ю Apple. Для Android доступне прискорене рев'ю через Google Play Console. Згідно з Wikipedia, crash-free rate вище 99,9% є стандартом для топових додатків.
Як налаштувати Crash Monitoring в продакшні?
Ми інтегруємо Crashlytics або Sentry, налаштовуємо алерти в Slack/Telegram із зазначенням affected users та velocity. Для React Native додаємо breadcrumbs — видно, які actions передували крэшу. Для Flutter — runZonedGuarded та sentry_flutter. Типовий сценарій: після релізу нової версії ОС з'являється крэш у UISheetPresentationController через зміну поведінки detents. Crashlytics показує 0,3% affected users, але velocity зростає. Оперативно верифікуємо на пристрої, знаходимо причину, випускаємо хотфікс. Моніторинг Crashlytics знижує час пошуку помилок у 5 разів порівняно з ручним логуванням.
Технічні деталі налаштування Sentry
Для максимальної деталізації breadcrumbs додаємо:
- iOS:
SentrySDK.startSession() + кастомні breadcrumbs через SentrySDK.addBreadcrumb
- Android:
SentryAndroid.init() з BeforeSendCallback для фільтрації чутливих даних
- Flutter:
FlutterError.onError + runZonedGuarded
Після налаштування система автоматично класифікує інциденти за рівнем критичності.
Хотфікси: що можна зробити без публікації в стор
App Store забороняє змінювати виконуваний код без рев'ю (App Store Review Guidelines 2.5.2). Але є легальні механізми оперативного втручання.
-
Remote Config (Firebase або власний) — зміна поведінки через прапорці без оновлення. Вимкнути проблемну фічу, показати maintenance banner, змінити URL endpoint — все це за годину, а не за тиждень.
-
OTA оновлення для React Native:
react-native-code-push або Expo Updates дозволяють оновити JS-бандл без App Store. Обмеження: тільки JS-код, нативні модулі потребують повного оновлення.
-
Expo EAS Update — сучасна альтернатива CodePush з підтримкою каналів (production/staging) та rollback.
Ми радимо комбінувати Remote Config для критичних перемикачів і OTA для швидких виправлень логіки. Це скорочує час реакції вдвічі порівняно з традиційним релізним циклом.
Що робити при виході нової версії ОС?
Apple анонсує iOS beta на WWDC, фінальний реліз — через три місяці. Ми починаємо тестування з першої бети — це дає запас 3–4 місяці. Критичні області перевірки при кожному major iOS update:
| Компонент |
Що змінюється |
Ризики |
| Privacy Manifest |
Обов'язковий для використання ряду API |
Reject при рев'ю |
UIScene lifecycle |
Зміни в управлінні сценою |
Завершення фонових задач |
UICollectionView/UITableView анімації |
Зміна дефолтних анімацій |
Візуальні баги |
| Swift Concurrency |
Поведінка TaskGroup, async let |
Гонки даних |
На Android target SDK зобов'язаний оновлюватися щорічно. Google Play вимагає targetSdk мінімум Android -1. Перехід з targetSdk 33 на 34 змінює behaviour для foreground services, broadcast receivers, implicit intents. Ми тестуємо на реальних пристроях із кожною бетою, щоб уникнути сюрпризів у день релізу.
Як підготувати додаток до нової версії ОС: покроковий план
- Завантажити бета-версію Xcode або Android Studio.
- Зібрати проект з новим SDK і виправити компіляційні помилки.
- Запустити на реальному пристрої та перевірити критичні flows (авторизація, платежі, push-сповіщення).
- Оновити залежності з відомими вразливостями через Dependabot.
- Виправити deprecated API, які будуть видалені в релізі.
- Зімітувати сплеск користувачів (load testing) для виявлення race conditions.
- Опублікувати оновлення за 2 тижні до релізу ОС.
Процес роботи
| Етап |
Що робимо |
Типові терміни |
| Аудит поточного стану |
Аналізуємо crash logs, dependency граф, target SDK, версії бібліотек |
1–2 дні |
| Планування |
Складаємо backlog технічного боргу, пріоритезуємо хотфікси, встановлюємо SLA |
1 день |
| Реалізація |
Пишемо хотфікси, налаштовуємо Remote Config, оновлюємо залежності |
1–4 тижні |
| Тестування |
Перевіряємо на реальних пристроях, використовуємо Firebase Test Lab та XCTest/Espresso |
2–5 днів |
| Деплой |
Публікація в App Store та Google Play, моніторинг crash rate після релізу |
1–3 дні |
| Пост-релізний моніторинг |
Відстежуємо метрики, реагуємо на нові інциденти |
Безстроково |
Технічний борг та планування
Підтримка — це не тільки реакція на баги. Ми плануємо технічний борг: застарілі залежності з відомими вразливостями (npm audit / bundler-audit), deprecated API, які будуть видалені в наступному Xcode, бібліотеки без активної підтримки. Dependabot або Renovate автоматично створюють PR при виході нових версій. Мінімальну підтримувану версію ОС переглядаємо щорічно — підняття з iOS 15 на iOS 16 дозволяє видалити значний обсяг workaround-коду. Регулярне оновлення залежностей знижує витрати на підтримку в 2–3 рази порівняно з реактивним підходом.
Як уникнути типових помилок при супроводі?
- Ігнорувати crash rate нижче 1% — з часом він накопичується і падає рейтинг.
- Використовувати OTA для зміни нативного коду — порушення гайдлайнів Apple.
- Не перевіряти сумісність з новими версіями iOS до виходу фінального релізу — втрачаєте 3 місяці.
- Оновлювати залежності вручну без Dependabot — ризик забути про критичні вразливості.
Що входить в роботу (deliverables)
- Налаштування моніторингу (Crashlytics, Sentry або інший інструмент)
- SLA-реагування на інциденти (24/7 для critical, 48h для high)
- Документація відомих крэшів та workaround-ів
- Доступи до консолей розробника (App Store Connect, Google Play Console)
- Навчання команди роботі з Crashlytics та Remote Config
- Щомісячні звіти з метриками stability та recommendations
Строки орієнтовно: від 1 місяця (базова підтримка) до 6+ місяців (повний супровід з розвитком фіч). Вартість розраховується індивідуально — зв'яжіться з нами, і ми підготуємо комерційну пропозицію за 24 години.
Гарантія стабільності вашого додатку — це наш досвід 10+ років та сертифіковані спеціалісти з iOS та Android. Замовте безкоштовний аудит поточного стану вже сьогодні та отримайте план дій для підтримки на рівні top-grossing додатків.