āĻā§āĻāĻĒā§āϝāĻžāĻ āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāĻā§āϞāĻŋāϰ āĻāĻāĻāĻŋ āϏāĻāĻā§āϰāĻšāĻā§ āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰ⧠āϝāĻž āϏāϰā§āĻŦā§āϤā§āϤāĻŽ āĻ āύā§āĻļā§āϞāύāĻā§āϞāĻŋāĻā§ āĻ āύā§āϤāϰā§āĻā§āĻā§āϤ āĻāϰ⧠āĻāĻŦāĻ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻ ā§āϝāĻžāĻĒāĻā§āϞāĻŋāϤ⧠āĻĒāĻŋāĻāύā§āϰ āϏāĻžāĻŽāĻā§āĻāϏā§āϝ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤
āĻ ā§āϝāĻžāĻĒ āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰā§āϰ āĻā§āĻāĻĒā§āϝāĻžāĻ āĻāĻžāĻāĻĄāĻāĻŋ āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻ ā§āϝāĻžāĻĒ āϤā§āϰāĻŋ āĻāϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻŦāĻŋāĻŦā§āĻāύāĻž āĻāϰāĻžāϰ āĻāύā§āϝ āϏā§āϰāĻž āĻ āύā§āĻļā§āϞāύ āĻāĻŦāĻ āĻĒā§āϰāϏā§āϤāĻžāĻŦāĻŋāϤ āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰā§āϰ āĻāĻāĻāĻŋ āĻāĻāĻžāϰāĻāĻŋāĻ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤
āύāĻŋāĻŽā§āύāϞāĻŋāĻāĻŋāϤ āĻŦāĻŋāĻāĻžāĻāĻā§āϞāĻŋ āĻāĻāĻžāϰ āĻāϰ⧠āϝ⧠āĻāĻĒāύāĻŋ āĻā§āĻāĻžāĻŦā§ āĻā§āĻāĻĒā§āϝāĻžāĻ āĻāĻĒāĻžāĻĻāĻžāύāĻā§āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻļā§āϰ⧠āĻāϰāϤ⧠āĻĒāĻžāϰā§āύāĨ¤
āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§ āĻāĻāĻāĻŋ Jetpack āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āύ
āϏāĻŽāϏā§āϤ Jetpack āĻāĻĒāĻžāĻĻāĻžāύ Google Maven āϏāĻāĻā§āϰāĻšāϏā§āĻĨāϞ⧠āĻāĻĒāϞāĻŦā§āϧāĨ¤
settings.gradle
āĻĢāĻžāĻāϞāĻāĻŋ āĻā§āϞā§āύ google()
āϰāĻŋāĻĒā§āĻāĻŋāĻāϰāĻŋ āϝā§āĻ āĻāϰā§āύ dependencyResolutionManagement { repositories {...}}
āĻŦā§āϞāĻā§ āύā§āĻā§ āĻĻā§āĻāĻžāύ⧠āĻšāϝāĻŧā§āĻā§:
āĻā§āϰā§āĻāĻŋ
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() jcenter() } }
āĻā§āĻāϞāĻŋāύ
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() jcenter() } }
āϤāĻžāϰāĻĒāϰ⧠āĻāĻĒāύāĻŋ Jetpack āĻāĻĒāĻžāĻĻāĻžāύ āϝā§āĻ āĻāϰāϤ⧠āĻĒāĻžāϰā§āύ, āϝā§āĻŽāύ āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰ āĻāĻĒāĻžāĻĻāĻžāύ āϝā§āĻŽāύ LiveData āĻāĻŦāĻ ViewModel , āĻāĻĒāύāĻžāϰ āĻŽāĻĄāĻŋāĻāϞā§āϰ build.gradle
āĻĢāĻžāĻāϞā§, āĻāĻāĻžāύ⧠āĻĻā§āĻāĻžāύ⧠āĻšāϝāĻŧā§āĻā§:
āĻā§āϰā§āĻāĻŋ
dependencies { def lifecycle_version = "2.2.0" implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" ... }
āĻā§āĻāϞāĻŋāύ
dependencies { val lifecycle_version = "2.2.0" implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version") implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version") ... }
āĻ
āύā§āĻ āĻā§āĻāĻĒā§āϝāĻžāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ lifecycle-livedata-ktx
āĻāĻŦāĻ lifecycle-viewmodel-ktx
āϏāĻš āĻāĻĒāϰ⧠āĻĻā§āĻāĻžāύ⧠Android KTX āĻāĻā§āϏāĻā§āύāĻļāύāĻā§āϞāĻŋ āĻĒā§āϰāĻĻāĻžāύ āĻāϰā§āĨ¤ KTX āĻāĻā§āϏāĻā§āύāĻļāύāĻā§āϞāĻŋ āĻāĻžāĻāĻž-āĻāĻŋāϤā§āϤāĻŋāĻ API-āĻāϰ āĻāĻĒāϰ āϤā§āϰāĻŋ, āĻā§āĻāϞāĻŋāύ-āύāĻŋāϰā§āĻĻāĻŋāώā§āĻ āĻāĻžāώāĻžāϰ āĻŦā§āĻļāĻŋāώā§āĻā§āϝāĻā§āϞāĻŋāϰ āϏā§āĻŦāĻŋāϧāĻž āĻā§āϰāĻšāĻŖ āĻāϰā§āĨ¤
āύāϤā§āύ āĻā§āĻāĻĒā§āϝāĻžāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āϰāĻŋāϞāĻŋāĻ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāĻžāύāϤā§, āϰāĻŋāϞāĻŋāĻ āĻĒā§āώā§āĻ āĻžāĻāĻŋ āĻĻā§āĻā§āύāĨ¤
āĻā§āĻāϞāĻŋāύ-āĻāĻŋāϤā§āϤāĻŋāĻ āĻāĻŦāĻ āĻāĻžāĻāĻž-āĻāĻŋāϤā§āϤāĻŋāĻ API āϰā§āĻĢāĻžāϰā§āύā§āϏ āĻĒā§āώā§āĻ āĻžāĻā§āϞāĻŋ āϏāĻŽāϏā§āϤ āĻā§āĻāĻĒā§āϝāĻžāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϰ āĻāύā§āϝ āĻāĻĒāϞāĻŦā§āϧāĨ¤
āĻā§āĻāĻĒā§āϝāĻžāĻ āύāĻŋāϰā§āĻāϰāϤāĻž āϝāĻžāĻāĻžāĻ āĻāϰā§āύ (āĻāĻā§āĻāĻŋāĻ)
2023 āϏāĻžāϞā§āϰ āĻā§āύ āĻĒāϰā§āϝāύā§āϤ, āĻā§āĻāĻĒā§āϝāĻžāĻ āĻĻāϞ āĻā§āĻāĻĒā§āϝāĻžāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāĻā§āϞāĻŋāϤ⧠āϏā§āĻŦāĻžāĻā§āώāϰ āĻāϰā§āĨ¤ āĻāĻ āϏā§āĻŦāĻžāĻā§āώāϰāĻā§āϞāĻŋ āĻĄā§āĻā§āϞāĻĒāĻžāϰāĻĻā§āϰ āϝāĻžāĻāĻžāĻ āĻāϰāϤ⧠āĻĻā§āϝāĻŧ āϝ⧠āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϰ āύāĻŋāĻĻāϰā§āĻļāύāĻā§āϞāĻŋ Google āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāϰā§āĻŽāĻŋāϤ āĻāĻŦāĻ āϏā§āĻŦāĻžāĻā§āώāϰāĻŋāϤāĨ¤ āĻāĻāĻāĻŋ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻāĻāĻāĻŋ āĻāĻĒāĻĄā§āĻ āĻĒā§āϰāĻāĻžāĻļ āĻāϰāĻžāϰ āĻĒāϰ⧠āϏā§āĻŦāĻžāĻā§āώāϰ āϝāĻžāĻāĻžāĻāĻāϰāĻŖā§āϰ āĻāύā§āϝ āϝā§āĻā§āϝ⧎
āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻĒā§āϰāĻāϞā§āĻĒā§ āϏā§āĻŦāĻžāĻā§āώāϰ āϝāĻžāĻāĻžāĻāĻāϰāĻŖ āϏāĻā§āώāĻŽ āĻĨāĻžāĻāϞā§, āĻā§āϰā§āĻĄāϞ āĻĒā§āϰāĻāϞā§āĻĒā§ āĻā§āĻāĻĒā§āϝāĻžāĻ āύāĻŋāϰā§āĻāϰāϤāĻž āϝāĻžāĻāĻžāĻ āĻāϰāϤ⧠āĻāĻ āĻĒāĻĻāĻā§āώā§āĻĒāĻā§āϞāĻŋ āĻ āύā§āϏāϰāĻŖ āĻāϰā§āύ:
$PROJECT_ROOT/gradle/verification-metadata.xml
<trusted-keys>
āĻŦāĻŋāĻāĻžāĻā§ Google-āĻāϰ āĻŦāĻŋāĻļā§āĻŦāϏā§āϤ āĻā§āĻā§āϞāĻŋ āϝā§āĻ āĻāϰā§āύ :<trusted-keys> <trusted-key id="8461efa0e74abae010de66994eb27db2a3b88b8b"> ... </trusted-key> <trusted-key id="a5f483cd733a4ebaea378b2ae88979fb9b30acf2"> ... </trusted-key> <trusted-key id="0f06ff86beeaf4e71866ee5232ee5355a6bc6e42"> ... </trusted-key> <trusted-key id="0e225917414670f4442c250dfd533c07c264648f"> ... </trusted-key> ... </trusted-keys>
āĻĒā§āϰāϤāĻŋāĻāĻŋ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϰ āĻāύā§āϝ āĻāĻāĻāĻŋ
<trusting group>
āĻāύā§āĻā§āϰāĻŋ āϝā§āĻ āĻāϰā§āύ āϝāĻž āĻĒā§āϰāĻāϞā§āĻĒāĻāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻā§āĨ¤androidx.fragment
āĻāĻŦāĻandroidx.emoji2
āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϰ āĻāύā§āϝ āĻāĻāĻžāύ⧠āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĻā§āĻāϝāĻŧāĻž āĻšāϞ:<trusted-keys> <trusted-key id="8461efa0e74abae010de66994eb27db2a3b88b8b"> <trusting group="androidx.fragment"/> <trusting group="androidx.emoji2"/> </trusted-key> <trusted-key id="a5f483cd733a4ebaea378b2ae88979fb9b30acf2"> <trusting group="androidx.fragment"/> <trusting group="androidx.emoji2"/> </trusted-key> ... </trusted-keys>
āύāĻŋāϰā§āĻāϰāϤāĻž āϝāĻžāĻāĻžāĻāĻāϰāĻŖā§āϰ āϏāĻŽāϏā§āϝāĻžāĻā§āϞāĻŋāϰ āĻāύā§āϝ, āύāĻŋāϰā§āĻāϰāϤāĻž āϝāĻžāĻāĻžāĻāĻāϰāĻŖā§āϰ āϏāĻŽāϏā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύā§āϰ āĻŦāĻŋāώāϝāĻŧā§ Gradle-āĻāϰ āĻāĻžāĻāĻĄ āĻĻā§āĻā§āύāĨ¤
āĻ āĻŦāĻļā§āώā§, āĻāĻŽāĻžāĻĻā§āϰ āĻŦāĻŋāĻļā§āĻŦāϏā§āϤ āĻā§ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāϰāĻŖ āĻāĻŦā§āύā§āĻā§āϰ āĻā§āϏāĻžāϰā§āĻāĻžāϰ āϏāĻžāĻāĻā§ āĻĻā§āĻāĻž āϝā§āϤ⧠āĻĒāĻžāϰā§āĨ¤
āĻā§āĻāĻĒā§āϝāĻžāĻā§āϰ āϏā§āĻŦāĻŋāϧāĻž āύāĻŋāύ
āĻā§āĻāĻĒā§āϝāĻžāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāĻā§āϞāĻŋ āĻāĻāĻž āĻŦāĻž āĻāĻāϤā§āϰ⧠āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰāĻž āϝā§āϤ⧠āĻĒāĻžāϰ⧠āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāĻžāύāĻā§āϞāĻŋāϤ⧠āĻŦāĻŋāĻāĻŋāύā§āύ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϰ āĻāύā§āϝāĨ¤
- āĻāĻĒāύāĻžāϰ āĻŦā§āϝāĻžāĻāĻā§āϰāĻžāĻāύā§āĻĄ āϏāĻŽāϝāĻŧāϏā§āĻā§ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϰ āĻāύā§āϝ WorkManager .
- āϤāĻĨā§āϝ āϏāĻā§āĻāϝāĻŧ āĻ āϧā§āϝāĻŦāϏāĻžāϝāĻŧ āĻāύā§āϝ āϰā§āĻŽ .
- āĻāĻĒāύāĻžāϰ āĻ ā§āϝāĻžāĻĒā§āϞāĻŋāĻā§āĻļāύ āύā§āĻāĻŋāĻā§āĻļāύ āĻĒā§āϰāĻŦāĻžāĻš āĻĒāϰāĻŋāĻāĻžāϞāύāĻž āĻāϰāϤ⧠āύā§āĻāĻŋāĻā§āĻļāύ āĨ¤
- āĻāĻĒāύāĻžāϰ āĻā§āϝāĻžāĻŽā§āϰāĻž āĻ ā§āϝāĻžāĻĒā§āϰ āĻĒā§āϰāϝāĻŧā§āĻāύā§āϰ āĻāύā§āϝ CameraX āĨ¤
- āϏāĻŽāϏā§āϤ āĻā§āĻāĻĒā§āϝāĻžāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāϰ āĻāĻāĻžāϰāĻāĻŋāĻ āĻĻā§āĻā§āύāĨ¤
āĻā§āĻāĻĒā§āϝāĻžāĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋāĻā§āϞāĻŋ androidx
āύāĻžāĻŽāϏā§āĻĨāĻžāύ⧠āĻĒā§āϰāĻāĻžāĻļāĻŋāϤ āĻšāϝāĻŧāĨ¤ āĻāĻĒāύāĻžāϰ āĻĒā§āϰāĻā§āĻā§āĻ āϝāĻĻāĻŋ āĻŦāϰā§āϤāĻŽāĻžāύ⧠Android āϏāĻžāĻĒā§āϰā§āĻ āϞāĻžāĻāĻŦā§āϰā§āϰāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§, āϤāĻžāĻšāϞ⧠āĻĒāĻĄāĻŧā§āύ āĻāĻŋāĻāĻžāĻŦā§ androidx āύāĻžāĻŽāϏā§āĻĨāĻžāύ⧠āϏā§āĻĨāĻžāύāĻžāύā§āϤāϰ āĻāϰāϤ⧠āĻšāϝāĻŧ āĨ¤
Jetpack āĻŦā§āϝāĻŦāĻšāĻžāϰ āϏāĻŽā§āĻĒāϰā§āĻā§ āĻāϰāĻ āĻāĻžāύāϤā§, āĻāĻ āĻĒā§āώā§āĻ āĻžāĻā§āϞāĻŋ āĻĻā§āĻā§āύ:
- āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻāϰā§āĻāĻŋāĻā§āĻāĻāĻžāϰ āĻāĻĒāĻžāĻĻāĻžāύ
- Jetpack āĻāĻĒāĻžāĻĻāĻžāύā§āϰ āϏāĻŽā§āĻĒā§āϰā§āĻŖ āϤāĻžāϞāĻŋāĻāĻž
āĻ āϤāĻŋāϰāĻŋāĻā§āϤ āϏāĻŽā§āĻĒāĻĻ
āĻ āύāϞāĻžāĻāύ āĻĒā§āϰāĻļāĻŋāĻā§āώāĻŖ
- āĻā§āĻāϞāĻŋāύā§āϰ āϏāĻžāĻĨā§ āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āĻ ā§āϝāĻžāĻĒāϏ āϤā§āϰāĻŋ āĻāϰāĻž (āĻāĻĄāĻžāϏāĻŋāĻāĻŋ āĻā§āϰā§āϏ)
āύāĻŽā§āύāĻž āĻā§āĻĄ
- āϏāĻžāύāĻĢā§āϞāĻžāĻāϝāĻŧāĻžāϰ āĻĄā§āĻŽā§ āĻ ā§āϝāĻžāĻĒāĻāĻŋ Android āĻĄā§āĻā§āϞāĻĒāĻŽā§āύā§āĻā§āϰ āϏāϰā§āĻŦā§āϤā§āϤāĻŽ āĻ āύā§āĻļā§āϞāύāĻā§āϞāĻŋ āĻĒā§āϰāĻĻāϰā§āĻļāύ āĻāϰāϤ⧠āĻŦāĻŋāĻāĻŋāύā§āύ āĻā§āĻāĻĒā§āϝāĻžāĻ āĻāĻĒāĻžāĻĻāĻžāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻāϰā§āĨ¤
āĻā§āĻĄāϞā§āϝāĻžāĻŦ
- āĻ ā§āϝāĻžāύā§āĻĄā§āϰāϝāĻŧā§āĻĄ āϞāĻžāĻāĻĢāϏāĻžāĻāĻā§āϞ
- āĻāĻāĻāĻŋ āĻāĻŋāĻ āϏāĻš āϰā§āĻŽ