# Antarmuka Pengguna

Proses pembuatan User Interface (UI) pada flutter dapat menerapkan desain Adaptive dan Responsive. Setiap aplikasi dapat menerapkan salah satu atau kedua dari desain tersebut.

# Adaptive

Merupakan proses dimana aplikasi dapat berjalan di berbagai platform seperti mobile, desktop, android, ios, dsb. Desain ini merujuk kepada bagaimana tampilan pada aplikasi, misal bagaimana bottom sheet bekerja pada tampilan android dan ios.

# Responsive

Merupakan proses pembuatan UI yang dapat berubah di berbagai ukuran layar. Sebagai contoh, bagaimana tampilan jika device mobile dan tablet, saat orientasi layar potrait atau landscape.

untuk info lebih lanjut bisa dilihat disini (opens new window) dan disini (opens new window)

# Widgets

SEMUA ADALAH WIDGET Di Flutter pada dasarnya seluruh komponen adalah widget. Widget tersebut pada dasarnya bersifat REUSABLE. Tugas developer adalah membuat kode yang efisien, sehingga tidak ada widget yang berulang.

# Container dan SizedBox

Widget Container() dan SizedBox() memiliki sifat yang mirip. Widget tersebut sama-sama menampilkan empty space pada layar. Tetapi HINDARI penggunakan Container() untuk menampilkan empty space karena container akan memakan lebih banyak resource dibandingkan dengan sizedbox.