GithubHelp home page GithubHelp logo

imamabdulazis / fluttercleanarchitecture Goto Github PK

View Code? Open in Web Editor NEW
53.0 3.0 17.0 1.47 MB

This is implementation clean architecture by Uncle Bob. We can implementation this project to make application with many module and component like Dio, RxDart, Bloc and others.

Home Page: https://imun.gitbook.io/flutter

License: MIT License

Kotlin 0.59% Ruby 1.27% Swift 0.78% Objective-C 0.04% Dart 97.33%
datasource architecture dio flutter-bloc-pattern flutter android ios swift kotlin

fluttercleanarchitecture's Introduction

Introduction

This is the implementation of clean architecture by Uncle Bob. We can implement this project to make applications with many modules and components. First, we must prepare some libraries for supporting our project like an injector, API consumes like dio, and many other libraries we must install. In this case, I made a Facebook clone with rest API and you can clone it anytime and feel free to wait for my update app to make sure the app works properly.

Clean Architecture combines a group of practices that produce systems with the following characteristics:

  • Testable
  • UI-independent (the UI can easily be changed without changing the system)
  • Independent of databases, frameworks, external agencies, and libraries

Photo from  https://blog.cleancoder.com

Why?

The general objective is to decrease the application coupling so that we can reuse business rules whenever we want.

We need to test each business rule for the application in isolation and ensure that each rule is being applied without interference from any externalities, or objects that we have no control over, but this is something that developers already know.

We need each layer of the application to be isolated and not have knowledge of how they work, for example, the core of the application has no need to know which database that it needs to access, or which SPI needs to make a request or something it just needs to understand about the business that is being built.

If we have a version of the WEB application and it will have to be built new or modified the same way for desktop or mobile, this will be a difficult task. If we have a clean architecture, it shouldn't be a problem.

{% embed url="https://www.youtube.com/watch?v=2dKZ-dWaCiU" %} Video by IT konekt {% endembed %}

Reviews

  • Great forum to ask and develop something new. (link)
  • Thank you for sharing the wonderful tutorial from Rezky Aulia Pratama. (link)
  • Thank you for sharing a lot of great tutorials Reso Coder. (link)
  • Great simple code tutorial by Filled Stack. (link)
  • Found a great article on how to handle DIO interceptor. (link)
  • Great article about clean architecture in React by Luís Junqueira. (link)

Share

Share URL: https://imun.gitbook.io/flutter/

fluttercleanarchitecture's People

Contributors

imamabdulazis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

fluttercleanarchitecture's Issues

version solving failed.

So, because clean_architect depends on both flutter_test any from sdk and build_runner ^1.11.1, version solving failed.
pub get failed (1; So, because clean_architect depends on both flutter_test any from sdk and build_runner ^1.11.1, version solving failed.)

Full Error logs.

Because flutter_bluetooth_basic >=0.1.6 depends on rxdart ^0.26.0 and no versions of flutter_bluetooth_basic match >0.1.5 <0.1.6, flutter_bluetooth_basic >0.1.5 requires rxdart ^0.26.0.
And because flutter_bluetooth_basic 0.1.5 depends on json_annotation ^3.0.1, flutter_bluetooth_basic >=0.1.5 requires rxdart ^0.26.0 or json_annotation ^3.0.1.
Because pubspec_parse >=1.1.0 depends on json_annotation ^4.1.0 and pubspec_parse >=1.0.0 <1.1.0 depends on json_annotation ^4.0.0, pubspec_parse >=1.0.0 requires json_annotation ^4.0.0.
Thus, if flutter_bluetooth_basic >=0.1.5 and pubspec_parse >=1.0.0 then rxdart ^0.26.0.
And because build_runner >=1.12.0 depends on pubspec_parse ^1.0.0, if flutter_bluetooth_basic >=0.1.5 and build_runner >=1.12.0 then rxdart ^0.26.0.
And because build_runner >=0.10.1 <1.12.0 depends on web_socket_channel ^1.0.9 and test >=1.16.6 depends on web_socket_channel ^2.0.0, if flutter_bluetooth_basic >=0.1.5 and build_runner >=0.10.1 and test >=1.16.6 then rxdart ^0.26.0.
Because bloc_test >=8.0.0-nullsafety.5 depends on test ^1.16.0 and test >=1.16.0-nullsafety.19 <1.16.6 depends on test_api 0.2.19, bloc_test >=8.0.0-nullsafety.5 requires test_api 0.2.19 or test ^1.16.6.
Thus, if flutter_bluetooth_basic >=0.1.5 and build_runner >=0.10.1 and bloc_test >=8.0.0-nullsafety.5 then rxdart ^0.26.0 or test_api 0.2.19.
And because every version of flutter_test from sdk depends on test_api 0.4.2 and clean_architect depends on bloc_test ^8.0.0, if flutter_bluetooth_basic >=0.1.5 and build_runner >=0.10.1 and flutter_test any from sdk then rxdart ^0.26.0.
And because clean_architect depends on both flutter_bluetooth_basic ^0.1.5 and rxdart ^0.23.1, build_runner >=0.10.1 is incompatible with flutter_test from sdk.
 Flutter (Channel stable, 2.5.3, on macOS 11.6.1 20G224 darwin-x64, locale
    en-TR)
    • Flutter version 2.5.3 at /Users/fersmart/SDK_all/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18116933e7 (7 weeks ago), 2021-10-15 10:46:35 -0700
    • Engine revision d3ea636dc5
    • Dart version 2.14.4

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.