Android Jetpack рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╢реБрд░реВ рдХрд░рдирд╛

Jetpack рдореЗрдВ Android рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдХрд▓реЗрдХреНрд╢рди рд╣реИ. рдЗрд╕ рдХрд▓реЗрдХреНрд╢рди рдореЗрдВ, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рдФрд░ рдЖрдкрдХреЗ Android рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкреБрд░рд╛рдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рджреЗрддрд╛ рд╣реИ.

рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП Jeetpack рдЧрд╛рдЗрдб рдореЗрдВ рд╕рдмрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЛрдВ рдФрд░ рд╕реБрдЭрд╛рдП рдЧрдП рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рдЦрд╛рд╕ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдВ. рдЕрдкрдирд╛ Android рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛.

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рд╕реЗрдХреНрд╢рди рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ Jetpack рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.

рдЕрдкрдиреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ Jetpack рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ

Jetpack рдХреЗ рд╕рднреА рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ Google Maven рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ.

settings.gradle рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓реЗрдВ рдФрд░ google() рд░рд┐рдкреЙрдЬрд╝рд┐рдЯрд░реА рдХреЛ рдЗрд╕рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ dependencyResolutionManagement { repositories {...}} рдмреНрд▓реЙрдХ рдХреЛ рдиреАрдЪреЗ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рдЧреНрд░реВрд╡реА

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        jcenter()
    }
}

Kotlin

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"
    ...
}

Kotlin

dependencies {
    val lifecycle_version = "2.2.0"

    implementation("androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version")
    implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version")
    ...
}

рдХрдИ Jetpack рд▓рд╛рдЗрдмреНрд░реЗрд░реА Android KTX рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддреА рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ lifecycle-livedata-ktx рдФрд░ lifecycle-viewmodel-ktx рдХреЗ рд╕рд╛рде рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ. KTX рдПрдХреНрд╕рдЯреЗрдВрд╢рди Java-рдЖрдзрд╛рд░рд┐рдд рдПрдкреАрдЖрдИ рдкрд░ рдмрдирд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ Kotlin рдХреА рдЦрд╛рд╕ рднрд╛рд╖рд╛ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХрд╛ рдлрд╝рд╛рдпрджрд╛ рдорд┐рд▓рддрд╛ рд╣реИ.

Jetpack рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдирдИ рд░рд┐рд▓реАрдЬрд╝ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рд░рд┐рд▓реАрдЬрд╝ рдкреЗрдЬ рджреЗрдЦреЗрдВ.

Kotlin рдХреА рдорджрдж рд╕реЗ рдФрд░ Java-рдЖрдзрд╛рд░рд┐рдд рдПрдкреАрдЖрдИ рдХреЗ рд░реЗрдлрд╝рд░рдВрд╕ рдкреЗрдЬ, рдЗрдирдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рд╕рднреА Jetpack рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ.

Jetpack рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░реЗрдВ (рдЬрд╝рд░реВрд░реА рдирд╣реАрдВ)

рдЬреВрди 2023 рд╕реЗ, Jetpack рдХреА рдЯреАрдо рдиреЗ Jetpack рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░ рджрд┐рдП рд╣реИрдВ. рдпреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╕реЗ рдбреЗрд╡рд▓рдкрд░ рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдХрд░ рдкрд╛рддреЗ рд╣реИрдВ рдХрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЖрд░реНрдЯрдлрд╝реИрдХреНрдЯ рдмрдирд╛рдП рдЧрдП рд╣реИрдВ рдФрд░ Google рдиреЗ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдпрд╛ рд╣реИ. рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдкреБрд╖реНрдЯрд┐ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдЙрд╕ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рдкрдмреНрд▓рд┐рд╢ рдХрд░рддрд╛ рд╣реИ.

рдЕрдЧрд░ рдЖрдкрдХреЗ Android рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдЪрд╛рд▓реВ рд╣реИ, рддреЛ рдпрд╣ рддрд░реАрдХрд╛ рдЕрдкрдирд╛рдПрдВ Gradle рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ Jetpack рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

  1. рдЗрд╕рдХреЗ <trusted-keys> рд╕реЗрдХреНрд╢рди рдореЗрдВ Google рдХреА рднрд░реЛрд╕реЗрдордВрдж рдХреБрдВрдЬрд┐рдпрд╛рдВ рдЬреЛрдбрд╝реЗрдВ $PROJECT_ROOT/gradle/verification-metadata.xml:

    <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>
    
  2. рд╣рд░ рдЙрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП <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 рдХреА рдЧрд╛рдЗрдб рджреЗрдЦреЗрдВ рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдХреА рдкреБрд╖реНрдЯрд┐ рд╕реЗ рдЬреБрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░рдирд╛.

рдЖрдЦрд╝рд┐рд░ рдореЗрдВ, рд╣рдорд╛рд░реА рднрд░реЛрд╕реЗрдордВрдж рдХреБрдВрдЬреА рдХреА рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдВ рджреЗрдЦреА рдЬрд╛ рд╕рдХрддреА рд╣реИ: Ubuntu рдХреА рдХреАрд╕рд░реНрд╡рд░ рд╕рд╛рдЗрдЯ.

Jetpack рдХрд╛ рдлрд╝рд╛рдпрджрд╛ рдкрд╛рдПрдВ

рдЖрдкрдХреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЬрд╝рд░реВрд░рддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, Jetpack рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рд┐рд░реНрдлрд╝ рдПрдХ рд╕рд╛рде рдпрд╛ рдЗрдирдХреЗ рд╕рд╛рде рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ.

  • WorkManager рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛.
  • рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдкрд░рд╕рд┐рд╕реНрдЯреЗрдВрд╕ рдХреЗ рд▓рд┐рдП рдЪреИрдЯ рд░реВрдо.
  • рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдлрд╝реНрд▓реЛ рдХреЛ рдореИрдиреЗрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрд╢рди.
  • рдЖрдкрдХреЗ рдХреИрдорд░рд╛ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рдЬрд╝рд░реВрд░рддреЛрдВ рдХреЗ рд▓рд┐рдП, CameraX.
  • рд╕рднреА Jetpack рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЦрд╛рд╕ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдЦреЗрдВ.

Jetpack рд▓рд╛рдЗрдмреНрд░реЗрд░реА androidx рдиреЗрдорд╕реНрдкреЗрд╕ рдореЗрдВ рдкрдмреНрд▓рд┐рд╢ рдХреА рдЧрдИ рд╣реИрдВ. рдЕрдЧрд░ рдЖрдкрдХрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╝рд┐рд▓рд╣рд╛рд▓, Android рд╕рдкреЛрд░реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддрд╛ рд╣реИ, рддреЛ Google Analytics 4 рдкрд░ рдорд╛рдЗрдЧреНрд░реЗрдЯ рдХрд░рдиреЗ androidx рдиреЗрдорд╕реНрдкреЗрд╕.

Jetpack рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╝реНрдпрд╛рджрд╛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдпреЗ рдкреЗрдЬ рджреЗрдЦреЗрдВ:

рдЕрдиреНрдп рд╕рдВрд╕рд╛рдзрди

рдСрдирд▓рд╛рдЗрди рдЯреНрд░реЗрдирд┐рдВрдЧ

рдирдореВрдирд╛ рдХреЛрдб

  • Sunflower рдХрд╛ рдбреЗрдореЛ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдпрд╣ Android рдХреЗ рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдХреЛ рд╕рдмрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ Jetpack рдХреЙрдореНрдкреЛрдиреЗрдВрдЯ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддрд╛ рд╣реИ рдХрд░рддреЗ рд╣реИрдВ.

рдХреЛрдб рд▓реИрдм

рд╡реАрдбрд┐рдпреЛ