Crash Analytics Nedir, Uygulama Hataları Nasıl İzlenir?

Yazar: Fatih ŞahinYayın: 27 Ağu 2026Güncelleme: 9 Eyl 202615 dk Okuma

Crash Analytics, mobil uygulamalardaki çökme olaylarını gerçek zamanlı izleyen ve raporlayan analiz sistemidir. SDK entegrasyonu ile hataların kök nedeni bulunur ve çözülür.

Crash Analytics Nedir, Uygulama Hataları Nasıl İzlenir? için öne çıkan görsel
Crash Analytics Nedir, Uygulama Hataları Nasıl İzlenir? için öne çıkan görsel

Crash Analytics, mobil uygulamalarda meydana gelen beklenmedik sonlanma (crash), donma (ANR) ve istisna (exception) olaylarını istemci tarafında yakalayan, analiz eden ve teknik ekiplere eyleme dönüştürülebilir kök neden raporları sunan izleme altyapısıdır. Mobil ürün yöneticileri, yazılım mimarları ve karar vericiler için hazırlanan bu rehberde, "Crash Analytics Nedir, Uygulama Hataları Nasıl İzlenir?" sorusunu teknik katmanları, entegrasyon süreçleri, mağaza görünürlüğüne etkileri ve kurumsal izleme stratejileriyle inceliyoruz.

Crash Analytics (Çökme Analizi) Nedir?

Crash Analytics, yerel (native) veya platformlar arası (cross-platform) mobil uygulamaların son kullanıcı cihazlarında çalışırken karşılaştığı beklenmedik çökmeleri, çalışma zamanı istisnalarını (runtime exceptions) ve donma problemlerini gerçek zamanlı olarak izleyen bir telemetri sistemidir. Uygulama kodunda yakalanmamış (unhandled) bir istisna fırlatıldığında, işletim sistemi çekirdeği (kernel) süreci sonlandırır. Crash analytics altyapısı tam bu kırılma anında devreye girerek bellek dökümünü, cihaz durumunu ve hata yığın izini (stack trace) kaydedip uzak sunuculara iletir.

Geleneksel web izleme araçlarından farklı olarak mobil çökme analizi, heterojen bir donanım ve işletim sistemi ekosisteminde çalışmak zorundadır. Kullanıcıların binlerce farklı cihaz modeli, özel üretici arayüzleri (OEM OS katmanları), değişken ağ bant genişlikleri ve kısıtlı bellek koşullarında uygulamayı çalıştırması, hataların yerel ortamlarda simüle edilmesini güçleştirir. Crash Analytics, bu çeşitlilik içinde oluşan hataları merkezi bir panelde kümeleyerek (clustering) yazılım ekiplerinin en yüksek etkiye sahip sorunlara odaklanmasını sağlar.

+-------------------------------------------------------------+
|                Mobil Cihaz (Runtime Ortamı)                 |
|  - Kullanıcı Etkileşimi -> [Unhandled Exception / Signal]   |
|  - Crash SDK Devreye Girer -> Stack Trace + Log Kaydı       |
+------------------------------+------------------------------+
                               |
                               v (Şifreli JSON / Telemetri)
+-------------------------------------------------------------+
|               Crash Analytics Bulut Altyapısı               |
|  - Sembolik Çözümleme (dSYM / ProGuard / R8 / Source Maps)  |
|  - Hata Kümeleme (Issue Grouping) & Etki Skorlama           |
+------------------------------+------------------------------+
                               |
                               v
+-------------------------------------------------------------+
|               Mühendislik & Ürün Yönetimi                   |
|  - Gerçek Zamanlı Alarmlar (Slack / PagerDuty / Jira)       |
|  - Triage (Önceliklendirme) -> Hotfix & Sürüm Güncellemesi  |
+-------------------------------------------------------------+

Tanımı ve Temel Amacı

Crash Analytics sistemlerinin birincil amacı, üretim (production) ortamındaki kullanıcı deneyimi kesintilerini görünür kılmak ve hata ayıklama (debugging) sürecini dakikalara indirmektir. Bir mobil uygulamanın çökmesi, kullanıcının o anki oturumunun (session) zorla sonlandırılması anlamına gelir; bu da doğrudan işlem yarıda kalmasına (drop-off) ve gelir kaybına yol açar.

Sistemin sunduğu temel çıktılar şunlardır:

  • Hata İzi (Stack Trace): Çökmenin hangi sınıfta, hangi metodda ve hangi satır numarasında gerçekleştiğini gösteren fonksiyon çağrı zinciri.

  • Olay Öncesi İzler (Breadcrumbs): Kullanıcının çökmeden önceki son 10-20 aksiyonunu (ekran geçişleri, ağ istekleri, buton tıklamaları) içeren kronolojik log listesi.

  • Cihaz ve Oturum Metadata'sı: İşletim sistemi sürümü, boş RAM miktarı, disk alanı, batarya seviyesi, ağ türü (Wi-Fi/Hücresel) ve cihazın root/jailbreak durumu.

  • Etki Analizi: Hatanın kaç tekil kullanıcıyı (impacted users) ve toplam kaç oturumu etkilediğini gösteren sayısal metrikler.

Neden Kullanılmalıdır?

Geliştirme aşamasında yapılan birim (unit), entegrasyon ve kullanıcı kabul testleri (UAT), üretim ortamındaki tüm uç durumları (edge cases) kapsayamaz. Farklı ekran çözünürlükleri, arka plan kısıtlamaları, düşük bellek (low memory killer) müdahaleleri ve beklenmedik API yanıt formatları yalnızca canlı kullanımda açığa çıkar. Crash Analytics olmadan bir mobil uygulamayı yönetmek, arıza göstergesi olmayan bir aracı sürmeye benzer.

Karar vericiler açısından bu araçlar, yazılım kalitesini soyut bir kavramdan çıkarıp ölçülebilir bir SLA (Hizmet Seviyesi Anlaşması) metriğine dönüştürür. Yeni bir sürüm dağıtıldığında (phased rollout), çökme oranlarının anlık takibi sayesinde hatalı derlemeler hızla geri çekilebilir veya durdurulabilir; böylece potansiyel krizler tüm kullanıcı tabanına yayılmadan kontrol altına alınır.

Uygulama Çökmeleri Kurumsal İtibar ve Gelirleri Nasıl Etkiler?

Mobil uygulamalar, modern işletmeler için yalnızca bir iletişim kanalı değil; doğrudan gelir üreten, müşteri sadakati oluşturan ve marka kimliğini temsil eden temel dijital ürünlerdir. Bir e-ticaret, fintech, SaaS veya lojistik uygulamasında yaşanan çökme, müşterinin fiziksel bir mağazadan güvenlik görevlisi tarafından dışarı çıkarılmasıyla eşdeğer bir algı yaratır. Araştırmalar, kullanıcıların %50'den fazlasının sürekli çöken bir uygulamayı ilk 24 saat içinde kaldırdığını (uninstall) göstermektedir.

Kurumsal ölçekte çökme maliyetleri yalnızca doğrudan işlem kayıplarıyla sınırlı değildir. Müşteri destek merkezlerine gelen çağrı hacminin artması, operasyonel destek maliyetlerini yukarı çeker. Aynı zamanda, teknik ekiplerin planlı ürün yol haritasını (roadmap) bırakıp acil durum yangın söndürme (firefighting) moduna geçmesi, yeni özelliklerin pazara çıkış süresini (time-to-market) ciddi biçimde geciktirir.

Kullanıcı Deneyimi ve Sadakat Kaybı (Churn)

Kullanıcı deneyimi (UX) açısından mobil çökme, en yüksek sürtünme (friction) noktasıdır. Kullanıcının sepeti onaylama, para transferi yapma veya kritik bir formu doldurma aşamasında uygulamanın kapanması, güven duygusunu zedeler. Özellikle finansal teknolojiler (Fintech) ve sağlık uygulamalarında bu durum doğrudan güven kaybına ve kullanıcının alternatif platformlara geçmesine (churn) neden olur.

Müşteri Edinme Maliyeti (CAC - Customer Acquisition Cost) her geçen dönem artarken, çökmeler sebebiyle kaybedilen kullanıcıları yeniden kazanmak (re-engagement) organik büyüme bütçelerini verimsizleştirir. Crash Analytics, dönüşüm hunilerindeki (conversion funnel) teknik kırılmaları tespit ederek pazarlama bütçelerinin boşa harcanmasını engeller.

Uygulama Mağazası Sıralamalarındaki Negatif Etkiler

Apple App Store ve Google Play Store algoritmaları, mağaza sıralamalarında ve öne çıkarma (featuring) süreçlerinde teknik kalite metriklerini doğrudan bir sıralama faktörü olarak kullanır.

  • Google Play Vitals: Google Play Console, uygulamaları "Kullanıcı Tarafından Algılanan Çökme Oranı" ve "ANR Oranı" metriklerine göre değerlendirir. Kötü davranış eşiğini (%1,09 çökme oranı veya %0,47 ANR oranı) aşan uygulamalar, arama sonuçlarında alt sıralara itilir ve "Benzer Uygulamalar" öneri listelerinden çıkarılır.

  • App Store Değerlendirmeleri: Sık çöken uygulamalar, kullanıcılar tarafından doğrudan 1 yıldızlı değerlendirmeler ve olumsuz yorumlarla cezalandırılır. Mağaza puanı 4.0'ın altına düşen uygulamaların organik indirme dönüşüm oranı %50'nin üzerinde kayba uğrar.

Etki AlanıDüşük Çökme Oranı (< %0,1)Yüksek Çökme Oranı (> %1,0)Kurumsal Risk Seviyesi
Müşteri Kaybı (Churn)Kontrol altında, yüksek sadakatHızlı terk etme, yüksek kaldırma oranıKritik
Google Play SıralamasıÜst sıralarda listelenme, önerilmeKötü davranış eşiği cezası, görünürlük kaybıYüksek
Dönüşüm Oranı (CR)Maksimum funnel tamamlamaÖdeme adımında sepet terkleriKritik
Destek Operasyon YüküStandart destek talepleriYoğun hata biletleri, artan personel maliyetiOrta

Müşteri Kaybı (Churn)

Düşük Çökme Oranı (< %0,1)

Kontrol altında, yüksek sadakat

Yüksek Çökme Oranı (> %1,0)

Hızlı terk etme, yüksek kaldırma oranı

Kurumsal Risk Seviyesi

Kritik

Google Play Sıralaması

Düşük Çökme Oranı (< %0,1)

Üst sıralarda listelenme, önerilme

Yüksek Çökme Oranı (> %1,0)

Kötü davranış eşiği cezası, görünürlük kaybı

Kurumsal Risk Seviyesi

Yüksek

Dönüşüm Oranı (CR)

Düşük Çökme Oranı (< %0,1)

Maksimum funnel tamamlama

Yüksek Çökme Oranı (> %1,0)

Ödeme adımında sepet terkleri

Kurumsal Risk Seviyesi

Kritik

Destek Operasyon Yükü

Düşük Çökme Oranı (< %0,1)

Standart destek talepleri

Yüksek Çökme Oranı (> %1,0)

Yoğun hata biletleri, artan personel maliyeti

Kurumsal Risk Seviyesi

Orta

Crash Analytics Sistemleri Teknik Olarak Nasıl Çalışır?

Crash Analytics altyapısının arkasındaki mühendislik, işletim sisteminin sinyal yakalama mekanizmaları, bellek yönetimi ve asenkron ağ transferi protokolleri üzerine kuruludur. İstemci tarafındaki SDK, uygulamanın yaşam döngüsüne (lifecycle) entegre olarak işletim sisteminin çökme yakalayıcılarına (exception handlers) kendi kancalarını (hook) yerleştirir. Bu yapı üç ana aşamadan oluşan bir boru hattı (pipeline) üzerinde çalışır.

1. SDK Entegrasyonu ve Veri Toplama

Entegrasyon süreci, uygulamanın başlatılma (initialization) koduna hafif bir SDK kütüphanesinin eklenmesiyle başlar. SDK, Android tarafında Thread.setDefaultUncaughtExceptionHandler, iOS tarafında ise NSSetUncaughtExceptionHandler ve Mach/POSIX sinyal işleyicilerini (SIGSEGV, SIGABRT, SIGBUS, SIGILL) dinlemeye alır.

Çökme gerçekleştiği mikro saniyede, işletim sistemi süreci tamamen öldürmeden önce SDK araya girer. Bu aşamada SDK:

  1. Çökmenin yaşandığı thread'i dondurur.

  2. Çağrı yığınındaki (call stack) bellek işaretçilerini (memory pointers) toplar.

  3. Cihazın anlık durumunu (kullanılabilir RAM, disk alanı, batarya durumu, oryantasyon) yerel bir dosyaya (crash dump/payload) yazar.

  4. Çökme sonrasında uygulama yeniden başlatıldığında, bu yerel dosyayı arka planda şifreli (TLS 1.3) bir HTTP isteği ile analitik sunucusuna gönderir.

2. Stack Trace (Yığın İzleme) ve Log Oluşturma

İstemci tarafından gönderilen ham çökme raporu, insanlar tarafından doğrudan okunamaz. Çünkü üretim ortamındaki uygulamalar boyut optimizasyonu ve güvenlik amacıyla küçültülür (minify), karıştırılır (obfuscate) ve derlenmiş makine koduna dönüştürülür. Örneğin, Android'de ProGuard veya R8, iOS'te ise LLVM derleyicisi değişken ve metod isimlerini a.b.c() gibi anlamsız karakterlere dönüştürür.

Bu ham bellek adreslerinin okunabilir kaynak koduna dönüştürülmesi işlemine Sembolik Çözümleme (Symbolication / De-obfuscation) denir:

  • iOS (dSYM): Xcode derleme sırasında hata ayıklama sembollerini içeren dSYM (Debug Symbol) dosyaları üretir. Crash Analytics sunucusu, ham crash adreslerini dSYM ile eşleştirerek çökmenin hangi Swift/Objective-C dosyası ve satırında olduğunu bulur.

  • Android (Mapping.txt): R8/ProGuard tarafından üretilen mapping.txt dosyası analitik paneline yüklenir. Sunucu, a.b() çağrısını OrderController.processPayment() şekline geri dönüştürür.

3. Kök Neden (Root Cause) Analizi ve Raporlama

Sembolik çözümleme tamamlandıktan sonra, analitik platformunun büyük veri işleme motoru devreye girer. Platform, binlerce farklı cihazdan gelen milyonlarca çökme kaydını analiz ederek aynı kök nedenden kaynaklanan olayları tek bir başlık altında kümeler (issue grouping/clustering).

Kümeleme algoritması, stack trace'in en üstündeki kritik fonksiyon imzalarını inceler. Bu sayede yazılım ekipleri 10.000 ayrı çökme kaydı yerine, "Ödeme ekranında NullPointerException (10.000 kullanıcı etkilendi)" şeklinde tek bir eyleme dönüştürülebilir hata başlığı görür. Platform ayrıca hatanın ilk hangi sürümde ortaya çıktığını, hangi işletim sistemi sürümlerinde yoğunlaştığını ve kullanıcı breadcrumb'larını birleştirerek kök neden analizini tamamlar.

En Sık Karşılaşılan Mobil Uygulama Hata Türleri

Mobil uygulama ekosisteminde hata izleme, yalnızca uygulamanın aniden kapanmasıyla sınırlı değildir. Hatalar, kullanıcının hissettiği etki derecesine ve sistem kaynaklarına verdikleri zarara göre farklı kategorilere ayrılır. Karar vericilerin ve teknik liderlerin bu ayrımı netleştirmesi, doğru SLA ve iyileştirme hedefleri koyabilmeleri için şarttır.

Fatal Exceptions (Kritik Çökmeler)

Fatal Exception, uygulamanın çalışmasını sürdürmesini imkansız kılan ve işletim sistemi tarafından uygulamanın anında sonlandırılmasına yol açan yakalanmamış (unhandled) hatalardır. Bu hatalar, doğrudan Crash-Free Session metriğini düşürür.

Yaygın fatal exception örnekleri:

  • NullPointerException / Fatal Nil Pointer: Bellekte var olmayan (null/nil) bir referansa veya nesne özelliğine erişilmeye çalışıldığında meydana gelir. Mobil dünyada en sık görülen çökme türüdür.

  • IndexOutOfBoundsException: Bir listenin veya dizinin mevcut eleman sınırlarının dışındaki bir indekse erişim sağlandığında tetiklenir (örneğin 5 elemanlı bir diziden 6. elemanı istemek).

  • OutOfMemoryError (OOM): Uygulamanın talep ettiği bellek miktarının, işletim sisteminin o uygulamaya ayırdığı RAM sınırını (heap limit) aşması durumudur. Genellikle yüksek çözünürlüklü görsellerin optimize edilmeden belleğe yüklenmesiyle oluşur.

  • EXCBADACCESS / SIGSEGV (iOS): Uygulamanın daha önce serbest bırakılmış (deallocated) veya kendisine ait olmayan bir bellek adresine erişmeye çalışması sonucu işletim sistemi tarafından fırlatılan çekirdek sinyalidir.

Non-Fatal Exceptions (Arka Plan Hataları)

Non-fatal exception'lar, uygulamanın çökmesine yol açmayan ancak belirli bir işlevin doğru çalışmasını engelleyen, kod içinde try-catch blokları ile yakalanmış durumlardır. Uygulama kapanmaz ancak kullanıcı bir hata mesajı ile karşılaşabilir veya buton işlevsiz kalabilir.

Örnek senaryolar:

  • Bir REST API'nin 500 Internal Server Error veya 503 Service Unavailable dönmesi.

  • Yerel veritabanına (SQLite/Realm) yazma işlemi sırasında kilitlenme (deadlock) yaşanması.

  • JSON parsing hatası nedeniyle dinamik arayüz bileşeninin ekrana çizilememesi.

Modern crash analytics araçları, bu yakalanmış istisnaların da özel loglar (handled exceptions) olarak kaydedilmesine olanak tanır. Böylece kullanıcı fark etmese bile arka planda başarısız olan API çağrıları veya bozuk veri akışları izlenebilir.

ANR (Application Not Responding) ve Bellek Sızıntıları (Memory Leaks)

Özellikle Android platformunda kritik olan ANR (Application Not Responding), uygulamanın ana iş parçacığının (Main/UI Thread) 5 saniyeden uzun süre kilitlenmesi durumunda ortaya çıkar. Kullanıcı ekrana dokunduğunda sistem tepki vermez ve işletim sistemi kullanıcıya "Uygulama Yanıt Vermiyor: Kapat / Bekle" uyarısı gösterir.

ANR'ların temel nedenleri:

  • Ana iş parçacığı üzerinde ağır veritabanı okuma/yazma veya I/O işlemleri yapmak.

  • UI Thread üzerinde senkron ağ istekleri çalıştırmak.

  • UI Thread üzerinde karmaşık algoritmalar veya görsel işleme operasyonları yürütmek.

Bellek Sızıntıları (Memory Leaks) ise, artık ihtiyaç duyulmayan nesnelerin çöp toplayıcı (Garbage Collector) veya ARC (Automatic Reference Counting) tarafından bellekten temizlenememesi durumudur. Zamanla biriken sızıntılar uygulamanın yavaşlamasına, cihazın ısınmasına ve nihayetinde OOM (Out of Memory) çökmesine yol açar.

Uygulama Hataları Nasıl İzlenir ve Yönetilir? (Adım Adım İzleme Stratejisi)

Uygulama hatalarını başarıyla izlemek, yalnızca bir SDK yükleyip paneli izlemekten ibaret değildir. Sürecin, geliştirme yaşam döngüsüne (SDLC) ve sürekli entegrasyon/sürekli dağıtım (CI/CD) hatlarına entegre edilmiş kurumsal bir disipline dönüştürülmesi gerekir. Proaktif bir hata yönetim süreci dört temel aşamadan oluşur.

SÜREÇ ADIMLARI

Adım Adım Hata İzleme Stratejisi

Mobil uygulama kararlılığını sağlamak için uygulanması gereken operasyonel adımlar.

01

İhtiyaca Uygun SDK'nın Belirlenmesi ve Entegrasyonu

Platform ve bütçe gereksinimlerine uygun analitik SDK'sını seçip uygulamanın başlangıç döngüsüne entegre edin.

02

Derleme Sembollerinin (dSYM / Mapping.txt) CI/CD'ye Bağlanması

Her yeni sürüm derlemesinde sembol dosyalarını analitik sunucusuna otomatik olarak yükleyen pipeline kurun.

03

Akıllı Alarm ve Bildirim Eşiklerinin Tanımlanması

Slack, PagerDuty veya e-posta entegrasyonları ile çökme fırlamalarında (spike) anlık tetiklenen alarmlar oluşturun.

04

Triyaj (Önceliklendirme) ve SLA Süreçlerinin Yürütülmesi

Gelen hataları kullanıcı etki hacmine göre sınıflandırıp Jira/GitHub Issues üzerinden ilgili sprint'e atayın.

Doğru Crash Analytics Aracının Seçilmesi

Araç seçimi; uygulamanın mimarisine (Native, Flutter, React Native, Unity), veri gizliliği politikalarına (GDPR/KVKK) ve şirketin bütçesine göre yapılmalıdır. Ücretsiz çözümler temel çökme izleme için yeterli olabilirken, karmaşık dağıtık sistemlerde performans izleme (APM) ve distributed tracing sunan gelişmiş platformlara ihtiyaç duyulur.

Seçim kriterleri arasında:

  • SDK'nın uygulama başlatma süresine (cold start time) ve ikili dosya boyutuna (binary size/IPA-APK size) etkisi,

  • NDK / C++ (native crash) çökme desteği,

  • Ağ çağrıları ve kullanıcı etkileşim izleri (breadcrumbs) toplama kabiliyeti,

  • Canlı oturum tekrarı (session replay) yetenekleri yer almalıdır.

ProGuard/R8 ve dSYM Yapılandırması ile Kod Çözümleme

En sık yapılan operasyonel hata, uygulamanın yayınlanması ancak sembol dosyalarının analitik sunucusuna iletilmemesidir. Bu durum panellerde Unknown Source:12 şeklinde çözümlenemeyen, kök nedeni anlaşılamayan çökme kayıtlarına yol açar.

Bu sorunu kalıcı olarak çözmek için CI/CD (GitHub Actions, GitLab CI, Fastlane, Bitrise) süreçlerine otomatik sembol yükleme adımı eklenmelidir:

  • Fastlane Entegrasyonu: download_dsyms veya upload_symbols_to_crashlytics eylemleri derleme sonrası otomatik tetiklenmelidir.

  • Gradle Otomasyonu: Android tarafında firebaseCrashlytics { mappingFileUploadEnabled true } yapılandırması release derlemelerinde zorunlu tutulmalıdır.

Gerçek Zamanlı Alarm (Alert) Sistemlerinin Kurulması

Her çökmeye aynı derecede acil müdahale edilemez. Ekiplerin alarm yorgunluğu (alert fatigue) yaşamasını engellemek için kurallar doğru kurgulanmalıdır:

  • Hız Eşiği (Velocity Alerts): Bir saat içinde aynı hatanın 500'den fazla kullanıcıyı etkilemesi durumunda nöbetçi mühendise (On-Call) PagerDuty çağrısı düşmelidir.

  • Yeni Çökme Bildirimi: Yeni yayınlanan bir sürümde daha önce hiç görülmemiş bir fatal exception tetiklendiğinde ilgili ürün ekibinin Slack kanalına anlık mesaj iletilmelidir.

  • Regresyon Bildirimi: Önceki sürümlerde çözülmüş ("Resolved") olarak işaretlenen bir hatanın yeni sürümde tekrar ortaya çıkması durumunda otomatik olarak kritik öncelikli görev açılmalıdır.

Hata Önceliklendirme (Triage) Süreci

Analitik paneline düşen yüzlerce hata kaydı belirli bir iş akışıyla yönetilmelidir. Triyaj süreci şu adımlarla yürütülür:

[Yeni Hata Algılandı]
        |
        v
[Etki Analizi] ---> Etkilenen Kullanıcı Oranı > %1 veya Satış Hunisinde mi?
        |
        +---> EVET: [P0 / Blocker] -> Acil Hotfix Süreci -> Kademeli Dağıtımı Durdur
        |
        +---> HAYIR: [P1 / P2] -> Jira Backlog'una Ekle -> Gelecek Sprint Planına Al

Kurumsal Ölçekte En Güvenilir Crash Analytics Araçları

Mobil uygulama hata izleme pazarında farklı kullanım senaryolarına, bütçelere ve teknik gereksinimlere hitap eden güçlü araçlar bulunmaktadır. Doğru aracı seçmek, ekibin hata çözme hızını ve toplam sahip olma maliyetini (TCO) doğrudan etkiler.

Firebase Crashlytics

Google ekosisteminin bir parçası olan Firebase Crashlytics, mobil uygulama pazarında en yaygın kullanılan ücretsiz ve hafif (lightweight) çökme analitiği aracıdır.

  • Avantajları: Google Analytics, BigQuery ve Google Play Console ile yerel entegrasyon. Ücretsiz kullanım modeli. Hızlı ve kolay SDK kurulumu.

  • Kısıtlamaları: Gelişmiş APM (Application Performance Monitoring) metriklerinin sınırlı olması, derin backend distributed tracing eksikliği ve özelleştirilmiş dashboard yeteneklerinin kısıtlılığı.

  • Uygunluk: Başlangıç seviyesinden büyük ölçekli projelere kadar temel çökme izleme ihtiyacı duyan tüm mobil ekipler.

Sentry

Açık kaynak kökenli Sentry hem mobil hem web hem de sunucu taraflı (full-stack) hata izleme konusunda endüstri standardı haline gelmiş bir platformdur.

  • Avantajları: Uçtan uca izlenebilirlik (frontend çökmesi ile buna sebep olan backend API hatasını ilişkilendirebilme), zengin breadcrumb desteği, gelişmiş hata etiketleme (tagging) ve oturum tekrarı (Session Replay). Hem bulut (SaaS) hem de şirket içi (on-premise) kurulum seçeneği.

  • Kısıtlamaları: Büyük ölçekli veri hacimlerinde kullanım bazlı ücretlendirme maliyetleri artabilir.

  • Uygunluk: Full-stack çalışan, mikroservis mimarisine sahip ve derin teknik analiz talep eden orta ve büyük ölçekli mühendislik organizasyonları.

Instabug ve Datadog

  • Instabug: Özellikle mobil odaklı hata izleme, kullanıcı geri bildirim yönetimi (in-app bug reporting) ve uygulama performans izleme (APM) alanında uzmanlaşmıştır. Kullanıcının cihazı sallayarak ekran görüntüsüyle hata bildirmesini sağlayan modülüyle test ve canlı süreçlerde çok güçlüdür.

  • Datadog: Kurumsal düzeyde tüm bulut altyapısını, sunucuları ve mobil istemcileri tek bir merkezi gözlemleme (observability) platformunda birleştirmek isteyen büyük işletmeler için uygundur. Maliyeti yüksektir ancak kurumsal güvenlik, uyumluluk ve özelleştirme imkanları en üst düzeydedir.

KARŞILAŞTIRMA TABLOSU

Karşılaştırma Tablosu

Kriter bazında avantajlar ve dezavantajları karşılaştırın.

Kriter
Avantajlar
Dezavantajlar
01 Fiyatlandırma Modeli
Ücretsiz
Freemium / Kullanım Bazlı
02 Full-Stack Tracing
Sınırlı
Çok Güçlü
03 Session Replay
Yok
Var
04 In-App Bug Reporting
Yok
Yok
05 On-Premise Kurulum
Yok
Var (Self-Hosted)
01

Fiyatlandırma Modeli

Avantaj

Ücretsiz

Dezavantaj

Freemium / Kullanım Bazlı

02

Full-Stack Tracing

Avantaj

Sınırlı

Dezavantaj

Çok Güçlü

03

Session Replay

Avantaj

Yok

Dezavantaj

Var

04

In-App Bug Reporting

Avantaj

Yok

Dezavantaj

Yok

05

On-Premise Kurulum

Avantaj

Yok

Dezavantaj

Var (Self-Hosted)

Hedeflenmesi Gereken İdeal "Crash-Free" Oranı Nedir?

Mobil uygulama kalitesini değerlendirirken kullanılan en kritik iki KPI: Crash-Free Sessions (Çökmesiz Oturum Oranı) ve Crash-Free Users (Çökmesiz Kullanıcı Oranı)'dır. Karar vericilerin bu iki metrik arasındaki farkı anlaması, ürün kalitesini doğru okuyabilmeleri adına elzemdir.

  • Crash-Free Sessions: Başlatılan toplam oturumların yüzde kaçının çökme olmadan tamamlandığını gösterir. (1 - (Çöken Oturum Sayısı / Toplam Oturum Sayısı)) * 100 formülüyle hesaplanır.

  • Crash-Free Users: Belirli bir zaman diliminde uygulamayı kullanan toplam tekil kullanıcıların yüzde kaçının hiç çökme yaşamadığını belirtir.

Endüstri Standartları ve Beklentiler

Mobil yazılım sektöründe kabul gören kararlılık eşikleri şu şekildedir:

  1. %99,9 ve Üzeri (Altın Standart / Elite): Finans, bankacılık ve lider e-ticaret uygulamalarının hedeflediği seviyedir. Her 1.000 oturumdan en fazla 1'inde çökme görülür. Üst düzey kullanıcı deneyimi ve kusursuz mağaza puanı sağlar.

  2. %99,5 - %99,8 (Kabul Edilebilir / Sağlıklı): Çoğu kurumsal B2C ve B2B mobil uygulama için endüstri standardı kabul edilir. Uygulama mağazası algoritmaları bu seviyedeki uygulamaları cezalandırmaz.

  3. %99,0 - %99,4 (İyileştirme Gerektiren / Riskli): Kullanıcı deneyiminde hissedilir problemler vardır. Mağaza puanlarında 1 yıldızlı yorumların artmaya başladığı eşiktir. Teknik borç temizliği planlanmalıdır.

  4. < %99,0 (Kritik / Kabul Edilemez): Uygulamanın her 100 oturumundan en az birinin çöktüğü anlamına gelir. Google Play Vitals cezalarına, yüksek churn oranına ve ciddi gelir kaybına neden olur. Acil müdahale (P0) gerektirir.

Proaktif Hata İzleme ile İş Sürekliliğini Sağlama

Mobil uygulama geliştirme döngüsü, ürünün mağazada yayınlanmasıyla sona ermez; aksine gerçek sınav o anda başlar. Kullanıcıların karşılaştığı hataları sosyal medyadan veya mağaza yorumlarından öğrenen reaktif organizasyonlar, hem marka prestijini hem de pazar payını hızla kaybeder. Crash Analytics altyapısı, şirketleri bu reaktif sarmaldan çıkarıp hataları kullanıcı fark etmeden çözen proaktif bir yapıya kavuşturur.

Teknik mükemmeliyet, yalnızca kod yazma kalitesiyle değil; canlıya alınan kodun nasıl izlendiği ve beklenmedik durumlara ne kadar hızlı yanıt verildiğiyle ölçülür. Kademeli dağıtım (staged rollout) stratejileri, otomatik alarm kurguları, sembolik çözümleme pipeline'ları ve disiplinli bir triyaj kültürü ile desteklenen bir hata izleme mekanizması, dijital ürünlerin uzun vadeli başarısının ve iş sürekliliğinin temel garantisidir.

Sıkça Sorulan Sorular

Crash Analytics SDK'ları mobil uygulamanın performansını ve açılış hızını olumsuz etkiler mi?

Kaliteli Crash Analytics SDK'ları asenkron ve hafif (lightweight) mimaride tasarlanır; bu nedenle uygulamanın açılış hızına (cold start) etkisi genellikle 5-15 milisaniye gibi ihmal edilebilir düzeydedir. Çökme anında toplanan veriler yerel diskte tutulup uygulama bir sonraki başlatıldığında arka planda gönderildiği için ağ trafiği veya pil tüketimi üzerinde hissedilir bir yük oluşturmaz.

Android'deki ANR (Application Not Responding) hatası ile normal çökme (Crash) arasındaki temel fark nedir?

Normal çökme (crash), kodda yakalanmayan bir istisna nedeniyle uygulamanın işletim sistemi tarafından anında sonlandırılmasıdır. ANR ise uygulamanın ana iş parçacığının (UI thread) 5 saniyeden uzun süre kilitlenmesi durumunda işletim sisteminin kullanıcıya uygulamayı kapatma veya bekleme seçeneği sunmasıdır; yani uygulama doğrudan kapanmaz ancak kullanıcı etkileşimine tamamen yanıt veremez hale gelir.

Çökme raporlarında görülen dSYM veya ProGuard/R8 mapping dosyası ne işe yarar?

Üretim ortamında derlenen uygulamalar güvenlik ve boyut optimizasyonu amacıyla karıştırılır (obfuscation) ve makine koduna dönüştürülür. dSYM (iOS) ve mapping.txt (Android) dosyaları, bu karıştırılmış bellek adreslerini ve anlamsız fonksiyon adlarını orijinal kaynak kodundaki dosya adı, metod ve satır numarası haline geri dönüştürerek (sembolik çözümleme) hatanın yerini okunabilir kılar.

Crash Analytics loglarında kişisel verilerin (PII) saklanması KVKK ve GDPR açısından risk oluşturur mu?

Evet, çökme loglarına, özel anahtarlara (custom keys) veya breadcrumb kayıtlarına kullanıcıların e-posta, parola, kredi kartı veya T.C. kimlik numarası gibi kişisel verilerinin (PII) yazılması ciddi yasal ihlal oluşturur. Ekiplerin loglama mekanizmalarında veri maskeleme (data sanitization) uygulaması ve kullanıcı tanımlayıcısı olarak yalnızca anonimleştirilmiş tekil ID'ler (UUID) kullanması zorunludur.

Mobil uygulamalar için hedeflenmesi gereken kabul edilebilir minimum Crash-Free Session oranı kaçtır?

Kurumsal ve ticari mobil uygulamalar için sektör standardı kabul edilen alt sınır %99,5 Crash-Free Session oranıdır. Finans, bankacılık ve yüksek hacimli e-ticaret uygulamalarında ise bu hedefin %99,9 ve üzerinde (altın standart) tutulması, mağaza algoritmalarında geriye düşmemek ve müşteri kaybını önlemek için kritik kabul edilir.

Sentry ile Firebase Crashlytics arasındaki en belirgin mimari fark nedir?

Firebase Crashlytics tamamen mobil odaklı, ücretsiz ve temel çökme izleme süreçleri için hızlı kurulan bir çözüm sunarken; Sentry, mobil istemciden backend API ve veritabanı sorgularına kadar uçtan uca (full-stack) dağıtık izleme (distributed tracing) ve canlı oturum tekrarı (session replay) yetenekleri sunan daha kapsamlı bir gözlemleme (observability) platformudur.

Yeni bir uygulama sürümü yayınlandığında çökme artışlarını (crash spike) önlemek için nasıl bir dağıtım stratejisi izlenmelidir?

Yeni sürümler doğrudan tüm kullanıcılara açılmamalı; Google Play ve App Store üzerinde kademeli dağıtım (phased/staged rollout) stratejisiyle önce %1, %5, %20 gibi küçük kullanıcı gruplarına sunulmalıdır. Her aşamada Crash Analytics panellerinden çökme oranları ve yeni ölümcül hatalar izlenmeli, olağandışı bir fırlama tespit edilirse dağıtım anında durdurularak hotfix hazırlanmalıdır.

Non-fatal (yakalanmış) istisnalar neden Crash Analytics paneline gönderilmelidir?

Try-catch blokları ile yakalanan non-fatal hatalar uygulamayı doğrudan çökertmese de arka planda başarısız olan API istekleri, bozuk veritabanı yazımları veya çalışmayan butonlar gibi işlevsel aksaklıklara yol açar. Bu istisnaların analitik paneline özel log olarak iletilmesi, kullanıcının hissettiği ancak uygulamanın kapanmadığı gizli sürtünme noktalarının tespit edilmesini sağlar.

Son Adım

Dijital projenizi bugün planlayalım

Web, yazılım, e-ticaret, mobil uygulama, entegrasyon, SEO veya GEO ihtiyacınızı net bir kapsama dönüştürelim.

Crash Analytics Nedir, Uygulama Hataları Nasıl İzlenir? | Webizm