Debug vs Release, R8 optimallashtirish, BuildConfig va Free vs Paid arxitekturasi
10-sinfAdvanced Android1-hafta · 2-darsDasturchi rejimi va Google Play uchun optimallashtirilgan yakuniy mahsulot farqlari
Bitta kod bazasidan bir nechta mustaqil ilovalar (Free, Pro, Client, Driver) yaratish
Gradle orqali Kotlin kodiga o'zgaruvchilar uzatish va dinamik muhitlarni boshqarish
Yig'ish rejimlari, nosozliklarni qidirish va xavfsiz optimallashtirish
Kompilyatsiya maksimal tezlikda bo'ladi. Barcha loglar ochiq, kod o'zgartirilmaydi, disk raskadrovka qilish oson.
Google Play uchun tayyor mahsulot. Keraksiz kodlar o'chiriladi, fayl hajmi siqiladi va xavfsizlik uchun kod chalkashtiriladi.
Bitta kod bazasidan bir nechta turli ilovalarni chiqarish san'ati
Free va Paid versiyalar uchun 2 ta loyiha ochish xavfli. Flavors orqali 95% umumiy kod bir joyda saqlanadi.
applicationIdSuffix orqali bitta smartfonga bir vaqtning o'zida ham Free, ham Paid ilovani o'rnatish mumkin.
Har bir variant uchun o'ziga xos rasm, ilova nomi va maxsus funksiyalar to'plamini biriktirish mumkin.
Product Flavors va Build Types kesishmasi
$$\text{Build Variants} = \text{Flavors soni} \times \text{Build Types soni}$$
2 ta Flavor (Free, Paid) va 2 ta Type (Debug, Release) bo'lsa, jami 4 ta mustaqil variant hosil bo'ladi.
Android Studio'dagi Build Variants oynasi orqali dasturchi bitta bosish bilan ilovaning kerakli variantini yig'ishi va emulyatorda tekshirishi mumkin.
Gradle o'zgaruvchilarini Kotlin kodiga xavfsiz uzatish
Gradle konfiguratsiyasida turli variantlar uchun o'zgaruvchilar e'lon qilinadi:
buildConfigField "boolean", "IS_PAID", "true"
buildConfigField "String", "BASE_URL", "\"https://api.uz/\""
Ilova kodida ushbu o'zgaruvchilar statik tarzda ishlatiladi:
if (BuildConfig.IS_PAID) {
enableVipFeatures()
}
O'lchov guruhini e'lon qiling: flavorDimensions "tier".
free va pro bloklarini ochib, ularga tegishli applicationIdSuffix bering.
Oynaning yuqorisidagi "Sync Now" tugmasini bosing va Gradle loyihani yangilashini kuting.
"Build Variants" panelidan kerakli variantni tanlang va emulyatorda ishga tushiring.
Free va Pro uchun alohida ikkita Android loyihasi ochish.
Biror xato topilsa, ikkala loyihada ham qayta tuzatishga majbur bo'lish.
Server URL'larini kod ichida qo'lda o'zgartirib yurish.
Yagona kod bazasi (Single codebase).
Bir necha soniyada yangi variantni yig'ish imkoniyati.
buildConfigField orqali barcha muhitlarni avtomatlashtirish.
app/build.gradle faylida free va pro flavorlarini e'lon qiling. Ularga alohida applicationIdSuffix bering.
buildConfigField orqali IS_PAID bayrog'ini uzating. Kotlin kodida foydalanuvchi statusini Toast orqali chiqaring.
Debug tezkor testlash uchun, Release esa R8 orqali xavfsiz va siqilgan mahsulot yaratish uchun xizmat qiladi.
Product Flavors yordamida bitta loyihani o'nlab turli mijozlar va muhitlar uchun samarali boshqarish mumkin.
Keyingi dars: Dependency management va Version Catalog (libs.versions.toml)