MarvelApp is an application based on Modern Android Application tech-stacks and MVVM Architecture. Fetches data from Marvel Api.
All Characters | Character Search | Favourite Characters | Character Comics |
---|---|---|---|
Comic Detail | Character Series | Series Detail |
---|---|---|
You can Install and test the app from below 👇
- Kotlin - First class and official programming language for Android development.
- Coroutines - For asynchronous.
- Flow - A cold asynchronous data stream that sequentially emits values and completes normally or with an exception.
- StateFlow - StateFlow is a state-holder observable flow that emits the current and new state updates to its collectors.
- Android Architecture Components - Collection of libraries that help you design robust, testable, and maintainable apps.
- MVVM Architecture (Model - View - ViewModel)
- ViewModel - Stores UI-related data that isn't destroyed on UI changes, lifecycle aware.
- ViewBinding - Generates a binding class for each XML layout file present in that module and allows you to more easily write code that interacts with views.
- Room Database - Room is an android library which is an ORM which wraps android's native SQLite database.
- Jetpack
- Navigation - Build and structure "in-app" UI, handle deep links, and navigate between screens.
- Lifecycle - dispose of observing data when lifecycle state changes.
- Paging3 - Load data in pages, and present it in a RecyclerView.
- Dagger-Hilt - Standard library to incorporate Dagger dependency injection into an Android application.
- Retrofit & Gson - construct the REST APIs.
- OkHttp3 - implementing interceptor, logging and mocking web server.
- Glide - An image loading and caching library for Android focused on smooth scrolling
Support it by joining stargazers for this repository. ⭐ And follow me for my next creations! 🤩
- Fork and Clone the project
- Get Your Api Key
- According to the Documentation you need Timestamp, ApiKey (Your Public Key), and Hash
ts -> a timestamp (or other long string which can change on a request-by-request basis)
apiKey -> Your Public Key
hash -> a md5 digest of the ts parameter, your private key and your public key (e.g. md5(ts+privateKey+publicKey)
- Generate Your Hash from here
- Add this to your gradle.properties
public_key="Your_Public_Key"
private_key="Your_Private_Key"
hash="Your_hash"
- Rebuild the project
- And you are good to go 😃.