Skip to content

Architecture

Ilya Stepanyuk edited this page Jun 18, 2022 · 2 revisions

Sources:

Project Structure

Core App

It is main core module - every module of project depends on it. Logic of this module is reused in every module. For example Mapper interface or selaed class for ValueEvent

Core modules

every core module contains the common logic, which is reused in other modules For example - core-ui contains UI logic with @Composable functions, which are reused in different parts of code.

  • don't implement when you can use api()

Feature module

  • new screen - new feature for it.
  • common logic in features - common core for this features

Feature Structure

  • Data layer:
    • Repository
    • Database source
    • Api source
    • Paging source and Paging mediators
    • Data layer Entities
    • Data Mappers
  • Domain layer:
    • Interactor
    • Domain Mapper
    • Domain Entities
  • UI layer:
    • View
    • Presenter (View Model)
    • UseCases
    • UI Entites
    • UI Mappers
Clone this wiki locally