Web Dan Runtime

Flutter

Jalur membangun aplikasi lintas platform dengan Flutter, dari esensi bahasa Dart, widget, dan state, hingga navigasi, data, dan rilis aplikasi lengkap.

Jalur Flutter mengajarkan pembangunan aplikasi lintas platform dengan satu basis kode Dart, mulai dari esensi bahasa, model widget, pengelolaan state, navigasi, konsumsi data, hingga build rilis. Materi disusun bertahap sehingga setiap konsep baru bertumpuk pada konsep sebelumnya, dengan Flutter 3.47 dan Dart 3.13 sebagai acuan versinya. Prasyarat lingkungan berupa Flutter SDK, emulator atau perangkat Android/iOS, dan editor yang terpasang plugin Flutter.

Mengenal Flutter 3 pelajaran

Modul pembuka: posisi Flutter di dunia lintas platform, pratinjau bahasa Dart, dan penyiapan lingkungan kerja.

  1. Apa itu Flutter?Mengenal Flutter sebagai toolkit UI lintas platform dari Google beserta mesin rendernya dan trade-off utamanya.
  2. Pratinjau kursus kilat DartPratinjau singkat bahasa Dart dan fitur yang membedakannya dari Java serta JavaScript.
  3. PenyiapanMemasang Flutter SDK, plugin editor, memeriksa flutter doctor, dan menjalankan aplikasi pada emulator pertama kali.
Esensi Dart 5 pelajaran

Modul bahasa Dart yang menggerakkan Flutter: null safety, fungsi, kelas, asinkron, dan koleksi.

  1. Variabel dan null safetyMendeklarasikan variabel di Dart beserta semantik sound null safety, late, dan required.
  2. Fungsi dan closureMenulis fungsi Dart dengan sintaks panah, parameter opsional, parameter bernama, dan closure.
  3. KelasMendefinisikan kelas di Dart dengan constructor, factory constructor bernama, dan getter.
  4. Future dan async/awaitMenangani operasi asinkron di Dart menggunakan Future, async, dan await beserta penanganan errornya.
  5. KoleksiMenggunakan List, Map, dan Set beserta operator spread untuk membangun koleksi.
Fondasi widget 5 pelajaran

Modul mental model Flutter: segalanya adalah widget, stateless vs stateful, metode build, dan widget dasar.

  1. Segala sesuatu adalah widgetMembangun mental model komposisi di mana seluruh UI Flutter tersusun atas widget.
  2. Stateless vs statefulMembedakan StatelessWidget dan StatefulWidget, pembeda yang menstrukturkan seluruh kode Flutter.
  3. Metode buildMemahami cara metode build bekerja, kapan rebuild terjadi, serta alur constraint yang turun dan ukuran yang naik.
  4. Widget dasarMenggunakan widget Text, Row, Column, Container, Padding, dan Center untuk menyusun tampilan pertama.
  5. Widget layoutMengatur layout dengan Expanded, Flexible, Stack, dan Positioned.

Modul respons masukan pengguna: setState, form, gestur, dan batas state lokal widget.

  1. setStateMengubah state dengan setState, memahami kontrak rebuild-nya, dan menerapkan alur kerja hot reload.
  2. Field teks dan formMenerima masukan teks dengan TextField, TextEditingController, validasi form, dan pengelolaan fokus.
  3. GesturMenangani sentuhan pengguna dengan tombol, InkWell, dan GestureDetector.
  4. Batas setStateMengenali kapan state lokal widget tidak lagi memadai dan kesulitan prop drilling muncul.
  5. Menaikkan state dan InheritedWidgetMenaikkan state ke widget leluhur dan memperkenalkan InheritedWidget sebagai jalan menuju pengelolaan state yang sesungguhnya.

Modul pengelolaan state skala aplikasi: package Provider, kendali rebuild, lanskap state, dan immutability.

  1. Package ProviderMengelola state aplikasi dengan package Provider melalui ChangeNotifier serta context.read dan context.watch.
  2. Consumer dan SelectorMempersempit cakupan rebuild dengan Consumer dan Selector.
  3. Lanskap stateMemetakan posisi Riverpod, Bloc, dan Redux di lanskap pengelolaan state Flutter.
  4. Pola immutabilityMenerapkan pola immutability dengan copyWith dan alur data satu arah.
Navigasi 4 pelajaran

Modul perpindahan antarlayar: Navigator, route bernama, aliran data antarlayar, dan go_router.

  1. NavigatorBerpindah layar dengan Navigator menggunakan push dan pop dengan route sebagai layar.
  2. Route bernamaMendefinisikan tabel route bernama dan meneruskan argumennya.
  3. Meneruskan dataMengirim data ke layar berikutnya dan mengembalikan hasil ke layar sebelumnya.
  4. go_routerMenyusun routing deklaratif dengan package go_router dan mengenali konsep deep link.

Modul konsumsi data: list lazy, HTTP dan JSON, FutureBuilder, serta persistensi lokal.

  1. ListView builderMembangun list panjang secara lazy dengan ListView.builder dan disiplin performanya.
  2. HTTP dan JSONMengambil data dari API dengan package http, mengurai JSON via dart:convert, dan memodelkannya sebagai kelas.
  3. FutureBuilderMerender hasil Future dengan FutureBuilder untuk kondisi loading, error, dan kosong.
  4. Persistensi lokalMenyimpan data sederhana dengan shared_preferences dan mengenali sqflite untuk data relasional.
Penyempurnaan UI 4 pelajaran

Modul tampilan tingkat lanjut: theming Material 3, mode gelap, animasi, dan widget kustom.

  1. ThemingMengatur tema aplikasi dengan Material 3 melalui ColorScheme dan TextTheme.
  2. Mode gelapMenyediakan tema gelap, mengganti theme secara dinamis, dan mengikuti pengaturan sistem.
  3. AnimasiMenghidupkan UI dengan AnimatedContainer dan Hero serta membedakan animasi implisit dan eksplisit.
  4. Widget kustomMenyusun komponen desain yang dapat dipakai ulang melalui komposisi widget.
Platform dan rilis 6 pelajaran

Modul integrasi platform dan kelahiran aplikasi: platform channel, layout adaptif, pengujian, build rilis, dan keamanan.

  1. Platform channelMengenal interoperabilitas kode native melalui platform channel.
  2. Layout adaptifMenyesuaikan tampilan untuk ponsel, tablet, desktop, dan web dengan layout adaptif.
  3. PengujianMenguji aplikasi dengan tes unit dan tes widget, serta mengenali golden test.
  4. Membangun rilisMembangun APK dan AAB untuk Android, arsip iOS, serta dasar penandatanganannya.
  5. Lokalisasi dan intlMenyiapkan aplikasi multibahasa dengan berkas ARB, delegate locale, dan string terlokalisasi.
  6. Petunjuk keamanan untuk FlutterMenjaga secret, penggunaan webview, dan platform channel agar tidak menjadi celah keamanan aplikasi.
Pengerjaan proyek 4 pelajaran

Modul penutup: merancang, membangun, menguji, dan menyempurnakan satu aplikasi lengkap dari nol.

  1. Pemilihan proyekMemilih aplikasi nyata dengan autentikasi, data, dan toleransi offline sebagai proyek akhir.
  2. Desain layar dan alurMenerjemahkan wireframe menjadi rencana pohon widget dan alur navigasi.
  3. ImplementasiMembangun proyek akhir dengan menggabungkan state, navigasi, dan integrasi API.
  4. Pengujian dan penyempurnaanMenuntaskan proyek akhir melalui tes widget, penyesuaian theme, dan penanganan kondisi error.