App Architecture - Laurax64/StudyApp GitHub Wiki

Single Sources of Truth

  • Each data type has a SSOT assigned to it.
  • Only the SSOT can modify or mutate the data.
  • The SSOT exposes the data using an immutable type, and to modify the data, the SSOT exposes functions or receives events.

Unidirectional Data Flow

  • State flows in only one direction.
  • The events that modify the data flow in the opposite direction.

Modularization :arrows_counterclockwise:

Dependency Injection

  • Hilt for non-assisted dependency injection
  • Dagger for assisted dependency injection :arrows_counterclockwise: