Skip to main content

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

Debugging Wireless​

adb tcpip 5555 # membuka port 5555
adb connect <ip-android:port> # adb connect 192.168.1.9:5555 - jika ingin konek
adb devices # melihat semua device yang terkoneksi
adb kill-server # mematikan server, dan menghapus juga device yang terlah terkoneksi

Debugging Wireless atau dengan Wi-Fi dengan mudah dilakukan untuk Android 11 untuk Android 10 ke bawah harus terkoneksi dengan USB Debugging dulu baru bisa terkoneksi dengan Debugging Wireless.

Debugging Wireless untuk Android 11 paling mudah dengan menggunakan QR Code yang ada pada Android Studio bagian emulator.


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​