Nasa Gallery is an android app that allows a user to search for images using The app utilizes NASA API.
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
-- Gifs are under screenshots folder.
- 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
The app follows mvvm architecture pattern as below :
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).