Евиденција и надзор су два стуба стабилности мобилне апликације. Према Gartner (2025), тржиште APM решења ће достићи 8 милијарди долара до 2027. Правилна евиденција омогућава не само проналажење грешака, већ и предвиђање проблема пре него што утичу на кориснике.
Главно
Евиденција мобилних апликација на iOS-у се заснива на os_log — уграђеном Apple систему, доступном од iOS 10. os_log пише дневнике у јединствени системски дневник (на уређају или путем Console.app), подржава категорије, нивое и ознаке приватности. Комбинација евиденције и надзора на iOS-у путем Console.app и xcrun омогућава праћење грешака и перформанси у реалном времену.
os_log има нивое: Default, Info, Debug, Error, Fault. У продукцији се задржавају Error и Fault — Debug и Info се искључују. Избор правог нивоа је део стратегије надзора мобилних апликација на iOS-у. Приватност: %{public}@ за незаштићене податке, %{private}@ за личне податке.
CocoaLumberjack је популарна библиотека за iOS евиденцију. За разлику од os_log, подржава прилагођене формате, асинхроно писање и ротацију дневника. DDLog, DDTTYLogger (конзола), DDFileLogger (датотека са ротацијом). За даљински надзор, CocoaLumberjack се може комбиновати са os_log — пишите у датотеку за даљинску евиденцију и у os_log за Console.app.
За евиденцију мобилних апликација на Android-у користи се Timber — библиотека Jake-а Wharton-а која је постала стандард платформе. Timber је омотач око Android Log (Logcat) који аутоматски додаје ознаку класе и конфигурише Tree. Timber је део система за надзор мобилних апликација Android: DebugTree за отклањање грешака, CrashlyticsTree за слање података.
Timber користи Tree — компоненту која одлучује шта да ради са дневником. У debug верзијама DebugTree (излаз у Logcat), у release — CrashlyticsTree (слање падова). Timber.wtf() бележи фаталне грешке. Timber.tag("CustomTag") замењује ознаку. За ефикасан надзор, Timber се комбинује са APM алатима.
Android Log има нивое: VERBOSE, DEBUG, INFO, WARN, ERROR, ASSERT. ProGuard/R8 уклања Log.d и Log.v у release-у — Timber омогућава евиденцију путем Plant-а. Избор нивоа утиче на квалитет надзора мобилне апликације — у продукцији се задржавају WARN и ERROR.
| Алат | Платформа | Формат | Ротација | Даљински | Сложеност |
|---|---|---|---|---|---|
| os_log | iOS | Структуриран | Системска | Console.app | Ниска |
| CocoaLumberjack | iOS | Текст/JSON | DDFileLogger | Да (прилагођен) | Средња |
| Timber | Android | Текст | Logcat/Прилагођен | Tree | Ниска |
| Sentry | iOS/Android | JSON | Серверска | Да | Средња |
| Logcat | Android | Текст | Бафер | ADB | Ниска |
При избору алата за евиденцију узмите у обзир: да ли је потребна даљинска евиденција, колико често се дневници мењају и ко ће их анализирати. За стартапове су довољни os_log или Timber. За предузећа — CocoaLumberjack са слањем на сервер. У IT Sectr-у користимо комбинацију Timber + Crashlytics за Android и os_log + CocoaLumberjack за iOS.
Structured logging — записивање дневника у JSON формату уместо обичног текста. Пример: уместо "User login failed" пишемо {"event": "login_failed", "user_id": 123, "reason": "invalid_password"}. Ово је основа за аутоматски надзор — ELK стек и Grafana филтрирају, агрегирају и анализирају такве податке.
Филтрирање по пољима: пронађите све дневнике са event=crash у последњем сату. Агрегација: направите графикон броја грешака по верзији апликације. Интеграција са ELK (Elasticsearch, Logstash, Kibana) или Grafana. Structured logging није обавезан за прва издања, али постаје критичан када DAU пређе 10 000.
Даљинска евиденција — слање дневника са уређаја на сервер за централизовани надзор. Имплементира се путем прилагођеног Tree-а (Android) или HTTP захтева. Шаљите само Error и Warning — не трошите саобраћај корисника. Ротација дневника: DDFileLogger (iOS) сваких 1 MB или 1 дан. На Android-у, Logcat бафер је ограничен.
Application Performance Monitoring (APM) — класа алата за надзор мобилних апликација. APM мери: време покретања, мрежне захтеве, FPS, коришћење меморије, учесталост падова. Главни играчи: Sentry (Performance), New Relic Mobile, Datadog Mobile.
Sentry — не само извештавање о падовима, већ и надзор перформанси. Sentry Performance креира дистрибуиране трагове који показују колико је трајала свака фаза: од притиска на дугме до одговора сервера. Подржава iOS, Android, Flutter, React Native. Бесплатно до 5k догађаја месечно.
New Relic Mobile даје метрике: број сесија, време у апликацији, учесталост падова, мрежни захтеви. Datadog Mobile је савременији алат са контролним таблама у реалном времену и упозорењима. Оба су плаћена, али имају бесплатне нивое. IT Sectr препоручује почетак са Firebase Performance и прелазак на плаћени APM када DAU пређе 100 000.
Firebase Performance — бесплатан алат за надзор мобилних апликација од Google-а. Аутоматски прикупља метрике: време покретања апликације, HTTP захтеве (URL, метод, код одговора), FPS. За прилагођено праћење користите Trace API. Интеграција: додајте SDK у build.gradle (Android) или Podfile (iOS).
Trace — временски сегмент са почетком и крајем који мерите. Пример: trace = FirebasePerformance.getInstance().newTrace("checkout_process"). Метрике — нумерички показатељи (величина одговора, број ставки). Firebase Performance не захтева серверску инфраструктуру — сви подаци иду кроз Firebase SDK. При надзору мобилних апликација, Trace API даје контекст за анализу перформанси.
Често постављана питања
Стандардни нивои: ERROR (критичне грешке), WARN (потенцијални проблеми), INFO (кључни догађаји), DEBUG (отклањање грешака), VERBOSE (детаљно праћење). У продукцији се задржавају ERROR, WARN и INFO, остали се искључују.
Timber је библиотека-омотач око Logcat-а од Jake-а Wharton-а за евиденцију мобилних апликација на Android-у. Аутоматски убацује ознаку класе, конфигурише Tree и искључује дневнике у продукцији једним редом кода.
APM (Application Performance Monitoring) — класа алата за праћење перформанси: време покретања, мрежни захтеви, коришћење меморије, учесталост падова. При надзору мобилних апликација, New Relic, Datadog и Firebase Performance помажу у проналажењу уских грла пре жалби корисника.
За стартап је довољан Firebase Performance — бесплатан алат за надзор мобилних апликација. New Relic и Datadog се повезују када је потребно детаљно праћење и прилагођене контролне табле. IT Sectr препоручује почетак са Firebase-ом и прелазак на плаћена решења када DAU пређе 100 000.
Structured logging је формат дневника у JSON или кључ-вредност уместо обичног текста. Омогућава филтрирање дневника по пољима, прављење графикона и аутоматску анализу у ELK или Grafana-и. Без структурираних дневника тешко је пронаћи обрасце у хиљадама записа.
Резиме
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.