Skip to content

Marvel App is a sample Marvel heroes application based on MVVM architecture.

Notifications You must be signed in to change notification settings

Rohit-2602/Marvel_App

Repository files navigation

Marvel App

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

Download

You can Install and test the app from below 👇

MarvelApp

Techs Used

  • 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

Find this repository useful? ❤️

Support it by joining stargazers for this repository. ⭐ And follow me for my next creations! 🤩

Setup Project

  • 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 😃.