Skip to content

Latest commit

 

History

History
28 lines (22 loc) · 2.08 KB

README.md

File metadata and controls

28 lines (22 loc) · 2.08 KB

PhotoSearch

Easy search images in the simple application in your pocket. When you press on an image you will see a larger version of the image and you can download it to your gallery also this app has history of search. This application is based on Flickr api.

Preview:

Case Study:

  • MVP: Architectural pattern

    • Model - Layer for storing data. This layer is responsible for the abstraction of the data sources. Model and ViewModel work together to get and save the data.
    • View - User Interface layer. The purpose of this layer is to inform the ViewModel about the user’s action.
    • Presenter - This layer fetch the data from the model and applies the UI logic to decide what to display. It exposes those data streams which are relevant to the View. Moreover, it servers as a link between the Model and the View.
  • Dagger 2 - Dependency injection.

    • How to define modules which provides dependencies.
    • How to define components
    • How to defining dependency providers (object providers)
    • How to defining dependencies (object consumers)
    • How to connecting consumers and providers
    • How to use scope annotations
    • How to declare special treatment of fields in Dagger

Libraries and technologies used.

  • MVP - Pattern overcomes the challenges of MVC and provides an easy way to structure the project codes
  • Glide - Load and cache images by URL.
  • Retrofit - Making HTTP connection with the rest API and convert reponse json file to Kotlin/Java object.
  • Dagger 2 - Compile-time framework for dependency injection.