Dalam pembuatan project baru, bisa kita lihat bahwa struktur folder dan file pada flutter cukup simpel. Bagi yang belum tahu apa itu direktori, direktori
sama artinya dengan folder
, jadi Anbi mungkin akan menggunakan kedua kata tersebut. Anbi akan jelaskan, masing-masing kegunaan dari direktori dan file yang dibuat otomatis dan akan sedikit Anbi tambahin sesuai pengalaman Anbi.
Direktori atau Folder
.dart_tool
Muncul pada Dart 2
, digunakan oleh pub dan tools lainnya. Direktori ini menggantikan direktori .pub
setelah SDK 2.0.0-dev.32.0 rilis. Tidak perlu mengubah isi direktori ini.
.idea
Perlu kita ketahui terlebih dahulu, pada Intellij IDEA terdapat dua tipe format untuk konfigurasi Project disimpan, yakni File-based format dan Directory-based format. Flutter menganut yang kedua (Directory-based format). Nah, di direktori .idea
ini setiap pengaturan Project disimpan secara spesifik dalam bentuk xml
. Pada sistem operasi macOS dan Linux, direktori .idea akan ter hidden secarta default. Kita tidak perlu mengubah-ubah isi dari direktori ini. Jika menggunakan git, direktori .idea/
akan ditulis pada .gitignore secara otomatis.
android
Merupakan Folder yang penting, isi dari folder ini diperlukan untuk proses build menjadi aplikasi native ke platform android
. Didalamnya ada file build.gradle
, disini tempat untuk menentukan versi Sdk dari aplikasi. Dan pada file AndroidManifest.xml
berguna untuk mengatur permissions, untuk meminta ijin menggunakan camera, file explorer, sound recording, dsb. Folder utama didalam android adalah folder main.
ios
Fungsinya sama seperti folder android, folder ini diperlukan jika kita ingin menjalankan aplikasi ke platform iOS
. Walaupun dalam penerapannya, kita memerlukan sistem operasi macOS dengan XCode nya agar bisa build menjadi aplikasi ke iPhone. Jika kita tidak memiliki device nya, kita bisa menyewa Cloud Service yang menggunakan macOS.
lib
Ini adalah folder utama, dan merupakan code dari aplikasi Flutter mu. Pada awalnya, akan ada file main.dart
yang dibuatkan secara otomatis. File main.dart adalah file root dari aplikasi Flutter mu, jadi Anbi beri saran untuk kamu membuat folder baru didalam folder lib. Nah, nanti main.dart diarahkan ke file-file didalam folder baru itu.
test
Folder ini diatur untuk testing dari kode yang kamu tulis.
assets
Folder satu ini tidak ada secara default dan hanya merupakan tambahan yang sering Anbi gunakan. Fungsinya untuk menyimpan images
atau font
tambahan. Anbi sarankan untuk kita tetap menjaga struktur direktori mudah ditemukan agar tidak pusing saat ingin maintenance.
File
.gitignore
File ini berisi daftar file, extensi, dan folder yang akan diabaikan oleh Git, jika kita menggunakan Git. Dalam awal pembuatan Project Flutter baru, file ini sudah terisi dengan baik mana file atau folder yang akan diabaikan. Kamu tidak perlu mengubah isinya kecuali memang ada yang ingin ditambahkan.
.metadata
File ini dikelola oleh Flutter secara otomatis digunakan untuk melacak properties dari Project Flutter. Juga untuk menilai kemampuan dan menjalankan upgrade. File ini tidak di edit secara manual.
.packages
Isi dari file ini di generate secara otomatis oleh Flutter SDK dan digunakan untuk mendata dependencies dari Project Flutter mu. File ini tidak di edit secara manual.
nama_project.iml
File ini akan dinamai sesuai dengan nama project dan berisi pengaturan dari Project Flutter. File ini tidak di edit secara manual.
pubspec.yaml
File ini merupakan file konfigurasi dari Project Flutter yang akan sering kamu gunakan. Hal-hal yang bisa kita konfigurasi dari file ini adalah:
- nama, deskripsi dan versi dari project
- dependencies yang digunakan
- asset seperti gambar dan font
pubspec.lock
Pada awal kita menggunakan dependencies baru untuk sebuah package, pub akan mendownload versi paling baru dan cocok. Lalu pub akan mengunci package untuk selalu digunakan dengan membuat pubspec.lock. File ini akan mendata secara spesifik versi dari setiap dependency yang digunakan package. Saat kamu ingin upgrade dependencies ke versi paling baru, gunakan command
$ pub upgrade
README.md
File ini biasanya berguna sebagai guide bagi developer baru yang bergabung ke tim pengembangan Project Flutter mu. Kamu bisa tuliskan langkah awal untuk menjalankan aplikasi beserta lingkup dependencies yang perlu diperhatikan.