dsatija / NASA-Gallery

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Nasa Gallery

Nasa Gallery is an android app that allows a user to search for images using The app utilizes NASA API.

User Stories

The following functionality is completed:

  • [DONE] User can search for images by specifying a query and launching a search. Search displays a list of image results from the NASA Api.
  • [DONE] Each search result should display the image and the title.
  • [DONE] Tapping on a search result should display a details screen including the image, title, description, and date it was created.
  • [DONE] Pagination

Video walk through

-- Gifs are under screenshots folder.

Libraries used

  • Data Binding - Declaratively bind observable data to UI elements.
  • Lifecycles - Create a UI that automatically responds to lifecycle events.
  • LiveData - Build data objects that notify views when the underlying database changes.
  • Navigation - Handle everything needed for in-app navigation.
  • ViewModel - Store UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks for optimal execution.
  • Paging 3 - Load and display pages of data from a larger dataset from local storage or over network
  • Retrofit - HTTP Calls to Rest Api
  • GSON - Convert Java Objects into their JSON representation and vice versa.
  • Glide for image loading
  • Hilt: for dependency injection

Architecture

The app follows mvvm architecture pattern as below :

Architecture

How to build

Two ways:

  • Import the project and build in android studio.
  • Download the apk from this google drive link
  • Note the apk loads the first page with default search query : "mars".
  • If there is no network, the app shows a loading progress bar and then gives the option to retry after some time.
  • Texts are shown only after the image is loaded (on Details screen).

About


Languages

Language:Kotlin 100.0%