This is an app that displays Rick and Morty locations and characters. Users can view a list of locations and characters, and click on a location to view the characters associated with that location. They can also click on a character to view more details about that character.
- A functional basic application will be prepared.
- This page should only be displayed at startup.
- It should contain an animation or an image that introduces the application.
- There should be a welcome message on the page. When the user opens the application for the first time, it should say "Welcome!". In subsequent launches, it should say "Hello!".
- The page should consist of a title/logo, a scrolling horizontal list, and a vertical list.
- The horizontal list should include Rick and Morty locations.
- The content should be pulled from here: https://rickandmortyapi.com/documentation/#locationschema
- Only the first page should be listed (20 locations).
- The design of selected and unselected locations should be different.
- Characters associated with the location retrieved from the horizontal list should be listed.
- The location response contains urls for characters (residents). The id's from these urls will be parsed to retrieve character details from this source: https://rickandmortyapi.com/documentation/#get-multiple-characters
- Item designs should vary based on the gender of the listed characters: male, female, genderless, or unknown (as seen in the mockup).
- The page with the provided design should be developed.
- Clicking on an item in the vertical list should open this page.
- When the horizontal list on the main page is scrolled to the end (right), the next page should be loaded.
- A loading item should be added to the end of the list during loading.
app.mp4
-
100% Kotlin based + Coroutines and Flow & LiveData
-
Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- A single-activity architecture, using the Jetpack Navigation to manage transactions.
- Lifecycle - perform an action when lifecycle state changes
- ViewModel - Stores UI-related data that isn't destroyed on UI changes.
- Repository - Located in data layer that contains application data and business logic.
- ViewBinding & DataBinding - allows you to more easily write code that interacts with views.
-
Android Hilt - Dependency Injection Library
-
Retrofit A type-safe HTTP client for Android and Java
-
Moshi - A modern JSON library for Android and Java.
-
Glide Glide is a fast and efficient open source media management and image loading framework for Android that wraps media decoding, memory and disk caching, and resource pooling into a simple and easy to use interface.
This app uses MVVM (Model View View-Model) architecture
This app uses the Rick and Morty API to get the data.