Belajar Flutter bagi Pengembang Native

Sebagai developer yang sudah terbiasa dengan Java, Kotlin, dan Swift, kamu mungkin sudah sangat akrab dengan XML layout di Android dan Storyboard di iOS. Tapi ketika harus membangun aplikasi lintas platform, muncul pertanyaan besar: Haruskah saya belajar Flutter? Jawabannya: ya, jika kamu ingin efisiensi, modularitas, dan satu codebase untuk dua platform utama.

Blog ini adalah roadmap belajar Flutter yang dirancang khusus untuk kamu yang berasal dari dunia native. Kita akan transisi secara bertahap, tanpa membuang keahlian yang sudah kamu miliki.

🧠 Tahap 1: Memahami Paradigma UI Baru

Flutter menggunakan pendekatan declarative UI berbasis Widget Tree. Ini mirip dengan View Hierarchy di Android atau Scene Graph di iOS.

  • Container = View
  • Text = TextView / UILabel
  • Column = LinearLayout (vertical)
  • Row = LinearLayout (horizontal)
  • Stack = FrameLayout / ZStack

Mulailah dengan membangun layout sederhana menggunakan Scaffold, AppBar, dan BottomNavigationBar. Anggap saja ini seperti membuat Activity atau ViewController.

📐 Tahap 2: Layout & Responsivitas

Kalau kamu terbiasa dengan match_parent, wrap_content, dan AutoLayout, Flutter punya padanannya:

  • Gunakan Expanded, Flexible, dan SizedBox untuk kontrol ukuran.
  • MediaQuery dan LayoutBuilder membantu membuat UI yang adaptif.
  • Hindari dulu animasi atau gesture kompleks—fokus pada layout yang familiar.

Tips: Buat layout nested seperti XML-style agar transisi terasa lebih natural.

🔄 Tahap 3: Navigasi & Lifecycle

Navigasi di Flutter menggunakan Navigator.push() dan pop(), mirip dengan Intent di Android atau segue di iOS.

Lifecycle-nya juga punya padanan:

  • initState() = onCreate() / viewDidLoad()
  • dispose() = onDestroy() / deinit
  • didChangeDependencies() = mirip onResume() atau viewWillAppear()

Dokumentasikan perbandingan lifecycle ini untuk referensi pribadi—sangat membantu saat debugging.

🔥 Tahap 4: Integrasi Firebase & Plugin

Flutter punya ekosistem plugin yang matang, terutama untuk Firebase:

  • firebase_core, firebase_auth, cloud_firestore, firebase_analytics
  • Setup-nya mirip dengan build.gradle dan Info.plist, tapi lewat pubspec.yaml
  • Modularisasi setup agar bisa reuse di proyek lain

Tips: Bandingkan setup Firebase di Flutter vs native untuk insight tambahan.

🧮 Tahap 5: State Management Bertahap

Mulai dari yang paling sederhana:

  • setState() → cocok untuk state lokal
  • Provider → untuk state global yang ringan
  • Riverpod atau Bloc → untuk aplikasi kompleks dan scalable

Jangan langsung lompat ke Bloc atau Redux—biar nggak over-engineered di awal.

🧱 Tahap 6: Modularisasi & Struktur Proyek

Karena kamu suka arsitektur modular, Flutter bisa disusun seperti ini:

Kode

lib/
├── core/
├── shared/
├── features/
│   ├── auth/
│   ├── dashboard/
│   └── settings/

Gunakan pubspec.yaml seperti kamu pakai libs.versions.toml di Gradle. Buat komponen reusable seperti CustomButton, AppTextField, dll.

🔌 Tahap 7: Native Bridge & Optimasi

Kalau kamu butuh akses ke fitur native (sensor, BLE, dll), gunakan Platform Channels:

  • Flutter → Kotlin/Swift → native API
  • Bisa modularisasi channel agar tetap maintainable

Optimasi ukuran APK/IPA:

  • flutter build apk --split-per-abi
  • Deferred loading untuk fitur jarang dipakai
  • Kompres asset dan gunakan tree-shaking

🎯 Kesimpulan: Flutter Bukan Pengganti, Tapi Pelengkap

Flutter bukan berarti meninggalkan Java, Kotlin, atau Swift. Justru, kamu bisa memanfaatkan semua keahlian native untuk membangun aplikasi lintas platform yang efisien dan scalable. Dengan satu codebase, kamu bisa hemat waktu, biaya, dan tenaga—tanpa mengorbankan kualitas.

Kediri, 8 Sep 2025

Emulator Android Studio Tidak Mau Jalan

Saya baru saja pindah laptop dari yang sebelumnya pakai thinkpad x200 dan macbook ke thinkpad t480s, saya pikir menjalankan emulator Android adalah hal sepele yang langsung jalan seperti sebelumnya. Ternyata tidak. Di tengah proses pengujian aplikasi, saya justru terjebak dalam masalah yang membuat saya hampir menyerah: emulator Android tidak mau jalan sama sekali.

Berikut kronologi dan poin-poin kesulitan yang saya hadapi, serta bagaimana akhirnya saya bisa menemukan solusi yang bekerja.

⚠️ 1. Emulator Selalu Berhenti Saat Proses Start

Setiap kali saya mencoba menjalankan emulator dari Android Studio, proses hanya sampai tahap “starting emulator” lalu berhenti begitu saja. Tidak ada error fatal, hanya pesan samar seperti “started new renderthread total 17” sebelum jendela emulator hilang tanpa jejak. Tidak ada log yang jelas, tidak ada crash report. Hanya mati begitu saja dengan pesan terminated.

🔧 2. Virtualization Sudah Diaktifkan di BIOS

Langkah pertama tentu saya cek BIOS. Di ThinkPad T480s, saya pastikan Intel Virtualization Technology dan VT-d sudah aktif. Tapi emulator tetap tidak bisa dijalankan. Ini membuat saya curiga bahwa masalahnya bukan di level BIOS, melainkan di lapisan software atau driver.

📦 3. Install Semua Komponen Emulator di SDK Manager

Saya buka Android Studio → SDK Manager → SDK Tools. Di sana saya install semua yang berkaitan dengan emulator:

  • Android Emulator
  • Emulator Hypervisor Driver
  • Platform SDK terbaru

Namun, hasilnya nihil. Emulator tetap tidak bisa dijalankan. Bahkan mencoba versi SDK yang lebih lama pun tidak membantu.

🧪 4. Coba Buat AVD Berbasis ARM—Tetap Gagal

Saya cari referensi dan menemukan mungkin masalahnya ada di image x86_64, jadi saya coba buat AVD berbasis ARM64 + Google APIs. AVD tidak berhasil dibuat karena setelah berbagai cara tidak ditemukan versi ARM.

🎛️ 5. Uji Coba Mode Grafis: Automatic, Hardware, Software

Saya mulai bereksperimen dengan konfigurasi grafis di AVD Manager:

  • Automatic → emulator tetap mati
  • Hardware → muncul warning bahwa GPU tidak mendukung Vulkan
  • Software → akhirnya emulator bisa jalan!

✅ 6. Solusi: Mode Software adalah Penyelamat

Setelah semua upaya gagal, saya ubah mode grafis emulator ke Software. Hasilnya? Emulator akhirnya bisa berjalan stabil. Memang performanya tidak secepat hardware acceleration, tapi cukup untuk debugging dan pengujian UI.

🎯 Kesimpulan

Masalah emulator Android yang tidak mau jalan bisa berasal dari banyak lapisan: BIOS, driver GPU, SDK configuration, bahkan mode grafis. Dalam kasus saya, mode grafis hardware (Vulkan/OpenGL) tidak kompatibel dengan GPU Intel UHD, dan hanya mode software yang bisa menyelamatkan.

Jika kamu mengalami hal serupa, jangan menyerah. Coba ubah mode grafis, pastikan virtualisasi aktif, dan jangan ragu untuk bereksperimen dengan AVD berbasis ARM atau x86_64. Kadang solusi paling sederhana—seperti memilih mode software—adalah yang paling efektif.

P9, 29 Agustus 2025

Blog referensi konten-konten islam

Sejak hari Jumat kemarin (16 Maret 2018) saya pindahkan konten-konten islami ke blog tersendiri di sini http://islam.alfannas.com. Pemindahan ini berkaitan dengan rencana jangka panjang saya yang ingin membuat applikasi Android berkonten islami kedepan.

Salah satu aplikasi android berkonten islami yang sudah saya rencanakan adalah kumpulan Doa yang ada di Al-Qur’an dan Hadis.

Memangnya belum ada aplikasi android kumpulan doa dari Al-Qur’an dan Hadis?. Ada, banyak di Play store, tapi saya ingin buat sendiri, rasanya lebih puas dan bisa menambahkan fitur yang saya inginkan.

Salah satu fitur yang saya ingin ada di app itu adalah fitur untuk mengelompokkan doa berdasarkan kategori keinginan kita. Misal kumpulan doa setelah sholat. Orang yang satu dan yang lainnya kan bisa berbeda preferensi doanya yang mana saja yang ingin dibaca, nah disini saya ingin pengguna bisa memilih doa mana saja yang ingin dimasukkan ke kategori mana saja yang sudah dibuat.

Untuk membuat app doa kan butuh data doa-doa, nah disini saya mulai mengumpulkan doa yang ada di Al-Qur’an dan Hadis, kemudian saya kumpulkan di http://islam.alfannas.com . Pengennya ada keterangan juga seperti asbabun nuzul atau latar belakang munculnya Doa tersebut, misalnya doa tersebut diucapkan oleh Nabi siapa, dalam kondisi apa, trus terkait dengan apa, dsb. Kalau ada informasi ini kan menarik dan kita lebih meresapi maknanya.

Ketika nanti sudah terkumpul cukup di http://islam.alfannas.com, baru nanti lanjut ke app android nya.

Sementara saat ini app dari Waluku Studio yang berkaitan dengan konten islam di play store sudah ada dua yaitu Yasin dan Tahlil kemudian yang satunya Mizwandroid

Semoaga app kumpulan doa ini bisa cepat terealisasi dan memberikan manfaat ke banyak pengguna.. aamiin.

Release app: Astroquiz – Game kuis bertemakan Astronomi berbahasa Indonesia

Aplikasi yang telah dirilis oleh Waluku Studio kali ini tentang permainan kuis. Tema yang dipilih adalah tentang Astronomi.

Materi kuis terdiri dari berbagai topik dalam Astronomi seperti Bintang, Kosmologi, Tata Surya, hingga Astronomi Populer. Pengguna tinggal pilih topik mana yang ingin dimainkan.

Jumlah pertanyaan yang ada sampai tulisan ini dibuat ada sekitar 60 pertanyaan. Jumlah pertanyaan ini akan terus bertambah dan pengguna tidak perlu install ulang aplikasi, karena pertanyaan akan tersinkronisasi secara otomatis dengan server. Oleh karena itu, dibutuhkan koneksi internet ketika membuka aplikasi untuk sinkronisasi pertanyaan kuis.

Selain menjawab pertanyaan pada kuis, kita juga bisa mendapat wawasan baru tentang Astronomi. Beberapa pertanyaan kuis memiliki penjelasan tentang jawaban yang benar.

Beberapa pertanyaan kuis mungkin sangat populer karena sering ditanyakan tiap tahun karena terkait dengan berita hoax yang beredar di masyarakat.

Bagi yang tertarik untuk mencoba bisa langsung ke link google play berikut:

https://play.google.com/store/apps/details?id=com.walukustudio.astroquiz

Tahun Baru, Release App Baru

Dulu ketika mengoperasikan teropong di Observatorium Bosscha, pasti akan menulis di sebuah logbook. Yang ditulis berupa informasi apa aja yang terjadi selama pengamatan. Dimulai dengan membuka atap atau kubah teropong, menyalakan system teleskop, mengganti lensa okuler (eyepiece), kondisi cuaca tiap saat terupdate, dll. Semuanya ditulis lengkap dengan informasi jam-nya untuk setiap item.

Berawal dari aktifitas nge-logbook itu akhirnya kepikiran buat app ini. Kegunaannya sangat simple, cuma buat menulis log, nanti informasi tanggal dan jam akan ditambahkan secara otomatis untuk masing2 log. Kalau log diupdate maka akan ada informasi waktu kapan log itu diupdate. Log-log yang sudah kita tulis bisa di-export ke CSV file atau share ke WhatsApp, email, dll.

Selain itu bisa juga buat nulis log harian, misal untuk catat progress project yang kita kerjakan atau kerjaan lain sehari-hari yang perlu kita catat progressnya. Bisa juga buat nyatet progress belajar misal kita sedang belajar tentang suatu hal.

Sebenarnya ada banyak app serupa di play store, tapi ada aja yang kurang sreg, misal tampilannya kurang cocok, ada fitur yang gak ada padahal perlu dan ada juga yang firunya banyak dan mewah tapi gak perlu dan bikin berat. macem-macem.

Fitur Lognote:
  • Nulis Log dan Note dengan timestamp otomatis
  • Export log ke file CSV
  • Share Log dan Note ke WhatsApp, Email, Google Drive dll.
  • Search Log dan Note

Screenshot