Skip to content

Latest commit

 

History

History
34 lines (29 loc) · 1.38 KB

README.md

File metadata and controls

34 lines (29 loc) · 1.38 KB

CountryInfo

Jetpack Compose application that let you search and see details of a country

screen screen

Stack

  • MVI-like architecture
  • Jetpack Compose (also UI tests)
  • Jetpack Navigation
  • Kotlin Flow
  • Apollo client to communicate with the GraphQl APIs
  • Koin for dipendency injection
  • Mockito && Google Truth && Turbine for unit tests

Structure

The application has one activity: MainActivity, from that activity the composition starts The code is structured as follow:

  • data containes the service layer
  • di containes the koin's modules
  • utils containes some helpers
  • ui:
    • theme containes the theme configurations
    • shared containes shared composables
    • screen containes all the screens

Every screen is sctructured as follow:

  • <name>Screen the screen composable function
  • <name>ViewModel the viewModel of the screen
  • components composables used by the screen (also personalization of shared composables)

The navigation inside the app is managed in CountryInfoNavHost, used inside MainActivity