Skip to content

0x384c0/Experiments-Android

Repository files navigation

github action

Description

A sample Android app that shows recent posts from internet forum.

Project Structure

Project structure was generated using ChatGPT

app - android app, that hosts all features
features - all app features
  feature_name - example of single feature
    data - module, that retrieves and stores data from the app's data sources
      entity - models, used in data layer
      mapper - maps data between domain and data
      repository - wrapper for API or database
      service - API implementation
    domain - module, that contains the core business logic of the app
      model - models, used in domain layer
      repository - wrapper for accessing data
      usecase - business logic omplementation
    presentation - module, that contains the code that adapts the domain layer to the Android framework
      components - App views
      data - models, used in ui layer
      mapper - maps data between domain and presentation
      navigation - controls transitions between screens

Modules

App has multiple features Each feature split in to 3 modules

  1. presentation - contains Android Presentation Layer
  2. domain - contains Domain layer with business logic
  3. data - contains Data layer with REST API requests

Communication between layers

  1. UI calls functions from ViewModel.
  2. ViewModel executes Use cases from Interactor.
  3. Use case obtains data from Repository
  4. Repository returns data from a Api.
  5. Information flows back to the UI to be displayed.

Test coverage

  1. data
  2. domain
  3. presentation
  4. ui

Used Tecnologies

  1. Jetpack Compose
  2. Coroutines
  3. Hilt
  4. Retrofit
  5. Gradle Kotlin DSL

Releases

No releases published

Packages

No packages published

Languages