Jalur ini mengajarkan bahasa Dart modern sesuai karakternya sendiri: null safety ditegakkan sebagai hukum sejak baris pertama, fitur Dart 3 seperti record, pattern, dan hierarki sealed menyusul sebagai peningkat model kelas klasik, lalu asinkronitas diperlakukan sebagai mode bawaan bahasa. Sepanjang sebelas modul, toolchain resmi (analyzer, formatter, dan dart test) digunakan di setiap tahap, dan setiap potongan kode dijalankan nyata dengan Dart SDK 3.13 sehingga keluarannya dapat direproduksi ulang. Flutter sengaja ditunda sampai bahasa ini berdiri sendiri, dan pada bagian akhir jalur, kemampuan yang terkumpul diarahkan ke pengiriman sungguhan ke baris perintah, server, dan web.
Dart
Jalur lengkap bahasa Dart modern dari fondasi null safety hingga fitur Dart 3, asinkronitas, toolchain profesional, dan pengiriman ke baris perintah, server, dan web.
0/0 selesai
Modul pembuka: gambaran bahasa Dart, instalasi SDK 3.13, dan DartPad sebagai lingkungan eksperimen tanpa instalasi.
- Apa itu Dart?Peran Dart sebagai bahasa yang dioptimalkan untuk klien beserta penggunaannya pada aplikasi, baris perintah, dan server.
- PenyiapanInstalasi Dart SDK 3.13 beserta penjelasan kanal stable, beta, dan main.
- DartPadDartPad sebagai tempat bereksperimen tanpa instalasi untuk potongan kode pertama.
Modul dasar bahasa: variabel dan inferensi tipe, tipe bawaan, operator beserta cascade, dan fungsi dengan parameter fleksibel.
- Variabel dan tipeDeklarasi var, final, dan const beserta inferensi tipe versus anotasi eksplisit.
- Tipe bawaanTipe int, double, String, dan bool beserta perilakunya tanpa kejutan.
- Operator dan cascadeOperator aritmetika, kesetaraan, dan pengujian tipe, ditambah cascade untuk rantai panggilan.
- FungsiSintaks panah, parameter bernama, dan parameter opsional pada fungsi Dart.
Modul null safety: tipe nullable dan non-nullable, operator null-aware, operator bang, serta penyiapan tertunda dengan late.
- Tipe nullable dan non-nullablePerbedaan String dan String? sebagai dua dunia tipe yang berbeda pada null safety.
- Operator null-awareAkses aman ?., nilai bawaan ??, dan cascade null-aware ?..
- Operator bangOperator ! sebagai janji kepada analyzer bahwa sebuah nilai tidak null.
- late dan inisialisasiKata kunci late untuk penyiapan tertunda yang dilakukan secara bertanggung jawab.
Modul pemrograman berorientasi objek: kelas dan konstruktor, getter dan setter, pewarisan, mixin, dan extension.
- Kelas dan konstruktorKelas, konstruktor bernama, dan initializer list pada Dart.
- Getter dan setterGetter dan setter sebagai properti terhitung di balik sintaks bidang.
- Pewarisan dan abstraksiextends, override, dan kontrak kelas abstract.
- MixinMixin sebagai perilaku bersama tanpa rantai pewarisan.
- ExtensionExtension untuk menambahkan anggota pada tipe yang tidak dapat diubah.
Modul fitur Dart 3: record, pattern matching, switch eksaustif, modifier kelas, dan extension types.
- RecordRecord sebagai nilai agregat anonim yang ringan.
- PatternPattern untuk destrukturisasi deklaratif dan logika pencocokan.
- Switch eksaustifSwitch eksaustif dengan pencocokan pattern pada hierarki sealed.
- Modifier kelasModifier sealed, final, base, dan interface untuk mengendalikan pembuatan subkelas.
- Tipe extensionExtension types sebagai wrapper tanpa biaya yang diperkenalkan di Dart 3.3.
Modul error dan asinkronitas: exception, Future, async/await, stream beserta transformasinya, dan isolate.
- Exceptionthrow, try, catch, finally, dan tipe error kustom.
- FutureFuture sebagai nilai yang datang kemudian dan cara menunggunya.
- async dan awaitasync dan await untuk pengurutan kode asinkron secara terstruktur.
- StreamStream sebagai rangkaian event yang dikonsumsi dengan await for.
- Transformasi streamTransformasi asinkron stream melalui pemetaan, penyaringan, dan penggabungan.
- IsolateIsolate sebagai konkurensi tanpa memori bersama yang dapat diubah.
Modul koleksi: List, Set, dan Map, alur kendali dalam literal, metode orde tinggi, serta sifat lazy pada Iterable.
- List, Set, dan MapKoleksi List, Set, dan Map beserta versi const dan mutable-nya.
- Alur kendali dalam literalOperator spread dan collection-if di dalam literal koleksi.
- Metode orde tinggimap, where, dan fold pada Iterable sebagai metode orde tinggi.
- Iterable lazyIterable yang lazy: transformasi berantai yang dievaluasi saat dibutuhkan.
Modul toolchain: dart analyze sebagai pengecek statis, dart format dan dart fix untuk konsistensi, serta dart test.
- dart analyzedart analyze sebagai asisten pengajar yang ketat untuk kualitas kode.
- dart format dan dart fixdart format untuk tata letak kode dengan satu gaya resmi dan dart fix untuk migrasi otomatis.
- dart testdart test untuk pengelompokan, ekspektasi, dan kebiasaan test-driven.
Modul ekosistem package: mengevaluasi package di pub.dev, mengelola pubspec.yaml, dan memublikasikan package sendiri.
- pub.devpub.dev sebagai sumber package: mencari, membaca skor, dan mengevaluasi.
- pubspec.yamlpubspec.yaml untuk dependensi, batasan versi, dan batas SDK.
- Publikasi dan versioningSemantic versioning untuk publikasi package buatan sendiri.
Modul di luar mobile: dart:io, server dengan shelf dan dart_frog, kompilasi AOT versus JIT, serta web dan interop.
- dart:iodart:io untuk berkas, process, socket, dan klien HTTP.
- Dart sisi serverDart sisi server: routing dengan shelf dan framework dart_frog.
- AOT versus JITPerbandingan biner hasil kompilasi AOT dengan siklus pengembangan JIT.
- Web dan interopdart:js_interop untuk web dan pengenalan kompilasi WASM.
Modul penutup: memilih proyek, merancang model tipe sejak awal, dan membangun dengan analyze, test, dan format di setiap langkah.
- Pemilihan proyekPemilihan bentuk proyek akhir: alat CLI, layanan web, atau package yang dapat digunakan ulang.
- Desain mengutamakan tipeDesain mengutamakan tipe: model null-safe dan hierarki sealed sejak awal.
- Membangun dengan titik pemeriksaanMembangun proyek dengan analyze, test, dan format pada setiap titik pemeriksaan.