Flutter

Cara untuk Migrasi ke Flutter 2

Flutter 2 dirilis dengan segala pembaruan yang dimilikinya. Salah satu poinnya adalah Null Safety. Poin ini memiliki peran yang cukup penting karena...

Ikhwan Written by Ikhwan · 2 min read >

Flutter 2 dirilis dengan segala pembaruan yang dimilikinya. Salah satu poinnya adalah Null Safety. Poin ini memiliki peran yang cukup penting karena begitu banyak issue yang dijumpai di Github terkait null. Lalu bagaimana cara untuk migrasi ke Flutter 2? Apakah sekedar mengubah SDK di pubspec.yaml? Kita akan bahas di tulisan ini ya.

1. Cek dependency

Hal pertama yang perlu dilakukan adalah memastikan semua package atau library yang digunakan telah menerapkan null safety. Hal ini bisa dilakukan dengan menjalankan command berikut pada terminal atau command line pada project flutter. (Jika menggunakan Android Studio, kita bisa menggunakan terminal yang terdapat pada Android Studio tersebut)

dart pub outdated --mode=null-safety

Command tersebut akan menghasilkan hasil, kurang lebih seperti berikut:

Hasil command

Pada screenshot terdapat 3 library yang sedang digunakan, belum menerapkan null safety. Namun library tersebut telah menyediakan versi, yang support dengan null safety. Hal ini bisa dilihat pada bagian Resolvable atau Latest dengan warna hijau. Selanjutnya kita bisa menggunakan versi tersebut pada pubspec.yaml.

“Bagaimana jika library yang digunakan, belum support null safety?”

Hal yang disarankan adalah menunggu atau menghubungi langsung pemilik library tersebut. Kontaknya tentu bisa ditemukan di pub.dev, pada halaman library tersebut. Opsi lainnya adalah mengganti library dengan library yang telah support null safety.

Jika semua library yang digunakan telah menggunakan null safety, kita bisa lanjut ke tahap selanjutnya.

2. Migration tool

Flutter telah menyediakan migration tool untuk mengconvert code ke null safety. Jalankan command berikut:

dart migrate

Jika tidak terdapat permasalahan, command tersebut akan menghasilkan link seperti berikut:

Hasil command

Klik link tersebut atau copy paste ke browser. Berikut tampilan website dari link tersebut:

Migration tool
  • Project Files, adalah file dari project yang akan dimigrasi
  • Proposed Edits, berisikan edit yang disarankan oleh migration tool. Pada bagian seperti line 3 pada contoh di atas, bisa diklik dan akan mengarahkan kita ke bagian dari code yang diubah
  • Edit Details, berisikan alasan dari kenapa perubahan diajukan dan button aksi perubahan. Aksi berperan, jika perubahan yang disarankan tidak sesuai dengan yang kita harapkan. Dan melalui button ini, kita memberi tahu migration tool agar melakukan perubahan yang sesuai. Misalkan variable String disarankan menjadi String? (nullable). Lalu terdapat action /*!*/ yang memiliki arti: “Aku sangat yakin String ini tidak akan pernah bernilai null, jadi tipe data yang digunakan seharusnya String saja, bukan String?“. Selain melalui aksi yang disediakan, kita juga bisa langsung mengubahnya di IDE. Berikut hint yang bisa digunakan:
Hint
  • RERUN FROM SOURCES, adalah button yang disediakan untuk menjalankan kembali proses analisa oleh migration tool. Button ini perlu diklik ketika terjadi perubahan yang di trigger dari luar migration tool (Seperti mengubah melalui IDE) maupun dari migration tool itu sendiri (Perubahan yang terjadi dari aksi yang terdapat pada EditDetails). Apakah setiap ada perubahan, button ini harus langsung diklik? Pertanyaan tersebut akan terjawab pada bagian Tips ya.
  • APPLY MIGRATION, adalah button yang berfungi untuk menjalankan migrasi. Setelah button diklik, SDK pada pubspec.yaml akan berubah dan code juga berubah ke null safety tentunya.

*Tips

Bagaimana cara menggunakan migration tool yang efisien?

Mulai lah mengecek dari file yang berada pada layer paling dalam, atau file yang paling sering digunakan dan memiliki keterikatan atau ketergantungan paling sedikit dengan file lainnya. Misalkan project menerapkan repository pattern. Maka mulai lah dari model/dao, lalu lanjut ke bagian API, local data, repository, lalu ke widget yang berperan sebagai activity. Di setiap perpindahan layer, click button RERUN FROM SOURCES. Hal tersebut perlu dilakukan, agar code yang menggunakan file yang telah kita cek, dianalisa ulang oleh migration tool.

Kenapa proses migrasinya seperti itu?

Jika proses migrasi dimulai dari tengah atau layer paling luar seperti activity, hal ini akan mengakibatkan kebingungan dalam proses migrasi.

Misalnya kita telah mengecek bagian activity, lalu lanjut ke bagian model/dao. Setelah selesai pada bagian dao, kita mengklik button RERUN FROM SOURCES. Setelah button tersebut diklik, bagian activity akan mengalami perubahan kembali. Hal ini bisa saja terjadi karena model/dao digunakan pada activity. Dan setelah hal tersebut terjadi, kita perlu mengecek ulang activity tersebut. Tidak efisien bukan?

Tips ini ditulis berdasarkan pengalaman mimin memigrasikan 2 project Flutter ya. Tentu setiap orang memiliki caranya masing” 😀

Sekian tulisan kali ini, terimakasih dan semoga bermanfaat ya 😀

Oh iya di website ini ada tulisan menarik lainnya juga loh, seperti berikut:

2 Replies to “Cara untuk Migrasi ke Flutter 2”

  1. min, bisa dibuatkan tutorial untuk crud mahasiswa dengan database mysql dan flutter. thanks min sebelumnya,

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *