Mobile

Memulai Flutter untuk produk nyata

Ilustrasi pengembangan aplikasi

Flutter menarik karena satu codebase untuk iOS dan Android — tetapi tanpa struktur yang jelas, tim akan kehabisan waktu merapikan ulang sebelum fitur besar kedua dirilis.

Artikel ini merangkum pola yang saya pakai saat memulai proyek Flutter: bagaimana membagi folder fitur, kapan memecah widget, dan bagaimana menyiapkan uji minimal agar refactor tidak menakutkan.

Struktur folder yang masuk akal

Saya cenderung mengelompokkan berdasarkan fitur (auth, checkout, profil) lalu memakai subfolder widgets, models, dan services di dalamnya. Lapisan “core” untuk tema, routing, dan klien HTTP tetap terpisah agar tidak bercampur dengan UI bisnis.

  • Hindari file raksasa satu layar — pecah menjadi widget privat kecil di file yang sama atau berdampingan.
  • Namai widget berdasarkan peran UI, bukan hanya “CustomWidget1”.
  • Simpan string yang akan diterjemahkan di satu modul agar lokalisasi tidak mengorbankan deadline.

State dan navigasi

Untuk produk kecil, kombinasi Navigator 2.0 atau router pihak ketiga plus state lokal sudah cukup — yang penting adalah kesepakatan tim: siapa yang memegang “sumber kebenaran” untuk alur multi-langkah (wizard, onboarding).

Setelah rilis pertama, barulah pertimbangkan pola yang lebih berat (misalnya pemisahan domain dengan modul internal) ketika ukuran tim dan fitur benar-benar memaksa.