Lewati ke konten utama

Flutter

Artikel ini dibuat oleh Kaesa Lyrih dalam mengerjakan project, yang berisikan masalah, tips, dan trik, dan beberapa saran praktik terbaik (best practice) yang ditemukan. Anda dapat mengikutinya atau membacanya sebagai hiburan.

Gunakanlah fvm (Flutter Version Manager) supaya mudah dalam berganti-ganti versi flutter. Ini mirip dengan nodejs saya lebih baik menggunakan nvm untuk mengelola versi nodejs pada perangkat kerja saya.

Karena saya menggunakan windows jadi saya menggunakan ini:

choco install fvm

Check apakah sudah terpasang dengan baik:

fvm --version

Pergi ke project flutter kalian, dan ketik perintah:

fvm use stable

Perintah di atas akan membuat berapa folder dan file configuration:

# Ini folder berisi symlink flutter sdk dll.
.fvm/
- fvm_config.json
# Ini adalah file konfigurasi
.fvrc

Oh yaa jangan lupa tambahkan .fvm/ pada .gitignore. Karena tidak dibutuhkan oleh device lain. Yang penting itu adalah file .fvrc ini berisi informasi SDK Flutter apa yang digunakan.

Nah untuk mengecek bisa menggunakan perintah berikut:

fvm doctor
fvm flutter doctor

Default Flutter Installation​

flutter doctor -v
flutter clean
flutter upgrade --force # upgrade paksa

Membuat Proyek Flutter​

flutter create --org id.my.charapon --android-language kotlin --ios-language swift --platforms=web,android,ios kaesa_app

Build apk​

flutter build apk
flutter build apk --obfuscate --split-debug-info=build/app/outputs/symbols

Build Runner​

build_runner watch​

Selalu memantau perubahan, jadi tidak perlu menjalankan perintah build ulang.

Before:

flutter pub run build_runner watch --delete-conflicting-outputs

After:

dart run build_runner watch --delete-conflicting-outputs

build_runner build​

Hanya sekali melakukan build, tanpa memantau perubahan yang terjadi ada kode, jadi lebih ringan. Tapi perlu menjalankan perintah build untuk mengimplementasikan perubahan.

Before:

flutter pub run build_runner build --delete-conflicting-outputs

After:

dart run build_runner build --delete-conflicting-outputs

Git​

Git Commit​

Sebelum commit sebaiknya fix import terlebih dahulu sampai 3x. Shortcut: CTRL + LEFT SHIFT + P nanti akan form search seperti ini > ... lalu cari atau ketik > fix all imports.

(feature) git checkout dev
(dev) git fetch --all
(dev) git pull --all
(dev) checkout profile
(profile) git rebase origin/dev # solusi selain migrate
resolve conflic via VSCode
(profile) git push -f
git log --oneline --graph
git checkout -b <nama-branch> # ganti branch + membuat branch baru
git checkout <nama-branch> # hanya ganti branch

Aturan penulisan branch untuk Kaesa:

  • jika fiturnya tidak tergantung dengan perannya (role)
    • feature/app
  • jika fiturnya hanya dimiliki oleh user dengan peran (role) sebagai admin
    • feature/admin/list-user
    • feature/admin/edit-waste-price
    • feature/admin/report

Package: Firebase​

Firebase membutuhkan flutter.minSdkVersion = 19. Jadi ubah versinya pada path C:\Development\flutter\packages\flutter_tools\gradle, temukan file yang namanya flutter.gradle, buka dan ubah kode flutter.minSdkVersion = 16 menjadi 19.

/** flutter/packages/flutter_tools/gradle/flutter.gradle */
static int minSdkVersion = 16 // Defaultnya
static int minSdkVersion = 20 // Diubah karena BLOC minimal itu 19.

/** flutter\packages\flutter_tools\gradle\src\main\groovy\flutter.groovy*/
/** Sets the minSdkVersion used by default in Flutter app projects. */
static int minSdkVersion = 19 // Default flutter versi 3.13.1

Package: flutter_gen​

fluttergen -c pubspec.yaml

Package: flutter_native_splash​

dart run flutter_native_splash:create

Clean Architecture​

Dari datasoruce bisa local atau remote.

  • local = offline atau database local
  • remote = online atau api lalu ke repository > usecase > bloc > page/form.

Package cached_network_image​