Skip to main content
Python Crash Course Cover

Dedikasi

“Untuk istri dan putri saya yang selalu mendukung saya tanpa syarat. Terima kasih atas malam-malam konyol, percakapan yang mendalam, dan cinta yang tak terukur.”

— Alejandro Ulate Fallas

“Untuk istri dan keluarga saya yang telah memberi saya ruang untuk terus berkarya dan mempelajari hal-hal baru.”

— Kevin David Moore

“Untuk orang tua dan saudari saya tercinta. Terima kasih atas kesabaran, cinta, dukungan, dan karena selalu ada untuk saya.”

— Vincent Ngo

“Untuk Angela Yu yang telah memperkenalkan saya pada Flutter. Untuk Simon Lightfoot, Flutter Whisperer, yang tidak pernah menghakimi ketika saya membutuhkan bantuan. Untuk tim Flutter Apprentice dan para Flutteristas atas semua dukungan dan semangatnya. Dan yang terpenting, terima kasih, Sean dan Ryan, atas kesabaran dan cinta kalian.”

— Stef Patterson

Selamat Datang

Selamat datang di Flutter Apprentice!

Flutter adalah sebuah UI toolkit yang luar biasa yang memungkinkan kamu membangun aplikasi untuk iOS dan Android — bahkan juga bisa untuk platform web dan desktop seperti macOS, Windows, dan Linux — semuanya dari satu kode yang sama.

Flutter memiliki semua keunggulan yang dimiliki tool cross-platform lainnya, terutama karena kamu menargetkan banyak platform hanya dari satu kode. Bahkan lebih dari itu, Flutter menyempurnakan sebagian besar *tool cross-platform *berkat rendering engine yang sangat cepat, sehingga aplikasi Flutter dapat berjalan dengan performa setara aplikasi native.

Selain itu, fitur-fitur Flutter umumnya bersifat independen dari fitur native, karena kamu menggunakan elemen UI milik Flutter sendiri yang disebut widgets untuk membangun UI. Meski demikian, Flutter tetap memiliki kemampuan untuk bekerja dengan native code, sehingga kamu bisa mengintegrasikan aplikasi Flutter dengan fitur native ketika dibutuhkan.

Jika kamu berasal dari platform seperti iOS atau Android, pengalaman development dengan Flutter akan terasa menyegarkan. Berkat fitur bernama hot reload, kamu jarang perlu melakukan rebuild aplikasi saat proses development. Aplikasi yang sedang berjalan di simulator atau emulator akan otomatis diperbarui setiap kali kamu menyimpan perubahan pada source code!

Dalam buku ini, kamu akan mempelajari cara membangun aplikasi Flutter yang lengkap fiturnya, mendapatkan pengalaman menggunakan berbagai macam Flutter widgets, serta belajar bagaimana melakukan deploy aplikasi ke mobile app store.

Bagaimana Membaca Buku Ini

Pada bagian pertama buku, kamu akan mempelajari cara menyiapkan development environment Flutter. Setelah itu, kamu akan mulai membangun aplikasi Flutter pertamamu.

Dua bagian berikutnya akan fokus pada pengembangan UI menggunakan Flutter widgets. Di sini kamu akan melihat betapa impresifnya user interface yang dapat dibuat dengan Flutter.

Bagian keempat beralih ke pembuatan aplikasi baru. Aplikasi ini akan digunakan untuk mempelajari penggunaan networking dan database di Flutter, serta topik yang sangat penting: state management.

Bagian kelima mengajarkan cara bekerja dengan Firebase Cloud Firestore. Secara khusus, kamu akan belajar bagaimana menambahkan fitur instant messaging ke aplikasi Yummy.

Bagian keenam membahas tentang testing. Kamu akan mempelajari cara memanfaatkan unit test dan widget test untuk memastikan aplikasimu berperilaku sesuai dengan yang diharapkan.

Bagian ketujuh menunjukkan cara mengintegrasikan aset yang spesifik untuk masing-masing platform ke dalam aplikasi, lalu mendemonstrasikan bagaimana melakukan deploy aplikasi ke mobile app store.

Berikut adalah rincian dari tujuh bagian utama dalam buku ini:

Bagian I: Membangun Aplikasi Flutter Pertamamu

Bab-bab pada bagian ini memperkenalkan kamu pada Flutter, membantu menyiapkan environment development Flutter, dan memandu kamu membangun aplikasi Flutter pertamamu.

Kamu akan mempelajari dari mana Flutter berasal dan mengapa Flutter dibuat, memahami struktur project Flutter, serta melihat bagaimana cara membuat UI pada aplikasi Flutter.

Kamu juga akan mendapatkan pengenalan pertama terhadap komponen kunci yang terdapat pada user interface Flutter: widgets!

Bagian II: Everything’s a Widget

Pada bagian ini, kamu akan mulai membangun aplikasi resep dengan fitur lengkap bernama Yummy. Kamu akan mendapatkan pemahaman tentang beragam widgets yang tersedia di Flutter dan menggunakannya secara langsung. Setelah itu, kamu akan mempelajari teori tentang bagaimana widgets bekerja di balik layar.

Terakhir, kamu akan mendalami lebih jauh akan widgets, scrollable widgets, dan interactive widgets.

Bagian III: Navigasi Antar Layar

Di bagian ini, kamu akan melanjutkan pengerjaan aplikasi Yummy, sambil mempelajari cara melakukan navigasi antar layar dan bekerja dengan deep links.

Topik yang akan dipelajari mencakup Navigator 2.0 dan Flutter Web.

Bagian IV: Networking, Persistence, & State

Sebagian besar aplikasi berinteraksi dengan network untuk mengambil data, lalu menyimpan data tersebut secara lokal dalam bentuk cache, seperti database. Pada bagian ini, kamu akan membangun aplikasi baru yang memungkinkan kamu mencari resep di Internet, menandai resep favorit, dan menyimpan bahan-bahannya ke dalam shopping list.

Kamu akan mempelajari cara melakukan network request, melakukan parsing terhadap response JSON dari network, serta menyimpan data ke dalam database SQLite. Kamu juga akan mendapatkan pengenalan tentang penggunaan Dart streams.

Terakhir, bagian ini akan membahas lebih dalam topik penting mengenai app state, yang menentukan di mana dan bagaimana data pada UI diperbarui ketika pengguna berinteraksi dengan aplikasi.

Bagian V: Bekerja dengan Firebase Cloud Firestore

Dalam hal menyimpan data di cloud, kamu bisa membangun backend sendiri atau memanfaatkan sistem yang sudah ada dan memang dirancang khusus untuk kebutuhan tersebut.

Bagian ini akan menjelaskan cara menggunakan Firebase Cloud Firestore untuk mengimplementasikan fitur messaging ke dalam aplikasi. Kamu akan mempelajari cara mengintegrasikan Firebase ke dalam project, menyiapkan authentication, serta membuat query untuk mengisi UI.

Bagian VI: Testing Aplikasi Flutter

Membangun aplikasi memang menyenangkan, tetapi dalam prosesnya kamu akan menambahkan fitur, menyesuaikan alur, dan memperbaiki bug. Lalu bagaimana memastikan bahwa serangkaian perubahan tidak menimbulkan bug atau masalah baru pada versi sebelumnya? Di sinilah testing berperan. Testing membantu mengurangi risiko munculnya masalah pada aplikasi yang sudah ada dan mencegah terjadinya regresi.

Pada bagian ini, kamu akan mempelajari unit test dan widget test. Kamu akan melihat bagaimana unit test sangat cocok untuk menjaga business logic tetap terkendali. Terakhir, kamu akan belajar memanfaatkan widget test untuk memverifikasi bahwa UI widgets dirender sesuai dengan yang diharapkan.

Bagian VII: Deployment

Membangun aplikasi untuk perangkatmu sendiri memang menyenangkan; membagikannya ke seluruh dunia tentu lebih menyenangkan lagi!

Pada bagian ini, kamu akan mempelajari langkah-langkah dan proses untuk merilis aplikasi ke iOS App Store dan Google Play Store. Kamu juga akan melihat cara menggunakan aset yang spesifik untuk masing-masing platform di dalam aplikasi.