Інтеграція UXCam для запису сесій мобільного застосунку

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

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

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

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

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1735 послуг
Інтеграція UXCam для запису сесій мобільного застосунку
Простий
від 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

Інтеграція UXCam для запису сесій мобільного додатку

UXCam спеціалізується саме на мобільних UX-дослідженнях — на відміну від Sentry чи Datadog, тут сесії записуються з акцентом на розуміння поведінки користувача, а не діагностику помилок. Теплові карти жестів, фокусні зони на екрані, розділ Screen Flow — це інструменти для UX-команди та product manager, а не інженера з надійності.

Встановлення

iOS (Swift Package Manager):

// Package.swift
.package(url: "https://github.com/uxcam/ios-sdk", from: "3.6.0")
import UXCam

// AppDelegate
func application(_ application: UIApplication,
                 didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
    let config = UXCamConfiguration(appKey: "YOUR_APP_KEY")
    config.enableAdvancedGestureRecognizers = true
    UXCam.startWithConfiguration(config)
    return true
}

Android:

// build.gradle
implementation("com.uxcam:uxcam:3.+")
// Application.onCreate()
val config = UXCamConfiguration.Builder("YOUR_APP_KEY")
    .enableAdvancedGestureRecognizers(true)
    .build()
UXCam.startWithConfiguration(config)

Маскування приватних даних

UXCam за замовчуванням маскує поля з isSecureTextEntry (iOS) та поля типу password (Android). Для кастомних View з чутливим контентом:

// iOS — маскувати конкретний UIView
UXCam.occlude(view: cardNumberView, hideGestures: true)

// Маскувати весь екран
UXCam.occlude(view: self.view, hideGestures: false)
// Android — маскувати View
UXCam.occludeSensitiveView(binding.cardNumberField)

// Маскувати через XML
android:tag="uxcam_unmask" // виключити з маскування
android:tag="uxcam_mask"   // примусово маскувати

Для екранів оплати рекомендую приховувати весь екран через UXCam.tagScreenName("Payment", isOccluded: true) — це простіше, ніж маскувати кожен елемент окремо.

Тегування екранів

UXCam автоматично визначає імена екранів за іменем класу ViewController/Activity. На практиці імена класів вроде VC_3_Step2Fragment нечитаємі в дашборді. Додаємо явні теги:

// iOS — тег екрана
override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)
    UXCam.tagScreenName("Product Detail")
}
// Android — в Fragment.onResume()
override fun onResume() {
    super.onResume()
    UXCam.tagScreenName("Product Detail")
}

Кастомні события та властивості користувача

// Событие
UXCam.logEvent("add_to_cart", withProperties: [
    "product_id": product.id,
    "category": product.category,
    "price": product.price
])

// Властивості користувача (для сегментації в дашборді)
UXCam.setUserProperty("plan", value: "premium")
UXCam.setUserProperty("registration_cohort", value: "2024-Q1")

Властивості користувача дозволяють у UXCam дашборді фільтрувати записи по сегменту: дивитися сесії тільки premium-користувачів або тільки нових.

Семплінг та управління записом

// Записувати тільки 30% сесій
let config = UXCamConfiguration(appKey: "YOUR_APP_KEY")
config.userAppKey = "YOUR_APP_KEY"

// Старт/стоп вручну
UXCam.stopSessionAndUploadData() // завершити та відправити поточну сесію

// Не записувати в debug-збірці
if !isDebugBuild {
    UXCam.startWithConfiguration(config)
}

Для додатків з високою DAU варто подумати про семплювання: записувати 100% сесій дорого за storage у UXCam. Хороша стратегія — 10% випадкових + 100% сесій з помилками або конкретними подіями:

// Примусово записати сесію при критичній подіїї
UXCam.allowShortBreakForAnotherApp(true) // не завершувати сесію при переключенні
Analytics.shared.onCriticalError { error in
    UXCam.logEvent("critical_error", withProperties: ["error": error.localizedDescription])
    // Сесія буде помічена та доступна в дашборді
}

Що ми робимо

  • Підключаємо SDK через SPM (iOS) або Gradle (Android)
  • Налаштовуємо маскування чутливих екранів та View
  • Розставляємо tagScreenName для читабельних імен у дашборді
  • Додаємо ключові события та властивості користувача для сегментації
  • Налаштовуємо семплінг під обсяг трафіку

Часові оцінки

Базова інтеграція з маскуванням та тегуванням: 1–2 дні. Ціна розраховується індивідуально.