android10 / Android-CleanArchitecture-Kotlin

This is a movies sample app in Kotlin, which is part of a serie of blog posts I have written about architecting android application using different approaches.
https://fernandocejas.com/2018/05/07/architecting-android-reloaded/
4.69k stars 935 forks source link

Other options for entity mapping? #95

Open ehsankalafchi opened 4 years ago

ehsankalafchi commented 4 years ago

In this sample there are at least three sets of Entites: Data layer entities (mapped to REST api or database: MoveEntity), Domain layer entities (Movie) and view layer entites (MovieView). For each entity to flow from data layer to view layer two mappers are needed. Two other mappers are needed for reverse direction, which are not provided in this sample because only read scenarios are implemented. It means that four mappers are involved in moving data through layers back and forth. Adding a new field require all of them to change as well. This can become a maintenance problem. I have two questions regarding this issue:

  1. Where is the best place to implement mapping logic?
  2. What are other options? (maybe some kind of automatic mapping?)
aaghan commented 4 years ago

it is just an example. You can use single entity class on all the layers you want or define the specific entity depending on each layer. I prefer to use the minimum number of entity unless the case of re-usability which makes easier for clean-code.

I've a case on creating the multiple entity for distinguished feature-modules, where I created the new entity in ViewModel of the base module where the feature module was required to be implemented