SwiftUI
Pengenalan SwiftUI
Apa itu SwiftUI, cara instalasi lewat Xcode, dan cara menjalankan tampilan pertamamu.
View & Body Property
Memahami protocol View, property body, dan bagaimana SwiftUI merender tampilan dari deskripsi kode.
Layout dengan VStack, HStack, dan ZStack
Menyusun beberapa View secara vertikal, horizontal, atau bertumpuk menggunakan stack container.
Modifier & Chaining
Mengubah tampilan dan perilaku View lewat modifier seperti .padding(), .foregroundColor(), dan urutan chaining-nya.
@State untuk State Lokal
Menyimpan dan memperbarui data yang bisa berubah di dalam satu View menggunakan property wrapper @State.
Binding Dua Arah dengan \$
Menghubungkan input pengguna langsung ke @State lewat projected value \$ dan tipe Binding.
@Binding: Meneruskan State ke Child View
Membiarkan child View membaca sekaligus mengubah state yang sebenarnya dimiliki parent View.
List & ForEach
Menampilkan koleksi data secara dinamis menggunakan List dan ForEach.
Navigasi dengan NavigationStack
Berpindah antar layar menggunakan NavigationStack dan NavigationLink.
ObservableObject & @ObservedObject
Mengelola state eksternal yang lebih kompleks lewat class yang conform ke ObservableObject.
@EnvironmentObject
Membagikan satu objek state ke seluruh pohon View tanpa meneruskannya manual lewat setiap initializer.
@StateObject vs @ObservedObject
Memahami perbedaan kepemilikan (ownership) antara @StateObject dan @ObservedObject.
View Kondisional (if/else)
Menampilkan View yang berbeda tergantung kondisi menggunakan if/else langsung di dalam view builder.
Button & Aksi
Menangani interaksi pengguna lewat Button dan closure action.
Form & Section
Menyusun tampilan input terstruktur menggunakan Form dan Section.
Animasi di SwiftUI
Membuat transisi halus antar state menggunakan withAnimation dan modifier .animation().
Async Data Loading dengan .task
Memuat data secara asynchronous saat View muncul menggunakan modifier .task dan async/await.
Alert, Sheet & Modal
Menampilkan dialog konfirmasi dan layar modal menggunakan .alert() dan .sheet().
Tugas Akhir
Membangun aplikasi Catatan sederhana yang menggabungkan State, Binding, List, dan Navigasi.