Tashqi kutubxonalar, repozitoriylar, bog'liqlik turlari va libs.versions.toml
10-sinfAdvanced Android1-hafta · 3-darsKutubxonalarning ichki anatomiyasi, Google Maven va Maven Central repozitoriylari
Bog'liqlik turlari, modulli inkapsulyatsiya va yig'ish tezligini optimallashtirish
Sanoat standarti bo'lgan libs.versions.toml fayli va kutubxona to'plamlari (bundles)
Tashqi kutubxonalar, Group ID, Artifact ID va global omborlar
Har bir kutubxona uchlikdan iborat: Group ID (domen), Artifact ID (modul nomi) va Version (versiya soni).
Gradle kutubxonalarni google() (Android SDK, Jetpack) va mavenCentral() (ochiq kodli kutubxonalar) omborlaridan yuklaydi.
implementation, api, testImplementation va ularning farqi
Kutubxona faqat shu modul ichida ko'rinadi. Tashqi modullardan yashiriladi, kompilyatsiya vaqtini sezilarli darajada tejaydi.
Kutubxona ushbu modulga ulangan barcha boshqa modullarga ham ochiq bo'ladi. Yig'ish vaqtini oshirishi mumkin.
Faqat kod yozish paytida kerak, yakuniy APK hajmiga kirmaydi (masalan, annotatsiya protsessorlari).
Faqat kompyuterda ishlaydigan lokal Unit-testlar uchun (JUnit, Mockito). Telefonga yuklanmaydi.
Tosh davridan to zamonaviy Version Cataloggacha
Versiyalar to'g'ridan-to'g'ri build.gradleda yozilgan. 10 ta modul bo'lsa, har birini alohida qidirib o'zgartirish talab etilgan.
Loyiha darajasida o'zgaruvchi ochilgan. Biroq IDE da avtomatik to'ldirish (autocomplete) ishlamagan.
Kotlin DSL yordamida yozilgan, ammo har bir o'zgarishda butun loyiha qayta kompilyatsiya bo'lib, vaqtni olgan.
Google tomonidan qabul qilingan sanoat standarti: barcha versiyalar bitta libs.versions.toml faylida saqlanadi!
Markaziy boshqaruv, toml formati va kutubxonalar guruhlari (bundles)
Kutubxonalar va plaginlarning versiya raqamlari yagona joyda e'lon qilinadi.
Kutubxonalarning Group ID, Artifact ID va versiya bog'lanishi ko'rsatiladi.
O'zaro bog'liq bir nechta kutubxonalar (Retrofit + Gson) bitta to'plamga birlashtiriladi.
Android va Kotlin Gradle plaginlari ro'yxati saqlanadi.
Kutubxona versiyasini kiriting (masalan, coil = "2.6.0").
Guruh, modul nomi va versiya havolasini yozing (coil-compose = ...).
dependencies blokiga implementation libs.coil.compose deb qo'shing.
Sinxronizatsiya tugmasini bosing va kutubxona keshga yuklanishini kuting.
Versiyalar har bir modul faylida tarqoq yotadi.
IDE avtomatik to'ldirmaydi, xato yozish oson.
Kutubxonani yangilash uchun 10 ta faylni ochib chiqish kerak.
Barcha versiyalar bitta libs.versions.toml faylida.
To'liq autocomplete: xato yozishning iloji yo'q.
Versiyani 1 joyda o'zgartirish barcha modullarni yangilaydi.
gradle/libs.versions.toml fayliga Retrofit va Gson kutubxonalari koordinatalarini qo'shing.
Ikkala kutubxonani [bundles] da networking nomi ostida birlashtiring va build.gradleda 1 qatorda ulang.
implementation konfiguratsiyasi loyihani modulli va tezkor yig'ilishini ta'minlaydi.
Version Catalog barcha kutubxonalar va plaginlarni markazlashgan, xavfsiz va qulay boshqarish kalitidir.
Keyingi hafta: Tranzitiv bog'liqliklar va ProGuard/R8 yordamida kodni optimallashtirish