/dogedex

Application that displays a list of dogs, display detail, scan dogs with AI provides with python using camera X.

Primary LanguageKotlin

kotlin Android API

Dog Recognizer

This application was developed by modules feature.

⭐ Features

  • Display dogs previously save in the api
  • Set dogs as favorite
  • Display favorite dogs
  • Register
  • Login
  • Logout
  • Scan dog with camera x
  • Dog detail

🏃 For run the app just clone the repository and execute the app on Android Studio.

Requirements to install the app

  • Use phones with Android Api 23+
  • Having an internet connection
This application was developed using Kotlin and uses the following components:
  • Kotlin based, Coroutines + Flow for asynchronous.
  • Coroutines
  • Clean architecture (Domain, Data, Presentation)
  • MVVM
  • Repository pattern
  • StateFlow
  • Navigation component
  • Dagger Hilt (Dependency injection)
  • Unit testing (Truth by google, coroutines tests)
  • Moshi - A modern JSON library for Kotlin and Java.
  • Retrofit2 & OkHttp3 - Construct the REST APIs.
  • Data store
  • Camera X
  • Permissions
  • Coil images

Screenshots Light theme

Home Detail Favorite Log in Sign in Splash
Home Detail Favorite Login Sign in Splash

🎯 Architecture

The application is built using Clean Architeture pattern based on Architecture Components on Android. The application is divided into three layers:

Clean Arquitecture

https://user-images.githubusercontent.com/24237865/77502018-f7d36000-6e9c-11ea-92b0-1097240c8689.png

  • Domain: This layer contains the business logic of the application, here we define the data models and the use cases.
  • Data: This layer contains the data layer of the application. It contains the database, network and the repository implementation.
  • UI: This layer contains the presentation layer of the application like fragment, activity, viewmodel etc.

Bikcodeh