Android Jetpack Navigation - Paging - WorkManager
Android Jetpack Navigation adalah komponen dalam Android Jetpack yang menyediakan cara yang mudah dan terstruktur untuk mengelola navigasi antara layar dalam aplikasi Android. Dengan menggunakan Android Jetpack Navigation, kalian dapat membuat navigasi antara fragmen, aktivitas, dan bahkan modul yang terpisah dalam aplikasi kalian dengan lebih mudah dan konsisten. Beberapa fitur yang disediakan oleh android jetpack navigation, ialah:
1. Navigation Graph
Navigation Graph ini adalah komponen inti dalam Android Jetpack Navigation. Navigation Graph adalah file XML yang mendefinisikan struktur navigasi dalam aplikasi kalian. Kalian dapat menentukan semua tujuan navigasi, seperti fragmen atau aktivitas, dan menghubungkannya dengan aksi navigasi. Ini membantu dalam mengorganisir navigasi secara terstruktur dan memudahkan perubahan dan pemeliharaan.
2. NavHost
NavHost ini adalah wadah tempat tujuan navigasi ditampilkan. Ini bisa berupa wadah fragmen, seperti FragmentContainerView, atau wadah aktivitas, seperti NavHostFragment. NavHost berfungsi sebagai area di mana konten tujuan ditampilkan saat navigasi terjadi.
3. NavController
NavController adalah object yang mengatur navigasi antara tujuan dalam aplikasi kalian. Kalian dapat menggunakan NavController untuk melakukan navigasi ke tujuan baru, mengambil argumen dari satu tujuan ke tujuan lainnya, dan mengontrol tumpukan navigasi. Ini juga memungkinkan navigasi mundur dan memfasilitasi komunikasi antara tujuan.
Dengan menggunakan Android Jetpack Navigation, kalian dapat membuat pengalaman navigasi yang konsisten dan mudah dikelola dalam aplikasi Android kalian. Ini membantu mengurangi boilerplate code, meningkatkan efisiensi pengembangan, dan memastikan pengalaman pengguna yang mulus dan intuitif saat berpindah antara layar dalam aplikasi.
(Referensi: https://developer.android.com/codelabs/android-navigation?hl=id#0)
Paging adalah komponen dari Android Jetpack yang menyediakan solusi untuk mengambil data dalam jumlah besar secara efisien dan mengatur tampilannya dalam bentuk halaman atau sebagian dari daftar yang terus dimuat saat pengguna menggulir.
Paging dirancang khusus untuk mengatasi masalah kinerja yang terkait dengan tampilan daftar yang berisi banyak item data. Dalam beberapa situasi, seperti daftar yang diambil dari sumber data jaringan atau basis data yang besar, mengambil dan memuat semua data sekaligus dapat menyebabkan kinerja aplikasi yang buruk atau bahkan mengakibatkan kehabisan memori. Dengan Paging, kalian dapat memuat dan menampilkan data secara bertahap seiring dengan pengguliran pengguna, sehingga menghemat sumber daya dan memberikan pengalaman yang lebih baik. Fitur - fitur yang utama dari paging adalah:
1. Pembatasan jumlah item yang dimuat dalam satu waktu
Kalian dapat mengontrol berapa banyak item data yang diambil dari sumber data pada setiap pemanggilan.
2. Data yang diambil secara bertahap saat pengguna menggulir
Paging memungkinkan kalian memuat lebih banyak data saat pengguna melanjutkan pengguliran ke bagian selanjutnya dari daftar.
3. Tampilan yang responsif
Dengan menggunakan Paging, kalian dapat memberikan pengalaman pengguna yang lancar dan responsif karena data dimuat secara bertahap, dan pengguna dapat melihat item yang ada saat ini sambil menunggu data selanjutnya dimuat.
4. Dukungan untuk pemuatan pratinjau dan pembaruan
Paging memungkinkan kalian memuat pratinjau data sambil menunggu data sebenarnya diambil, dan juga memberikan dukungan untuk memperbarui tampilan dengan data yang baru.
Dalam implementasi Paging, Anda akan menggunakan komponen-komponen seperti DataSource, PagedListAdapter, dan PagedList. DataSource digunakan untuk mengambil data dari sumber, PagedList digunakan untuk menyimpan dan mengatur data yang dimuat secara bertahap, dan PagedListAdapter digunakan untuk menampilkan data dalam RecyclerView dengan dukungan pemuatan bertahap.
(Referensi: https://developer.android.com/codelabs/android-paging-basics?hl=id#0)
WorkManager adalah komponen dari Android Jetpack yang menyediakan cara yang andal dan mudah untuk menjadwalkan dan menjalankan tugas atau pekerjaan (work) di latar belakang pada aplikasi Android. WorkManager dirancang untuk menangani tugas-tugas yang perlu dijalankan di latar belakang, seperti sinkronisasi data, pembaruan periodik, notifikasi, atau pemrosesan berkepanjangan.
WorkManager memiliki beberapa fitur yang membuatnya menjadi pilihan yang baik untuk menangani pekerjaan latar belakang:
1. Ketersediaan pada berbagai versi Android
WorkManager dapat berjalan pada perangkat dengan versi Android mulai dari Android API level 14 (Android 4.0 Ice Cream Sandwich) dan versi yang lebih baru. Ini berarti Anda dapat menggunakan WorkManager untuk membangun aplikasi yang mendukung perangkat lama dan baru dengan konsistensi.
2. Penjadwalan yang fleksibel
WorkManager memungkinkan Anda menjadwalkan tugas untuk dijalankan sekali, berulang dengan interval yang ditentukan, atau sesuai dengan kondisi tertentu, seperti saat perangkat sedang dalam kondisi pengisian daya atau terhubung ke jaringan Wi-Fi.
3. Penanganan konstrain perangkat
WorkManager secara otomatis menangani batasan-batasan perangkat, seperti perangkat mati atau restart, dan dapat menjalankan ulang pekerjaan yang tertunda setelah perangkat kembali aktif.
4. Dukungan untuk pekerjaan jaringan yang dapat dijadwalkan
WorkManager dapat berkoordinasi dengan tugas jaringan yang dijadwalkan, seperti pengunduhan file atau pengiriman data, untuk memastikan pekerjaan berjalan sesuai dengan kebutuhan aplikasi.
5. Pengelolaan siklus hidup yang ditingkatkan
WorkManager dirancang untuk menghormati siklus hidup aplikasi dan komponen utama, seperti Activity dan Service. Hal ini memastikan bahwa pekerjaan akan tetap berjalan meskipun aplikasi ditutup atau perangkat di-restart.
(Referensi: https://developer.android.com/codelabs/android-workmanager?hl=id#0)