Skip to content

Dog Breeds is simple application based on mvvm architecture and repository pattern.

Notifications You must be signed in to change notification settings

irahulyadav/DogBreeds

Repository files navigation

Dogbreeds

A simple demo project for The Dogbreeds DB based on MVVM clean architecture.



App Features

  • Users can view list Dog Breeds.
  • Users can search for Dog Breeds
  • Users can click on any Dog Breeds to see the images

App Architecture

Based on mvvm architecture and repository pattern.

The app includes the following main components:

  • A local database that servers as a single source of truth for data presented to the user.
  • A web api service.
  • A repository that works with the database and the api service, providing a unified data interface.
  • A ViewModel that provides data specific for the UI.
  • The UI, which shows a visual representation of the data in the ViewModel.
  • Unit Test cases for API service

App Packages

  • data.local - contains
    • remote - contains the api classes to make api calls to server, using Retrofit.
    • db - contains the db classes to cache network data.
  • di - contains dependency injection classes, using Dagger2.
  • viewmodel - contains classes needed to display Activity and Fragment.
  • ui - contains classes needed to display Activity and Fragment.
  • repository - contains the repositiry classes to cache network data adn db operation.

App Specs

  • Minimum SDK 24
  • Java based (Kotlin version coming soon!)
  • MVVM Architecture
  • Android Architecture Components (LiveData, Lifecycle, ViewModel, Room Persistence Library, ConstraintLayout)
  • AndroidX androidx support libraries
  • RxJava2 for implementing Observable pattern.
  • Dagger 2 for dependency injection.
  • Retrofit 2 for API integration.
  • Okhhtp3 for implementing interceptor, logging and mocking web server.
  • Mockito for implementing unit test cases
  • Picasso for image loading.
  • Lottie lottie for animation
  • CircleImageView Thanks hdodenhof for CircleImageView

Releases

No releases published

Packages

No packages published

Languages