Hari ini, kita akan membahas topik yang sangat penting, yaitu gimana sih “Lifecycle di dalam aplikasi Flutter sebenarnya.”
Kalian jangan terlalu khawatir kalau masih belum familiar dengan konsep ini. Kita akan membahasnya dengan santai dan semoga mudah dipahami.
Apa Itu Lifecycle Flutter?
Mari kita mulai dengan pertanyaan sederhana: Apa itu lifecycle atau siklus hidup dalam Flutter?
Nah sederhananya, lifecycle adalah cara aplikasi Flutter kita berperilaku dari saat pertama kali dijalankan hingga aplikasi ditutup.
Ini kayak “kehidupan” aplikasi kita, seperti jantung yang memompa darah ke seluruh tubuh kita.
Lifecycle menunjukkan bagaimana proses perubahan state didalam aplikasi.
Mengapa Penting?
Kenapa mempelajari lifecycle ini penting banget? Nah, pemahaman lifecycle dapat membantu temen-temen mengelola aplikasi dengan baik.
Kita bisa memastikan sumber daya digunakan dengan bijak, mencegah penggunaan memori yang berlebihan, dan memaksimalkan kinerja aplikasi kita.
8 Lifecycle Flutter
Flutter memiliki 8 jenis lifecycle, Segala sesuatu didalam flutter adalah Widget, 8 jenis lifecycle ini akan sering diterapkan pada widget jenis Statefull temen2 dibandingkan Stateless.
Namanya aja stateless atau tanpa state, yang artinya lifecyclenya minim banget, cuman build sekali doang doang.
Jadiiii, apa aja 8 lifecycle didalam flutter?
- createState
- initState
- didChangeDependencies
- builds
- didUpdateWidget
- setState
- deactivate
- dispose
Oke oke, kita akan bahas satu per-satu.
1. createState
createState adalah metode yang dipanggil untuk membuat objek State
yang akan mengelola keadaan dan perilaku dari widget tersebut.
Sederhananya, createState
adalah awal dari siklus hidup widget yang digunakan untuk menciptakan objek State
dan akan mengontrol perilaku dari sebuah widget.
Again, lifecycle ini hanya ada di stateful widget yaaa…
Method createState
hanya dipanggil satu kali saat widget StatefulWidget
pertama kali dibuat.
2. initState
initState dalah method yang dipanggil setelah objek state berhasil dibuat pada proses createState
.
Method ini dieksekusi sebelum widget tree di build temen2, dan hanya dipanggil sekali saja selama siklus hidup aplikasi berlangsung.
Biasanya didalam method ini digunakan untuk inisialisasi awal sebuah variabel.
3. didChangeDependencies
didChangeDependencies adalah method yang dipanggil secara langsung tepat setelah proses initState dijalankan.
Selain itu, method ini dipanggil juga ketika dependency dari state widget induk berubah.
Masih bingung? tenang…tenang.
Dependency disini contohnya adalah seperti kalau temen2 menggunakan inheritedwidget, provider, atau context yang merupakan dependency bawaan flutter. Pada contoh berikut ini kita memanfaatkan theme data didalam context.
Jika data pada dependency theme data berubah, maka didChangeDependencies ini akan tertrigger.
4. build
Build adalah salah satu metode terpenting dalam siklus hidup widget Flutter.
build adalah method di mana flutter merender tampilan atau UI dari widget kita.
Method ini akan selalu dipanggil ketika widget pertama kali di muat dan saat melakukan setState, jadi kita harus hati2 dan bijak ketika menggunakan setState, karena widget akan di build ulang secara keseluruhan.
5. didUpdateWidget
Method ini akan dipanggil kapan pun ketika terjadi perubahan pada widget.
Sebenarnya method ini mirip dengan lifecycle build, bedanya adalah kalau build fokus untuk merender tampilan, sedangkan didUpdateWidget fokus pada perubahan apa yang sedang terjadi.
Makanya didUpdateWidget
terdapat parameter oldWidget
yang bisa kita gunakan untuk mengcompare dengan widget terbaru.
6. setState
setState adalah method yang memungkinkan kita untuk memperbarui tampilan atau UI widget kita saat terjadi perubahan dalam data atau state. Ini adalah cara kita memberi tahu Flutter bahwa sesuatu telah berubah dan tampilan perlu diperbarui.
Yang dimana ketika kita memanggil setState, pada akhirnya lifecycle build dan didUpdateWidget akan terpanggil juga.
7. deactivate
Dipanggil ketika widget menjadi tidak aktif namun masih ada dalam widget tree dan dapat diaktifkan kembali.
Contoh paling umum lifecycle deactivate adalah saat berganti tab ketika temen2 mengggunakan widget TabBar
atau saat berganti halaman dalam widget PageView
.
8. dispose
Dipanggil ketika widget dihapus sepenuhnya dari widget tree.
Biasanya digunakan untuk membersihkan sumber daya yang digunakan oleh widget, untuk menghindari memory leak atau kebocoran memori.
dispose
adalah metod terakhir dalam siklus hidup widget dan hanya dipanggil sekali saat widget dihapus.
Biasanya dispose akan dipanggil ketika temen2 mengeksekusi fungsi Navigator pop, place replacement, dll.
Kesimpulan
Jadi, itulah dasar-dasar lifecycle dalam Flutter. Jangan khawatir jika kalian masih belum menguasainya saat ini, kalian akan terbiasa seiring berjalannya waktu, dan ini adalah salah satu konsep yang penting untuk menjadi seorang Flutter developer profesional.
Terima kasih telah menonton video ini! Jika kalian memiliki pertanyaan atau ingin tahu lebih lanjut tentang lifecyce flutter, komen aja di kolom komentar di bawah. Dan, jangan lupa like, comment dan subscribe channel ini, terimakasih.