Skip to content

ThuyenPVT/flutter_clean_architecture

 
 

Repository files navigation

TDD Clean Architecture for Flutter


Clean Architecture Onion

Architecture Proposal




Folder structure

lib/
    data/                         <--- data layer
        models/                      <-- Models are entities with some additional functionality added on top, serialized and deserialized to/from JSON.
        datasources/                <-- CRUD data (Ex: Fetch data from API, fetch cached data from DB, location from device...)
        repositories/                 <-- repositories (retrieve data, heavy processing etc..)
    domain/                       <--- domain layer (business and enterprise)
        entities/                   <--- enterprise entities (core classes of the app)
          user.dart                   <-- example entity
          manager.dart                <-- example entity
        usecases/                   <--- business processes e.g. Login, Logout, GetUser, etc..
          login_usecase.dart          <-- example usecase extends `UseCase`
        repositories/               <--- abstract classes that define functionality for data layer
    pages/                          <--- presentation layer
        page_name/                        <-- pages name folder
          page_name.dart                  <-- page widget
          widgets/                      <-- custom widgets
          bloc/                        <-- BLoC, MVVM, MVP...
    main.dart                     <--- entry point

About

Flutter Clean Architecture

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 95.2%
  • Ruby 2.3%
  • Swift 1.3%
  • Kotlin 1.1%
  • Objective-C 0.1%