Apa itu AndroidX?


Sebelum Anda memulai kelas Belajar Android Jetpack Pro, Anda perlu mengetahui terlebih dahulu tentang AndroidX. Karena latihan yang ada di kelas ini menggunakan AndroidX

Jadi apa itu AndroidX? Apakah ada perbedaan ketika kita memakai dan tidak? Lantas mengapa banyak library yang saat ini tidak support untuk versi biasa atau harus migrasi ke AndroidX?
AndroidX adalah proyek open source yang digunakan tim Android untuk mengembangkan, menguji, dan merilis library di dalam Jetpack. AndroidX adalah hasil peningkatan dari library Android Support yang memberikan dukungan kompabilitas kepada seluruh perangkat Android. Ia telah menggantikan Android Support dengan menyediakan beberapa fitur dan library baru. Fitur-fitur baru yang ada di AndroidX adalah:
  • Semua penamaan package di dalam AndroidX akan konsisten dengan awalan string androidx.*.
  • Tidak seperti library Android Support, package AndroidX dikelola dan diperbarui secara terpisah. Package AndroidX dimulai dengan menggunakan versi 1.0.0. Anda dapat memperbarui library AndroidX di project Anda secara independen.
  • Versi 28.0.0 adalah versi terakhir dari Android Support Library. Tidak akan ada lagi rilis lagi di dalam android.support dan semua update terbaru akan menggunakan AndroidX.

Penggunaan AndroidX

Pastikan aplikasi Android Studio yang Anda gunakan adalah versi 3.2 ke atas. Anda dapat dengan cepat migrasi dari proyek Anda sebelumnya menjadi AndroidX dengan cara memilih di menu bar Refactor-Migrate to AndroidX. Jika Android Studio Anda tidak merespon perintah tersebut, Anda bisa memasukan 2 baris berikut ke dalam gradle.properties:

  1. android.useAndroidX=true

  2. android.enableJetifier=true



Jika Anda akan melakukan migrasi pada proyek Anda yang sudah tidak menggunakan library ketiga namun dependensinya perlu dikonversikan, Anda bisa mengatur flag-nya menjadi:

  1. android.useAndroidX=true

  2. android.enableJetifier=false



Catatan:
Untuk AndroidStudio versi 3.4.1 ada kecenderungan penggunaan AndroidX menjadi default. Perlu Anda ketahui juga, ketika Anda sudah menggunakan AndroidX maka Anda tidak bisa menambahkan library versi lama atau sebelum AndroidX.

Anda bisa melihat bagaimana perubahan library Android Support menjadi AndroidX. 
Old build artifactAndroidX build artifact
android.arch.core:commonandroidx.arch.core:core-common:2.0.0-rc01
android.arch.core:coreandroidx.arch.core:core:2.0.0-rc01
android.arch.core:core-testingandroidx.arch.core:core-testing:2.0.0-rc01
android.arch.core:runtimeandroidx.arch.core:core-runtime:2.0.0-rc01
android.arch.lifecycle:commonandroidx.lifecycle:lifecycle-common:2.0.0-rc01
android.arch.lifecycle:common-java8androidx.lifecycle:lifecycle-common-java8:2.0.0-rc01
android.arch.lifecycle:compilerandroidx.lifecycle:lifecycle-compiler:2.0.0-rc01
android.arch.lifecycle:extensionsandroidx.lifecycle:lifecycle-extensions:2.0.0-rc01
android.arch.lifecycle:livedataandroidx.lifecycle:lifecycle-livedata:2.0.0-rc01
android.arch.lifecycle:livedata-coreandroidx.lifecycle:lifecycle-livedata-core:2.0.0-rc01
android.arch.lifecycle:reactivestreamsandroidx.lifecycle:lifecycle-reactivestreams:2.0.0-rc01
android.arch.lifecycle:runtimeandroidx.lifecycle:lifecycle-runtime:2.0.0-rc01
android.arch.lifecycle:viewmodelandroidx.lifecycle:lifecycle-viewmodel:2.0.0-rc01
android.arch.paging:commonandroidx.paging:paging-common:2.0.0-rc01
android.arch.paging:runtimeandroidx.paging:paging-runtime:2.0.0-rc01
android.arch.paging:rxjava2androidx.paging:paging-rxjava2:2.0.0-rc01
android.arch.persistence.room:commonandroidx.room:room-common:2.0.0-rc01
android.arch.persistence.room:compilerandroidx.room:room-compiler:2.0.0-rc01
android.arch.persistence.room:guavaandroidx.room:room-guava:2.0.0-rc01
android.arch.persistence.room:migrationandroidx.room:room-migration:2.0.0-rc01
android.arch.persistence.room:runtimeandroidx.room:room-runtime:2.0.0-rc01
android.arch.persistence.room:rxjava2androidx.room:room-rxjava2:2.0.0-rc01
android.arch.persistence.room:testingandroidx.room:room-testing:2.0.0-rc01
android.arch.persistence:dbandroidx.sqlite:sqlite:2.0.0-rc01
android.arch.persistence:db-frameworkandroidx.sqlite:sqlite-framework:2.0.0-rc01
com.android.support.constraint:constraint-layoutandroidx.constraintlayout:constraintlayout:1.1.2
com.android.support.constraint:constraint-layout-solverandroidx.constraintlayout:constraintlayout-solver:1.1.2
com.android.support.test.espresso.idling:idling-concurrentandroidx.test.espresso.idling:idling-concurrent:3.1.0
com.android.support.test.espresso.idling:idling-netandroidx.test.espresso.idling:idling-net:3.1.0
com.android.support.test.espresso:espresso-accessibilityandroidx.test.espresso:espresso-accessibility:3.1.0
com.android.support.test.espresso:espresso-contribandroidx.test.espresso:espresso-contrib:3.1.0
com.android.support.test.espresso:espresso-coreandroidx.test.espresso:espresso-core:3.1.0
com.android.support.test.espresso:espresso-idling-resourceandroidx.test.espresso:espresso-idling-resource:3.1.0
com.android.support.test.espresso:espresso-intentsandroidx.test.espresso:espresso-intents:3.1.0
com.android.support.test.espresso:espresso-remoteandroidx.test.espresso:espresso-remote:3.1.0
com.android.support.test.espresso:espresso-webandroidx.test.espresso:espresso-web:3.1.0
com.android.support.test.janktesthelper:janktesthelperandroidx.test.jank:janktesthelper:1.0.1
com.android.support.test.services:test-servicesandroidx.test:test-services:1.1.0
com.android.support.test.uiautomator:uiautomatorandroidx.test.uiautomator:uiautomator:2.2.0
com.android.support.test:monitorandroidx.test:monitor:1.1.0
com.android.support.test:orchestratorandroidx.test:orchestrator:1.1.0
com.android.support.test:rulesandroidx.test:rules:1.1.0
com.android.support.test:runnerandroidx.test:runner:1.1.0
com.android.support:animated-vector-drawableandroidx.vectordrawable:vectordrawable-animated:1.0.0
com.android.support:appcompat-v7androidx.appcompat:appcompat:1.0.0
com.android.support:asynclayoutinflaterandroidx.asynclayoutinflater:asynclayoutinflater:1.0.0
com.android.support:carandroidx.car:car:1.0.0-alpha5
com.android.support:cardview-v7androidx.cardview:cardview:1.0.0
com.android.support:collectionsandroidx.collection:collection:1.0.0
com.android.support:coordinatorlayoutandroidx.coordinatorlayout:coordinatorlayout:1.0.0
com.android.support:cursoradapterandroidx.cursoradapter:cursoradapter:1.0.0
com.android.support:customtabsandroidx.browser:browser:1.0.0
com.android.support:customviewandroidx.customview:customview:1.0.0
com.android.support:designcom.google.android.material:material:1.0.0-rc01
com.android.support:documentfileandroidx.documentfile:documentfile:1.0.0
com.android.support:drawerlayoutandroidx.drawerlayout:drawerlayout:1.0.0
com.android.support:exifinterfaceandroidx.exifinterface:exifinterface:1.0.0
com.android.support:gridlayout-v7androidx.gridlayout:gridlayout:1.0.0
com.android.support:heifwriterandroidx.heifwriter:heifwriter:1.0.0
com.android.support:interpolatorandroidx.interpolator:interpolator:1.0.0
com.android.support:leanback-v17androidx.leanback:leanback:1.0.0
com.android.support:loaderandroidx.loader:loader:1.0.0
com.android.support:localbroadcastmanagerandroidx.localbroadcastmanager:localbroadcastmanager:1.0.0
com.android.support:media2androidx.media2:media2:1.0.0-alpha03
com.android.support:media2-exoplayerandroidx.media2:media2-exoplayer:1.0.0-alpha01
com.android.support:mediarouter-v7androidx.mediarouter:mediarouter:1.0.0
com.android.support:multidexandroidx.multidex:multidex:2.0.0
com.android.support:multidex-instrumentationandroidx.multidex:multidex-instrumentation:2.0.0
com.android.support:palette-v7androidx.palette:palette:1.0.0
com.android.support:percentandroidx.percentlayout:percentlayout:1.0.0
com.android.support:preference-leanback-v17androidx.leanback:leanback-preference:1.0.0
com.android.support:preference-v14androidx.legacy:legacy-preference-v14:1.0.0
com.android.support:preference-v7androidx.preference:preference:1.0.0
com.android.support:printandroidx.print:print:1.0.0
com.android.support:recommendationandroidx.recommendation:recommendation:1.0.0
com.android.support:recyclerview-selectionandroidx.recyclerview:recyclerview-selection:1.0.0
com.android.support:recyclerview-v7androidx.recyclerview:recyclerview:1.0.0
com.android.support:slices-buildersandroidx.slice:slice-builders:1.0.0
com.android.support:slices-coreandroidx.slice:slice-core:1.0.0
com.android.support:slices-viewandroidx.slice:slice-view:1.0.0
com.android.support:slidingpanelayoutandroidx.slidingpanelayout:slidingpanelayout:1.0.0
com.android.support:support-annotationsandroidx.annotation:annotation:1.0.0
com.android.support:support-compatandroidx.core:core:1.0.0
com.android.support:support-contentandroidx.contentpager:contentpager:1.0.0
com.android.support:support-core-uiandroidx.legacy:legacy-support-core-ui:1.0.0
com.android.support:support-core-utilsandroidx.legacy:legacy-support-core-utils:1.0.0
com.android.support:support-dynamic-animationandroidx.dynamicanimation:dynamicanimation:1.0.0
com.android.support:support-emojiandroidx.emoji:emoji:1.0.0
com.android.support:support-emoji-appcompatandroidx.emoji:emoji-appcompat:1.0.0
com.android.support:support-emoji-bundledandroidx.emoji:emoji-bundled:1.0.0
com.android.support:support-fragmentandroidx.fragment:fragment:1.0.0
com.android.support:support-media-compatandroidx.media:media:1.0.0
com.android.support:support-tv-providerandroidx.tvprovider:tvprovider:1.0.0
com.android.support:support-v13androidx.legacy:legacy-support-v13:1.0.0
com.android.support:support-v4androidx.legacy:legacy-support-v4:1.0.0
com.android.support:support-vector-drawableandroidx.vectordrawable:vectordrawable:1.0.0
com.android.support:swiperefreshlayoutandroidx.swiperefreshlayout:swiperefreshlayout:1.0.0
com.android.support:textclassifierandroidx.textclassifier:textclassifier:1.0.0
com.android.support:transitionandroidx.transition:transition:1.0.0
com.android.support:versionedparcelableandroidx.versionedparcelable:versionedparcelable:1.0.0
com.android.support:viewpagerandroidx.viewpager:viewpager:1.0.0
com.android.support:wearandroidx.wear:wear:1.0.0
com.android.support:webkitandroidx.webkit:webkit:1.0.0
Library AndroidX akan selalu mengalami update. Jika kode yang Anda masukkan di atas berwarna kuning, dan diminta untuk migrasi, maka migrasilah ke versi yang paling baru. Contohnya seperti ini:
20190809171954ace1b5e98411e4d38ff3de806b41d051

Anda bisa melihat detail AndroidX di:

Anda bisa melihat detail migrasi ke AndroidX menjadi:
https://developer.android.com/jetpack/androidx/migrate

*

Post a Comment (0)
Previous Post Next Post