Skip to content

geusan/flutter-clean-arch

Repository files navigation

flutter_clean_arch

A new Flutter project.

Objectitive

Make clean architectural flutter project.

Requirements

  • Flutter MVVM design pattern
  • 4 Layer architecture: Domain / Repository / Service(Usecase) / Presentation(View, ViewModel)

Pub libs

  • Dio: Http request
  • get_it: Dependency injection
  • injectable: I don't know well.. what it is.. i'm struggling now.
  • get: Page routers(can make named router easily)
  • provider: State management in viewmodel.(I had considered with RxDart with DI, it was too complex)
  • intl: i18n
  • shared_preferences, sqflite: local storage

Directory

- lib
    | - common: enums? (I'm thinking..)
    | - domain: model definition(with JsonSerializable)
    | - repository
        | - api: api_provider
            | - network: retrofit api defnition
            | - interceptors: dio interceptors
            | - endpoints.dart: remote server endpoints
        | - shared_preferences: local storage
        | - sqflite: local storage(pending...)
    | - screens: views and viewmodels
    | - services(usercase): business logic
    | - values: constants for design or anything
    | - di.dart: dependency injection config
    | - main.dart: main file

Discussion

  • Is it the best way about using GetX as page routes navigator?

Todo

  • Make auth screen for login(username and password)
  • Api(with go-clean-arch-chat-server)
  • Make chat socket example
  • Sqflite (saving messages) Template
  • Make unit test cases
  • Refactoring

Reference

About

flutter clean architecture tutorial

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published