Skip to content

✨ In this project I tried showcasing how to build an Android Application in Jetpack Compose with clean architecture and MVVM using some of the jetpack libraries with Kotlin Coroutines & Dagger Hilt.

License

Notifications You must be signed in to change notification settings

felipecastilhos/pokedex-android

Repository files navigation

Project logo

Pokédex Android

An android application architecture exploration in compose

If this project helps you in anyway, show your love ❤️ by putting a ⭐ on this project

Project License WCAG WAI Code Style Android Supported API

About Android Pokedex project

Hello there, In this project I tried showcasing how to build an Android Application in Jetpack Compose with clean architecture and MVI using some of the jetpack libraries with Kotlin Coroutines & Dagger Hilt. This App is using the PokeApi as a remote data source.

This app is based on the Guide to app architecture article, Kotlin 1.5, and coroutine. I also used some android architecture components like Flow, ViewModel.

⚠️ Just warning right now I building it as MVVM so I can migrate it to MVI as soon I have features enough implemented

You can check my short term backlog in my Github Projects here

Project structure

project
    | buildSrc //Project gradle dependencies configurations - Ex.: versions and libs - and gradle dsl extensions

    | app //Main application module
        | features //project features
            | data //Feature remote and local data source
            | di //feature independency injection modules
            | repository //data access abstractions
            | usecase //Business rules abstractions
            | viewmodel //state of the ui data
        | core //architecture and utility classes
            | coroutines //abstraction classes, helper classes and extensions to work with coroutines
            | datasource //abstraction classes, helper classes and extensions to work with datasources
            | di //architectural dependency injection modules and utility classes
            | logs //helper classes and extensions to work with logs

Libraries Used

  • ViewModel - store and manage UI-related data in a lifecycle conscious way
  • Jetpack Compose - describe ui components with declarative functions
  • Material - Material Components.
  • Coroutine - performs background tasks
  • Flows - for asynchronous data streams
  • Coil - An image loading library for Android backed by Kotlin Coroutines
  • Moshi - Moshi is a modern JSON library for Android, Java and Kotlin. It makes it easy to parse JSON into Java and Kotlin classes
  • Retrofit- A type-safe HTTP client for Android and Java
  • OkHttp - A network application
  • Dagger Hilt - dependency injector
  • Room - Save data in a local database
  • Espresso - UI test
  • Junit - unit tests
  • Truth - Makes your test assertions and failure messages more readable
  • Mockk - Mocking library for kotlin
  • Detekt - a static code analysis tool for the Kotlin programming language
  • KTLint - Kotlin linter in spirit of feross/standard (JavaScript) and gofmt (Go).
  • Gradle Kotlin Plugin - Gradle scripts in Kotlin
  • Timber - Small log library based on Android SDK log

About

✨ In this project I tried showcasing how to build an Android Application in Jetpack Compose with clean architecture and MVVM using some of the jetpack libraries with Kotlin Coroutines & Dagger Hilt.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages