Android Geliştiriciler için Fabric.io & Crashlytics

Yusuf Çakmak
Arabam Labs
Published in
4 min readJan 7, 2018

Fabric, platform olarak mobil geliştiricilere daha iyi bir uygulama geliştirmeleri için imkan sağlamaktadır. Crashlytics ise Fabric içerisinde bulunan araçlardan biridir ve uygulamamızda oluşan hataları anlamamıza imkan sağlamaktadır.

Fabric & Crashlytics Kurulumu

Fabric tarafından geliştirilen eklentiyi Android Studio’ya ekleyerek, uygulamamıza kolayca entegre edebiliriz. Android Studio eklentisi ile yapmak istemezsek manuel olarakta ekleyebiliriz.

Uygulama levelinde bulunan build.gradle dosyamıza Fabric eklentisini ekliyoruz.

apply plugin: 'io.fabric'

Fabric ve Crashlytics kullanabilmek için build.gradle dosyamızı aşağıdaki gibi güncelliyoruz.

buildscript {
repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
dependencies {
compile('com.crashlytics.sdk.android:crashlytics:2.8.0@aar') {
transitive = true
}
}

Son olarak AndroidManifest dosyamıza Fabric ApiKey’imizi meta-data olarak eklememiz gerekiyor.

<meta-data
android:name="io.fabric.ApiKey"
android:value="API_KEY" />

Bunları yaptıktan sonra uygulamamızı ayağa kaldırdığımızda Fabric üzerinden uygulamamızı takip edebiliyor olacağız.

Crashlytics

Fabric’in bizim için sağladığı araçlardan biri olan Crashlytics ile uygulamamızda oluşan crashleri takip edebiliyoruz.

Crashlytics tarafından her crash için bir rapor oluşturulmakta. Bu rapora tıklayarak crash’in neden oluştuğuna dair bilgi edinebiliyoruz.

Crash’e neden olan durumu, hangi cihaz da olduğunu, hangi işletim sisteminde olduğunu da görebiliyoruz.

Bunların yeterli olmaması durumuna karşı aşağıdaki şekillerde ekstra bilgiler ekleyebiliyoruz.

Kullanıcı Bilgisi Ekleme

Crash raporlarında cihaz ve işletim sistemi bilgilerini alabiliyoruz ama bazı senaryolarda kullanıcı bilgilerine sahip olmamız sorunu bulmamızda işimizi kolaylaştırabiliyor.

Crash raporuna kullanıcı bilgilerini eklediğimizde ilgili crash ait raporda session kısmında görebilirsiniz.

Kullanıcı bilgilerini ihtiyaç durumumuza göre raporlarımıza ekleyebiliriz. Bize tek bir senaryoda lazımsa o anda alıp, crash ile birlikte gönderebiliriz.

fun forceCrashWithUserData() {
Crashlytics.setUserEmail("yukocan@gmail.com")
Crashlytics.setUserName("Yusuf")
Crashlytics.log("This is crash with user info")
throw RuntimeException()
}

Veya Fabric’i initialize ettikten sonra elimizde bir kullanıcı varsa bu bilgileri Fabric’e verip sonraki Crash’lerin kullanıcı bilgileri ile gitmesini sağlayabiliriz.

Fabric.with(this, Crashlytics())
Crashlytics.setUserName("Yusuf")
Crashlytics.setUserEmail("yukocan@gmail.com")

Özel Raporlar

Crash raporlarını özel notlar ile birlikte gönderebiliyoruz.

Cfun forceCrash(){
Crashlytics.log("This is a custom log for crash")
throw RuntimeException()
}

Sorunu takip etmemizi veya anlamamızı kolaylaştıracak bilgiler ekleyerek, takip ve çözüm sürecimizi kolaylaştırabiliriz.

Answers

Answers’ı Fabric’in gerçek zamanlı analitik aracı olarak düşünebiliriz. Fabric üzerinden kolayca, tek tık ile aktif edilebilmektedir.

Answer aracının durum takip(event tracking) özelliğe ile kullanıcıların hangi ekranda olduğunu ve ne yaptığını veya nerede sorun yaşadığını anlayabiliriz.

Answers’ın bize sağladığı bir çok durum(event) bulunmakta, bunlardan kısaca bahsedecek olursak, ödeme, sepete ekleme, arama, paylaşım, üye olma, giriş yapma vs.. Bunların yanında kendimiz özel durumlarımızı yaratıp bunları da takip ediyoruz.

Event’leri gerçekleştirilen eylemlerin başarılı ve başarısız olup olmadığı ile birlikte de tutabiliriz. Başarılı bir login işlemi için aşağıdaki gibi kullanabiliriz.

Answers.getInstance().logLogin(LoginEvent()
.putMethod("Login")
.putSuccess(true))

Veya uygulamanız içerisinde bulunan önemli bir sürecin başlangıçtan bitişine kadar takip edebiliriz.

Answers.getInstance().logCustom(CustomEvent("New Product Created"))Answers.getInstance().logCustom(CustomEvent("Product Photos Uploaded"))

Oyunlar için kullanıcıları takip etmek için Level’i kullanabiliriz. Kullanıcının oyunun ilk seviyesine başladığını takip etmek için :

Answers.getInstance().logLevelStart(LevelStartEvent().putLevelName("Level 1"))

Kullanıcı bu seviyeyi tamamladı ise :

Answers.getInstance().logLevelEnd(LevelEndEvent().putLevelName("Level 1"))

Fabric platform olarak bize birçok özellik sunuyor. Crashlytics, Answers, Beta, Digits gibi. Bunlar hakkında daha detaylı bilgi almak için Fabric.io sitesinde bulunan dökümanları inceleyebilirsiniz.

--

--