Евиденција и надзор у мобилном развоју: суштина, који алати и како подесити

Аутор: IT Sectr Објављено: 2026-05-27 Време читања: 8 мин

Евиденција и надзор су два стуба стабилности мобилне апликације. Према Gartner (2025), тржиште APM решења ће достићи 8 милијарди долара до 2027. Правилна евиденција омогућава не само проналажење грешака, већ и предвиђање проблема пре него што утичу на кориснике.

Главно

  • На iOS-у главни алати су os_log (уграђена системска евиденција) и CocoaLumberjack (флексибилна библиотека са ротацијом и форматирањем). Надзор на iOS-у омогућава контролу перформанси у реалном времену.
  • На Android-у стандард је Timber (омотач око Logcat-а) и системски Log. Timber аутоматски убацује ознаку класе и управља нивоима евиденције.
  • Structured logging — записивање дневника у JSON. Омогућава аутоматску анализу дневника путем ELK, Grafana или Datadog. Препоручује се за продукцију и аутоматски надзор.
  • APM (Application Performance Monitoring) — класа алата за надзор мобилних апликација: New Relic, Datadog, Firebase Performance.
  • Ротација дневника и даљинска евиденција су обавезне за продукцију. Дневници не смеју пунити меморију уређаја и морају бити доступни програмеру на даљину.

Евиденција и надзор на iOS-у: os_log и CocoaLumberjack

Евиденција мобилних апликација на iOS-у се заснива на os_log — уграђеном Apple систему, доступном од iOS 10. os_log пише дневнике у јединствени системски дневник (на уређају или путем Console.app), подржава категорије, нивое и ознаке приватности. Комбинација евиденције и надзора на iOS-у путем Console.app и xcrun омогућава праћење грешака и перформанси у реалном времену.

Log Level на iOS-у

os_log има нивое: Default, Info, Debug, Error, Fault. У продукцији се задржавају Error и Fault — Debug и Info се искључују. Избор правог нивоа је део стратегије надзора мобилних апликација на iOS-у. Приватност: %{public}@ за незаштићене податке, %{private}@ за личне податке.

CocoaLumberjack

CocoaLumberjack је популарна библиотека за iOS евиденцију. За разлику од os_log, подржава прилагођене формате, асинхроно писање и ротацију дневника. DDLog, DDTTYLogger (конзола), DDFileLogger (датотека са ротацијом). За даљински надзор, CocoaLumberjack се може комбиновати са os_log — пишите у датотеку за даљинску евиденцију и у os_log за Console.app.

Евиденција и надзор на Android-у: Timber и Log Level

За евиденцију мобилних апликација на Android-у користи се Timber — библиотека Jake-а Wharton-а која је постала стандард платформе. Timber је омотач око Android Log (Logcat) који аутоматски додаје ознаку класе и конфигурише Tree. Timber је део система за надзор мобилних апликација Android: DebugTree за отклањање грешака, CrashlyticsTree за слање података.

Timber у детаљима

Timber користи Tree — компоненту која одлучује шта да ради са дневником. У debug верзијама DebugTree (излаз у Logcat), у release — CrashlyticsTree (слање падова). Timber.wtf() бележи фаталне грешке. Timber.tag("CustomTag") замењује ознаку. За ефикасан надзор, Timber се комбинује са APM алатима.

Log Level на Android-у

Android Log има нивое: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT. ProGuard/R8 уклања Log.d и Log.v у release-у — Timber омогућава евиденцију путем Plant-а. Избор нивоа утиче на квалитет надзора мобилне апликације — у продукцији се задржавају WARN и ERROR.

Алат Платформа Формат Ротација Даљински Сложеност
os_logiOSСтруктуриранСистемскаConsole.appНиска
CocoaLumberjackiOSТекст/JSONDDFileLoggerДа (прилагођен)Средња
TimberAndroidТекстLogcat/ПрилагођенTreeНиска
SentryiOS/AndroidJSONСерверскаДаСредња
LogcatAndroidТекстБаферADBНиска

При избору алата за евиденцију узмите у обзир: да ли је потребна даљинска евиденција, колико често се дневници мењају и ко ће их анализирати. За стартапове су довољни os_log или Timber. За предузећа — CocoaLumberjack са слањем на сервер. У IT Sectr-у користимо комбинацију Timber + Crashlytics за Android и os_log + CocoaLumberjack за iOS.

Structured Logging

Structured logging — записивање дневника у JSON формату уместо обичног текста. Пример: уместо "User login failed" пишемо {"event": "login_failed", "user_id": 123, "reason": "invalid_password"}. Ово је основа за аутоматски надзор — ELK стек и Grafana филтрирају, агрегирају и анализирају такве податке.

Предности structured logging-а

Филтрирање по пољима: пронађите све дневнике са event=crash у последњем сату. Агрегација: направите графикон броја грешака по верзији апликације. Интеграција са ELK (Elasticsearch, Logstash, Kibana) или Grafana. Structured logging није обавезан за прва издања, али постаје критичан када DAU пређе 10 000.

Даљинска евиденција и ротација дневника

Даљинска евиденција — слање дневника са уређаја на сервер за централизовани надзор. Имплементира се путем прилагођеног Tree-а (Android) или HTTP захтева. Шаљите само Error и Warning — не трошите саобраћај корисника. Ротација дневника: DDFileLogger (iOS) сваких 1 MB или 1 дан. На Android-у, Logcat бафер је ограничен.

APM и надзор мобилних апликација: Sentry, New Relic, Datadog

Application Performance Monitoring (APM) — класа алата за надзор мобилних апликација. APM мери: време покретања, мрежне захтеве, FPS, коришћење меморије, учесталост падова. Главни играчи: Sentry (Performance), New Relic Mobile, Datadog Mobile.

Sentry Performance

Sentry — не само извештавање о падовима, већ и надзор перформанси. Sentry Performance креира дистрибуиране трагове који показују колико је трајала свака фаза: од притиска на дугме до одговора сервера. Подржава iOS, Android, Flutter, React Native. Бесплатно до 5k догађаја месечно.

New Relic и Datadog

New Relic Mobile даје метрике: број сесија, време у апликацији, учесталост падова, мрежни захтеви. Datadog Mobile је савременији алат са контролним таблама у реалном времену и упозорењима. Оба су плаћена, али имају бесплатне нивое. IT Sectr препоручује почетак са Firebase Performance и прелазак на плаћени APM када DAU пређе 100 000.

Firebase Performance

Firebase Performance — бесплатан алат за надзор мобилних апликација од Google-а. Аутоматски прикупља метрике: време покретања апликације, HTTP захтеве (URL, метод, код одговора), FPS. За прилагођено праћење користите Trace API. Интеграција: додајте SDK у build.gradle (Android) или Podfile (iOS).

Trace и метрике

Trace — временски сегмент са почетком и крајем који мерите. Пример: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). Метрике — нумерички показатељи (величина одговора, број ставки). Firebase Performance не захтева серверску инфраструктуру — сви подаци иду кроз Firebase SDK. При надзору мобилних апликација, Trace API даје контекст за анализу перформанси.

Често постављана питања

Који нивои евиденције постоје и када их користити?

Стандардни нивои: ERROR (критичне грешке), WARN (потенцијални проблеми), INFO (кључни догађаји), DEBUG (отклањање грешака), VERBOSE (детаљно праћење). У продукцији се задржавају ERROR, WARN и INFO, остали се искључују.

Чему се Timber разликује од Logcat-а на Android-у?

Timber је библиотека-омотач око Logcat-а од Jake-а Wharton-а за евиденцију мобилних апликација на Android-у. Аутоматски убацује ознаку класе, конфигурише Tree и искључује дневнике у продукцији једним редом кода.

Шта је APM и зашто је потребан мобилној апликацији?

APM (Application Performance Monitoring) — класа алата за праћење перформанси: време покретања, мрежни захтеви, коришћење меморије, учесталост падова. При надзору мобилних апликација, New Relic, Datadog и Firebase Performance помажу у проналажењу уских грла пре жалби корисника.

Да ли стартап треба да користи плаћена APM решења?

За стартап је довољан Firebase Performance — бесплатан алат за надзор мобилних апликација. New Relic и Datadog се повезују када је потребно детаљно праћење и прилагођене контролне табле. IT Sectr препоручује почетак са Firebase-ом и прелазак на плаћена решења када DAU пређе 100 000.

Шта је structured logging и чему је бољи од обичног текста?

Structured logging је формат дневника у JSON или кључ-вредност уместо обичног текста. Омогућава филтрирање дневника по пољима, прављење графикона и аутоматску анализу у ELK или Grafana-и. Без структурираних дневника тешко је пронаћи обрасце у хиљадама записа.

Резиме

  • os_log — основни алат за евиденцију и надзор на iOS-у. CocoaLumberjack додаје флексибилност, ротацију и даљинску евиденцију.
  • Timber — стандард евиденције мобилних апликација на Android-у. DebugTree за отклањање грешака, CrashlyticsTree за release.
  • Structured logging (JSON) је неопходан за аутоматску анализу дневника. Интегрише се са ELK, Grafana, Datadog.
  • APM — Sentry Performance, New Relic, Datadog. Firebase Performance — бесплатан алат за надзор мобилних апликација за стартапове.
  • Ротација дневника спречава препуњавање меморије уређаја. Подесите DDFileLogger (iOS) или користите Logcat бафер (Android).
  • Даљинска евиденција — шаљите само Error и Warning дневнике. Сви дневници троше саобраћај корисника.
  • Trace API и breadcrumbs (Sentry) дају контекст за надзор мобилних апликација, претварајући дневнике у причу о инциденту.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту