Food Search App

  • Android application written with kotlin programming language.
  • Use Clean Architecture.
  • Create the object of fragments with factory method and inject to NavHostFragment using Hilt.

Minimum API level supported is: 23


- Build System: [Gradle](https://gradle.org)

Table of Contents


Prerequisite

  • To run these application you need
  • Android Studio.

Architecture

  • These application is build using MVVM architecture to allow separation of concerns.
  • Clean Architecture


TechStack

  • Kotlin - Cross-platform, statically type, general purpose programming language with type inference.
  • Hilt - Dependency injection library for android.
  • NavigationComponets
  • Retrofit - A Type-safe HTTP client for android and java used to consume REST APIs.
  • [Paging 3] -Load data from server in small chuck to improve performance.
  • Gson - Used to convert Json to java and kotlin objects.
  • Glide - Image loader library for android.
  • [Diff Utill Adapter] - This class finds the difference between two lists and provides the updated list as an output.
  • ViewModel - Used to store and manage UI related data in a lifecycle concious way.
  • Data Binding - Allows you to bind UI components in your layouts to data sources in your app
  • Timber - Android Logger with a small and extensible API.
  • Glide - Image loading framework for android that wraps media decoding, memory and disk caching.
  • Flow API - In coroutines, a flow is a type that can emit multiple values sequentially, as opposed to suspend functions that return only a single value.
  • [Binding Adapters] - Use to load image using Glide library in different class.
  • [Expresso UI] - Expresso Library for Ui testing.
  • [Mockito] - For JUnit testing i use Mockito librayr to mock the objects.