Skip to content

Repository files navigation

Eder App

Flutter base project menggunakan:

  • Clean Architecture
  • BLoC
  • Dio
  • GoRouter
  • GetIt + Injectable
  • Freezed & Json Serializable
  • Flavor & Environment Configuration

Project Structure

lib/
│
├── app/
│   ├── router/
│   └── theme/
│
├── core/
│   ├── config/
│   ├── network/
│   ├── error/
│   ├── storage/
│   └── utils/
│
├── features/
│   └── feature_name/
│       ├── data/
│       ├── domain/
│       └── presentation/
│
├── injection/
│
├── bootstrap.dart
├── main_dev.dart
├── main_staging.dart
└── main_prod.dart

Architecture

Project menggunakan Feature First Clean Architecture.

Data Layer

Bertanggung jawab untuk:

  • API Call
  • Local Storage
  • Model Mapping

Domain Layer

Berisi:

  • Entity
  • Repository Contract
  • Use Case

Presentation Layer

Berisi:

  • UI
  • BLoC
  • Navigation

Environment

Project mendukung 3 environment:

.env.dev
.env.staging
.env.prod

Contoh:

APP_NAME=Eder Dev
BASE_URL=https://api-dev.example.com

Code Generation

Jalankan setelah membuat:

  • Freezed Model
  • Json Serializable Model
  • Injectable Registration
dart run build_runner build --delete-conflicting-outputs

Watch mode:

dart run build_runner watch --delete-conflicting-outputs

Install Dependency

flutter pub get

Run Application

Development

flutter run --flavor dev -t lib/main_dev.dart

Staging

flutter run --flavor staging -t lib/main_staging.dart

Production

flutter run --flavor prod -t lib/main_production.dart

Build APK

Development

flutter build apk --flavor dev -t lib/main_dev.dart

Staging

flutter build apk --flavor staging -t lib/main_staging.dart

Production

flutter build apk --flavor prod -t lib/main_prod.dart

Build App Bundle

Production

flutter build appbundle --flavor prod -t lib/main_prod.dart

Development Flow

  1. Create Feature
  2. Create Data Layer
  3. Create Domain Layer
  4. Create Presentation Layer
  5. Register Dependency
  6. Generate Code
  7. Add Route
  8. Implement UI

Notes

  • Jangan commit file .env
  • Simpan credential dan URL API di environment file
  • Semua dependency harus diregistrasikan melalui GetIt + Injectable
  • Gunakan feature-based structure untuk setiap module baru

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages