Android Jetpack merupakan sebuah inovasi dari Google yang membuat para developer Android terbantu dan cepat dalam mengembangkan sebuah Aplikasi yang berkuliatas dan tangguh dengan sekumpulan libray, tools dan panduan didalamnya.
Android jetpack dapat mengelola berbagai aktifitas seperti Background Task, Navigation dan LifeCycle dari Android itu sendiri. Androi Jetpack juga didesign cocok berjalan di Kotlin yang akan membuat hemat code dengan Android KTX-nya. Banyak library dan tools panduan yang sudah disediakan Android jetpack untuk mempermudah para developer dalam mengembangkan sebuah Aplikasi Android (https://developer.android.com/jetpack/ )
Saat ini tutorial akan fokus bahas Jetpack untuk developer pemula yang mencoba memasuki Area baru pengembangan Aplikasi Android dengan Kotlin. Target tutorial ini Anda dapat ciptakan Aplikasi Android Jetpack Simple, berkenalan dengan LiveData, Observer, lifeCycle Android dan Navigation.
SIlahkan download Android Canary 3.2 atau lebih tinggi dapat Anda unduh di https://developer.android.com/studio/preview dan pastikan sudah melakukan instalasi yang lengkap.
Baiklah, ketika komponen jetpack sudah berhasil menyatu dengan Aplikasi Startetjetpack. Bagaimana sih sebenarnya View Model & Live Data dari Android jetpack?. Jadi kalau arsitektur sebelumnya bahwa Fragment & Actvitiy bertugas untuk menyediakan & mengelola data untuk UI baik dari Database maupun webservice, sekarang tugas tersebut sudah ambil ahli oleh View Model & LiveData.
ViewModel di design berperan sebagai penyimpan data & mengelola Data UI sesuai dengan lifecycle Android, secara garis besar class ini bertugas untuk menyiapkan Data untuk UI dengan bantuan Observer. Misalkan Anda ingin menampilkan koleksi berita dari API atau dari database Anda pada Aplikasi, maka disinilah ViewModel berperan yang mungkin sebelumnya Anda assign pekerjaan ini pada Activity atau Fragment.
Sedangkan LiveData adalah kelas yang beperan untuk memberikan/update data kapan untuk di lakukan (observerable data) Observer (Pengamat) di Activity atau Fragment.
LiveData dapat melakukan perubahan value (writable) sedangkan MutableLiveData hanya dapat baca saja (ReadOnly)
Teks di Fragment akan berganti menjadi Hello World! Sesuai dengan apa yang telah Anda tuliskan pada ViewModel
Eitss, Import dulu package ini mempermudah kita tidak memperkenalkan fab_change
import kotlinx.android.synthetic.main. main_fragment.*
berlaku hanya untuk file kotlin
fab_change.setOnClickListener{ viewModel.data.value = "Ready to start" }
Karena variable data pada kelas MainViewModel adalah LiveData yang hanya ReadOnly sehingga tidak diijinkan untuk dirubah, solusi agar dapat dirubah adalah dengan definsikan variable data tersebut ke MutableLiveData dan pastinya tidak aka nada Error Kan?
Setelah bermain dengan ViewModel dan Live Data, sekarang mari kita lihat salah satu komponen yang ada dalam Android Jetpack yaitu Navigation. Kebetulan saat kita create project tadi, kita sudah install library untuk ini. Tools ini akan mempermudah Anda untuk menyimpelkan bagaimana implementasi Navigasi antara masing-masing destinasi pada Aplikasi Anda.
Sekarang peranan Activity pada Android jetpack merupakan entry point untuk masuk ke Aplikasi yang handle global navigation seperti Bottom Navigation, Navigation Drawer dll.
Berikut langkah-langkah untuk implementasi navigation dari Android Jetpack ini.
Launcher_fragment adalah sebagai start destination pada Aplikasi.
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main_activity) } }
Yang sebelumnya dibubuhi dengan fragment transaction dihapus saja karena fragment navigation sudah di handle oleh Navigation lib.
Dengan mendefinisikan startDestination pada Nav_graph, fragment pada MainActiity kita akan otomatis jalanin MainFragment.
/*Action when txt_message is click*/message.setOnClickListener{ view?.let { Navigation.findNavController(it).navigate(R.id.about) } }
Selamat Anda, baru saja memasuki cara baru dalam pengembangkan Aplikasi dengan Android Jetpack.
Full Project dapat Anda clone dari Github
Hi there, ChatGPT is very familiar and become the hottest technology generation now a days.…
When it comes to writing code, there are a lot of factors to consider. You…
ES6, also known as ECMAScript 2015, is a major update to the JavaScript language that…
In today's fast-paced business environment, the ability to quickly respond to changing market conditions and…
Sangat umum dijumpai bahwa developer tidak menggunakan arsitektur formal, tanpa arsitektur yang jelas dan terdefinisi…
Keunggulan development team adalah yang selalu update terhadap perkembangan teknologi, trend pengembangan terbaru dan pada…