Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Clean Architecture with Flutter @ Flutter Interact Pescara

Clean Architecture with Flutter @ Flutter Interact Pescara

When I first started experimented with Flutter, the first diffculty I faced was...having a big source file with hundreds of lines of code, highly indented, mixing UI and logic.

After months of usage, I am now applying Clean Architecture principles to my projects, and in this talk I've presented my way of having a clean structured codebase in my Flutter projects.

Gregorio Palamà

December 11, 2019
Tweet

More Decks by Gregorio Palamà

Other Decks in Programming

Transcript

  1. gregoriopalama - Clean Architecture with Flutter Developer for passion Project

    manager Community Manager @ About me Gregorio Palamà
  2. gregoriopalama - Clean Architecture with Flutter Developer for passion Project

    manager Community Manager @ About me Gregorio Palamà
  3. gregoriopalama - Clean Architecture with Flutter Developer for passion Project

    manager Community Manager @gregoriopalama About me Gregorio Palamà
  4. gregoriopalama - Clean Architecture with Flutter Flutter UI toolkit Fast

    development Native performance Cross platform
  5. gregoriopalama - Clean Architecture with Flutter Flutter UI toolkit Fast

    development Native performance Cross platform Uses Dart
  6. gregoriopalama - Clean Architecture with Flutter Patterns - BLoC Business

    Logic Component Stream of events Great Dart support for streams
  7. gregoriopalama - Clean Architecture with Flutter Patterns - BLoC Business

    Logic Component Stream of events Great Dart support for streams How to organize streams???
  8. gregoriopalama - Clean Architecture with Flutter Libraries - Provider Dependency

    Injection State management How to organize the code???
  9. Single Responsibility Principle Every module or class should have responsibility

    over a single part of the functionality provided by the software
  10. Liskov Substitution Principle Objects in a program should be replaceable

    with instances of their subtypes without altering the correctness of the program
  11. Dependency Inversion Principle High-level modules should not depend on low-level

    modules. Both should depend on abstractions Abstractions should not depend on details. Details should depend on abstractions
  12. gregoriopalama - Clean Architecture with Flutter Data Domain Presentation API

    Data source Raw Data Repository Models Use cases Entities
  13. gregoriopalama - Clean Architecture with Flutter Data Domain Presentation API

    Data source Raw Data Repository Models Use cases Entities Presentation logic
  14. gregoriopalama - Clean Architecture with Flutter Data Domain Presentation API

    Data source Raw Data Repository Models Use cases Entities Presentation logic
  15. gregoriopalama - Clean Architecture with Flutter Data Domain Presentation API

    Data source Raw Data Repository Models Use cases Entities Presentation logic Widgets
  16. gregoriopalama - Clean Architecture with Flutter Data Domain Presentation API

    Data source Raw Data Repository Models Use cases Entities Presentation logic Widgets BLoC
  17. gregoriopalama - Clean Architecture with Flutter Data Domain Presentation API

    Data source Raw Data Repository Models Use cases Entities Presentation logic Widgets IoC Dependency Injection
  18. gregoriopalama - Clean Architecture with Flutter Data Domain Presentation API

    Data source Raw Data Repository Models Use cases Entities Presentation logic Widgets IoC Dependency Injection (Provider)