Skip to content

An ImageSearch App utilizing PixaBay API to showcase modern Android development architecture (MVVM + Kotlin + Retrofit2 + Hilt + ROOM, Coroutines + Kotlin Flow + mockK + Espresso + Junit)

Notifications You must be signed in to change notification settings

iyashamihsan/AndroidTask

Repository files navigation

ImageSearch App

An simple ImageSearch App utilizing Pixabay API.

Built with ❤︎ by Yasham Ihsan

Features

  • Responsive in both Landscape and Portrait.
  • Cache result in Room.
  • Fetching Images for user input.
  • Detail screen for an Image

Architecture

  • Built with Modern Android Development practices
  • Utilized Usecase, Repository pattern for data
  • Includes unit tests for Repository and Use cases.

Built With 🛠

  • Kotlin - First class and official programming language for Android development.
  • Coroutines - For asynchronous and more..
  • Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
  • Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
    • LiveData - Data objects that notify views when the underlying database changes.
    • ViewModel - Stores UI-related data that isn't destroyed on UI changes.
    • ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
  • Dependency Injection
    • Hilt - Easier way to incorporate Dagger DI into Android apps.
  • Room - For saving Data in local DB and to provide offline support.
  • Retrofit - A type-safe HTTP client for Android and Java.
  • Material Components for Android - Modular and customizable Material Design UI components for Android.
  • Gradle Kotlin DSL - For writing Gradle build scripts using Kotlin.
  • MockK - For Mocking and Unit Testing

To Be Done:

  • UI tests

👨 Developed By

Yasham Ihsan

About

An ImageSearch App utilizing PixaBay API to showcase modern Android development architecture (MVVM + Kotlin + Retrofit2 + Hilt + ROOM, Coroutines + Kotlin Flow + mockK + Espresso + Junit)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages