The purpose of this project is to consolidate some of the learned insights throughout the years about the Clean Architecture principles and reflect those lessons on Android, taking advantage of the Kotlin programming language features too.
This project summarises some of the general use cases and demands on a typical production project using: Jetpack Compose, Functional Programming,MVVM, Kotlin Coroutines and Kotlin Flows (check the branches section for more information).
And two extra modules:
There are three options depending on different tech-stack desired. The latest codebase will be updated in master. These are the three options available (all of them maintained):
There are some highlights:
Given | When | Thencode presentation order, in order to give a more structured style.
I opted to use three types of approaches:
Tests in Isolation, where it's possible to mock and set any content, UI state, etc. Which allows to emulate very specific edge cases.
In the two first types of tests I used Robot Pattern to improve cleanliness and ease of readability. More information in my RobotPattern Medium Article!
Copyright 2022 Fernando Prieto Moyano Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.