Lewati ke konten utama

Flutter

Yeah, ini adalah artikel panduan untuk Kaesa Lyrih dalam mengerjakan project, yang berisikan masalah, tips, dan trik, dan beberapa saran praktik terbaik (best practice) yang ditemukan.

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​