Git Product home page Git Product logo

image_gallery's Introduction

Image_Gallery_App

Please ⭐️ this repo and share it with others.

Install

Description

The Challenge

  1. Create a project that implements an image API from here: https://github.com/toddmotto/public-apis

    a. Examples: https://github.com/Giphy/GiphyAPI, https://docs.opendota.com, or https://deckofcardsapi.com/

  2. The project must include

    a. A list of images.

    b. User can edit an image by applying filters (preset) on a picture (any random filter, e.g.: grayscale, Portrait, Yellowish, etc.).

    c. Write tests where possible.

  3. The project must adhere to the MVVM design architecture and include a dagger hilt.

  4. Bonus Points:

    d. Detail view of each item.

    e. Detail view should consist of a minimum of: an image, a title, and a description.

    f. List pagination if greater than 50 items or lazy-load.

    g. Additional view.

Screenshots

Video

xrecorder-12122023-150529_xp91HId3.mp4

Software stack

  • Kotlin
  • Android JetPack
  • View Model - The View Model class is designed to store and manage UI-related data in a lifecycle-conscious way.
  • Live Data - LiveData is an observable data holder class. Unlike a regular observable, LiveData is lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services.
  • [View Binding][https://developer.android.com/topic/libraries/view-binding) - View binding is a feature that makes it easier to write code that interacts with views.
  • Dependency Injection Using Hilt - Hilt is a dependency injection library for Android that reduces the boilerplate of doing manual dependency injection in your project.
  • Repository Pattern
  • Google gson - For parsing JSON data.
  • Pagination - The Paging Library helps you load and display small chunks of data at a time.
  • Circular Image - A fast circular ImageView perfect for profile images.
  • Navigation Component - Navigation refers to the interactions that let users navigate across, into, and back out from the different pieces of content within your app.
  • Glide - Glide is a fast and efficient open-source media management and image-loading framework for Android.
  • Sdp - An android lib that provides a new size unit - sdp (scalable dp), It can help Android developers with supporting multiple screens.
  • Ssp - An android lib that provides a new size unit - ssp (scalable sp), It can help Android developers with supporting multiple screens.

Network Calls

  • Retrofit 2 - A type-safe HTTP client for Android and Java.

Background tasks

  • Kotlin Coroutines - A coroutine is a concurrency design pattern that you can use on Android to simplify code that executes asynchronously.

Code Architecture

http://fernandocejas.com/2015/07/18/architecting-android-the-evolution/

API

End Points

  • curated - To get random photos.
  • search - To search by category.

image_gallery's People

Contributors

abdallah-mekky avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.