Eksplorasi Android Jetpack Navigation — Part 1

Salah satu Library yang termasuk ke dalam Android Jetpack

Irfan Irawan Sukirman
Oct 17 · 3 min read

Assalaamu’alaykum guys.

Pada bagian pertama ini saya akan menjelaskan sedikit mengenai library Android yang bisa digunakan untuk mengatur alur perpindahan halaman di dalam aplikasi Android. Library yang dimaksud yaitu Navigation. Library ini pertama kali diperkenalkan pada perhelatan Google IO pada tahun 2018. Navigation termasuk ke dalam bagian Android Jetpack, dimana Android Jetpack sendiri merupakan sekumpulan library, tools, dan guidelines bagi para developer Android untuk membangun aplikasi android dengan mudah dan terarah.

Apa itu Navigation?

Navigation refers to the interactions that allow users to navigate across, into, and back out from the different pieces of content within your app.

Komponen Navigation

Didalam Navigation terdapat 3 komponen utama yang harus diketahui apabila ingin menggunakan library ini. Diantaranya adalah:

NavGraph

  • NavGraph adalah sebuah koleksi dari destinasi-destinasi yang diwakili oleh fragment yang unik. Artinya setiap destinasi memiliki id yang dibutuhkan untuk berpindah dari dan ke suatu tujuan.

Untuk membuat sebuah NavGraph kita harus membuatnya dengan sebuah file XML khusus untuk mendefinisikasnnya. Caranya mudah cukup klik kanan folder res > New > Android Resource Directory > resource type (pilih navigation) > masukkan nama file > OK.

Contoh dari sebuah NavGraph dapat kalian lihat seperti gambar dibawah ini.

NavGraph diwaliki oleh sebuah file XML untuk mendefinisikannya

Properti NavGraph seperti gambar diatas perlu diketahui fungsinya masing-masing. Berikut sedikit penjelasan pada setiap propertinya:

  1. <navigation/> merupakan root dari sebuah NavGraph yang bertindak sebagai wrapper untuk destinasi-destinasi yang diwakili oleh view fragment.
  2. <id> merupakan tanda pengenal bagi sebuah destinasi yang diperlukan untuk menentukan fragment mana yang akan ditampilkan pertama kali dan digunakan juga oleh NavController untuk mengatur navigasi.
  3. <startDestination> merupakan properti untuk menentukan fragment mana yang pertama kali akan ditampilkan pada layar.
  4. <name> hanya merupakan title yang diberikan pada fragment dan pada setiap fragment harus bersifat unik dan Java-Style naming contohnya “com.lorem.ipsum.HomeFragment”. Secara otomatis IDE akan mengisikan full path dengan dimasukkannya kata kunci. Selanjutnya IDE akan menampilkan dialog pemilihan full path dari destinasi-destinasi.
  5. <label> bertujuan sebagai label TAG juga digunakan untuk INTENT-FILTER.
  6. <tools:layout> merupakan properti bantuan untuk memasangkan atau menandakan layout pada fragment yang sesuai.

NavHost

  • NavHost merupakan sebuah host atau container untuk navigasi. Bentuk asli dari NavHost sendiri adalah interface dengan isi balikan berupa NavController.

NavController

  • NavController merupakan sebuah pengelola/controller untuk destinasi yang berasosiasi dengan sebuah NavHost. NavController akan menggunakan id yang telah didefinisikan pada NavGraph untuk mengelola perpindahan antar fragment.

Mungkin cukup sekian sedikit teori dari library ini. Beberapa referensi tambahan dibawah mungkin bisa lebih membantu kamu untuk mendalami ilmu tentang library Navigation.

Sampai bertemu pada bagian berikutnya. Insyaallah…


Easyread

Easy read, easy understanding. A good writing is a writing that can be understood in easy ways

Irfan Irawan Sukirman

Written by

Mobile Developer at Tokodistributor.com | Freelancer website and mobile hybrid with Flutter

Easyread

Easyread

Easy read, easy understanding. A good writing is a writing that can be understood in easy ways

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade