-
Notifications
You must be signed in to change notification settings - Fork 6
Clean architecture koin #58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
agustinkoll-rootstrap
merged 18 commits into
master-koin
from
feature/clean_architecture_koin
Feb 25, 2022
Merged
Clean architecture koin #58
agustinkoll-rootstrap
merged 18 commits into
master-koin
from
feature/clean_architecture_koin
Feb 25, 2022
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Remove flavors from gradle
Add Koin Add uses cases
Update base activity and base view model Handle API errors
…rootstrap/android-base into feature/clean_architecture_koin
added test libraries renamed user dto
# Conflicts: # app/build.gradle # app/src/main/java/com/rootstrap/android/ui/activity/main/SignInActivityViewModel.kt # app/src/main/java/com/rootstrap/android/ui/activity/main/SignUpActivityViewModel.kt # app/src/main/java/com/rootstrap/android/util/UtilModule.kt # app/src/test/java/com/rootstrap/android/SignInActivityViewModelTest.kt # app/src/test/java/com/rootstrap/android/SignUpActivityViewModelTest.kt # app/src/test/java/com/rootstrap/android/test/UnitTestBase.kt
marcossalto
approved these changes
Feb 15, 2022
@@ -2,4 +2,4 @@ | |||
# Comma-separated list of rules to disable (Since 0.34.0) | |||
# Note that rules in any ruleset other than the standard ruleset will need to be prefixed | |||
# by the ruleset identifier. | |||
disabled_rules=import-ordering,experimental:annotation | |||
disabled_rules=no-wildcard-imports,import-ordering,experimental:annotation |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
😍
amaury901130
approved these changes
Feb 16, 2022
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
awesome 🤘
I'd consider removing this branch/PR: |
ximenaperez
approved these changes
Feb 18, 2022
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
We added modular clean architecture with Koin for dependency management:
APP
This is the presentation module, also known as the user interaction layer. Here we manage activities, fragments, views and viewModels.
DATA
In this module we find a definition of the different data sources (local or remote).
The implementation of each repository.
Network and endpoints implementation.
Database implementation. (not implemented in this pr).
Test: We added example test to the View models mocking each use case.
Depends on:
DOMAIN
It's the layer where we manage the business models.
Depends on: No dependencies.
USE-CASES
This is the management layer of all the actions that the user can trigger. The business logic goes here. Every action that the user can make in the app has a use case.
Depends on:
There is an additional BUILDSRC module that we use to manage dependencies and versions. This module takes a system name that is recognized by the compiler and executed in the first instance before loading any other module.
We follow one of the basic principles of development to found the bases on the three following pillars:
SCALABLE
MAINTAINABLE
TESTABLE
Dependencies Chart: