Skip to content

MVI Jetpack Compose application

License

Notifications You must be signed in to change notification settings

cmunaro/CountryInfo

Repository files navigation

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

About

MVI Jetpack Compose application

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages