george-theocharis / BookOfCain

This is a fan made diablo project to showcase Android technologies and best practices.
4 stars 0 forks source link

[BOC-0003] Project architecture, design and structure #3

Open jonnyPap opened 4 years ago

jonnyPap commented 4 years ago

This issue is created to open a conversation about the architecture and design of this project. As this starts as a training, "best practices", new technologies project some basic structuring decisions that need to be made (sure that's something that might, can, and probably will change in the future).

As a footing for the discussion I would like to suggest:

Let the discussion begin!

george-theocharis commented 4 years ago

What I would propose is to have a package by feature architecture where each feature has its sub-packages that follow the clean architecture paradigm. As for the architectural pattern to follow, a unidirectional MVI flow taking advantage of view models and coroutines would be enough in my opinion.

george-theocharis commented 4 years ago

Used the issue to import some basic libraries instead of the architecture. We need to start defining features to start contemplating architecture.

What I am thinking though is the below:

How does that sounds to you? I am not perfectly comfortable with flows so remains to be seen if the view model can observe such flow from the ui or it will lead to a memory leak.

jonnyPap commented 4 years ago

As a follow up to your proposals I run into an article that utilizes the MVI-MVVM architecture we are looking to implement and the setup proposed there seems very promising.

Take a look here and let me know what you think.