Android Team Lead at blu Bank
خداحافظ فایربیس : ردیابی کرش ها و مانیتورینگ برنامه با سرویس قدرتمند Yandex - AppMetrica
در این مقاله میخواهیم در مورد جایگزین قدرتمند فایربیس (Firebase) صحبت کنیم که برای مانیتورینگ , گزارش گیری و مهم تر از همه ردیابی کرش های احتمالی در برنامه های اندروید و iOS هست که بعد از انتشار در مارکت های آنلاین کمک های زیادی به ما خواهند کرد.
همینطور شاید در جریان تحریم های هوآوی توسط گوگل و دولت آمریکا باشید که باعث شده گوشی های جدید این شرکت و برنامه های ما با مشکلات جدیدی روبرو شه و نتونه کد ها و Dependency های GSM یا همون گوگل پلی سرویسز رو اجرا کنه و کلی دیالوگ های آزار دهنده نشون بده که میگه :
“application won’t run without google play services which are not supported by your device”
خب ما با استفاده از سرویس قدرتمند Yandex که AppMetrica نام داره میتونیم تمام کدهای GSM رو به این پلتفرم تغییر بدیم و از شر این ارور های آزار دهنده رها بشیم و همینطور از استفاده از این سرویس که هم پیاده سازیش راحته و هم فیلتر نیست و پر امکانات تر هست , لذت ببریم .
اپ متریکا یک سرویس قدرتمندی که به ما در مانیتورینگ , گزارش گیری , ارسال ایونت های مختلف , ذخیره اطلاعات کاربران , پوش نوتیفیکیشن و از همه مهم تر ردیابی کرش های رخ داده در برنامه مون کمک میکنه که به جد میتونم بگم خطاها رو دقیق تر و بهتر از فایربیس لیست میکنه .
ثبت نام
با استفاده از این لینک میتونید به راحتی یک حساب کاربری در Yandex بسازید و از تمام سرویس های اون به طور کاملا رایگان استفاده کنید.
تنظیمات اولیه
فایل گریدل برنامه رو باز کنید و کد های زیر رو به اون اضافه کنید :
apply plugin: ‘appmetrica-plugin’
android {
appmetrica {
postApiKey = “YOUR_POST_API_KEY”
mappingBuildTypes = [‘release’]
}
}
dependencies {
implementation ‘com.yandex.android:mobmetricalib:3.15.0’
}
بعد از اضافه کردن کد های بالا , فایل گریدل پروژه رو باز کنید و خط زیر رو به اون اضافه کنید:
classpath ‘com.yandex.android:appmetrica-build-plugin:0.1.3’
پروژه رو Sync کنید و الان آماده استفاده از AppMetrica تو برنامه مون هستیم.
تنظیمات اولیه AppMetrica
خب بریم برای ستاپ کردن اپ متریکا و با توجه به نیاز هامون میتونیم مشخص کنیم از کدوم فیچر ها استفاده کنیم و کدوم غیرفعال باشند :
val config = YandexMetricaConfig.newConfigBuilder(API_KEY)
.withNativeCrashReporting(false)
.withLocationTracking(false)
.withAppVersion(BuildConfig.VERSION_NAME)
.build()
YandexMetrica.activate(this, config)
YandexMetrica.enableActivityAutoTracking(this)
اول از همه نیازه که یک Api Key بسازید که با استفاده از این لینک میتونید پروژه تون رو اضافه کنید و Api Key و Post Api Key رو از داشبورد بردارید.
اگر پروژه شما شامل کدهای نیتیو (C++) هست و میخواهید که کرش های نیتیو هم شناسایی کنید فقط کافیه مقدار withNativeCrashReporting رو true کنید و همینطور میخواهید موقعیت مکانی کاربران تون رو داشته باشید هم مقدار withLocationTracking رو تغییر بدید .
همینطور با مشخص کردن ورژن برنامه تون میتونید خطا ها و کل اطلاعات رو دسته بندی کنید و در داشبورد اپ متریکا ببینید.
ذخیره اطلاعات کاربران
شما میتونید اطلاعات کاربران برنامه تون رو با استفاده از AppMetrica ذخیره کنید و اونها رو با فیلتر های مختلقی مثل کشور , شهر , نوع دستگاه و.. روی داشبورد مشاهده کنید.
val userProfile = UserProfile.newBuilder()
.apply(Attribute.name().withValue(name))
.apply(Attribute.customString(“Email”).withValue(email))
.build()
YandexMetrica.setUserProfileID(id)
YandexMetrica.reportUserProfile(userProfile)
اپ متریکا مقادیری مثل نام , جنسیت و تاریخ تولد رو از قبل ساخته و با استفاده از اونها میتونید اطلاعات کاربران رو ذخیره کنید . همنیطور امکان ذخیره اطلاعات اضافی مثل ایمیل , عکس و.. رو بهتون میده که با استفاده از Attribute.customString/Boolean/Number شما میتونید هر نوع اطلاعاتی رو ذخیره کنید.
ارسال ایونت
اپ مریکا این امکان رو به شما میده که ایونت های مختلفی رو ارسال و ذخیره کنید . برای مثال با باز شدن هر صفحه از برنامه یک ایونت بفرستیم که معادل setCurrentScreent در فایربیس میتونه باشه و همینطور میتونید عملکرد های مختلف مثل کلیک رو با ارسال ایونت و ذخیره آنها شناسایی کنید.
YandexMetrica.reportEvent(string)
ذخیره درآمد
با استفاده از اپ متریکا شما میتونید درآمد های حاصل از اپلیکیشن تون رو ذخیره و گزارش گیری کنید و بعنوان یک حسابدار از این سرویس استفاده کنید .
شما میتونید هر محصول رو با اسم و آیدی مشخص و تعداد و.. در Yandex ذخیره کنید تا اطلاعات کاملی از فروش و سود برنامه تون داشته باشید.
val revenue = Revenue.newBuilderWithMicros(1000, Currency.getInstance(“IRR”))
.withProductID(“PD-123”)
.withQuantity(1)
.build()
YandexMetrica.reportRevenue(revenue)
گزارش دستی خطا
اپ متریکا در کنار ثبت خودکار خطا ها , به شما این امکان رو میده که دستی خطاهایی رو به سمت پنل بفرستید و در داشبورد بررسی شون کنید :
try {
…
} catch (ex: Exception) {
YandexMetrica.reportUnhandledException(ex)
}
نتیجه
اپ متریکا سرویس Yandex یک پلتفرم کاملا رایگان و قدرتمند که به شما برای گزارش گیری و مانیتورینگ برنامه تون کمک های زیادی میکنه و به جرات میتونم بگم تجربه استفاده بهتری نسبت به فایربیس با این سرویس داشتم که از لحاظ گزارش خطاها واقعا بهتر و دقیق تر هست و همینطور فیلتر نیست و با خیال راحت میتونیم از این سرویس استفاده کنیم.
منبع : https://appmetrica.yandex.com/docs/quick-start/concepts/quick-start.html
سورس کد نمونه : https://gist.github.com/alirezanazari/cecec7f8d4231d04ad9a121137e98b16
مطلبی دیگر از این انتشارات
"اتصال به اینترنت برقرار نیست! تلاش مجدد" یک استراتژی کلی
مطلبی دیگر از این انتشارات
تجربه ی 1- ساله یک برنامه نویس اندروید (نوشته ایی پویا)
مطلبی دیگر از این انتشارات
حل مشکل SYNC گریدل (آپدیت مداوم)