Giter Club home page Giter Club logo

marvel's Introduction

๐Ÿ‘ฝ Marvel

For best practices: Clean Architecture, Multi Modules, Hilt, MVVM, Coroutines with migrating a View-based app to Jetpack Compose.

๐Ÿƒ How to run the project

  1. You should get an API Key. (https://developer.marvel.com/)
  2. Save the base url and your keys (public & private key) in your local.properties.
MARVEL_BASE_URL = "https://gateway.marvel.com:443/v1/public/"
MARVEL_PUBLIC_KEY = [YOUR PUBLIC KEY]
MARVEL_PRIVATE_KEY = [YOUR PRIVATE KEY]
  1. Build and run the project

๐Ÿ› Architecture

Clean Architecture

image

The application consists of 3 layers.

  1. Presentation Layer
    • view : Displays the application data on the screen (Activity/Fragment)
    • viewmodel : Stores UI related data and interacts with the domain layer.
  2. Domain Layer
    Contains the business logic of the application.
    It's an individual module and complete java/kotlin module.
    The domain layer is responsible for encapsulating complex business logic, or simple business logic that is reused by multiple ViewModels.
    • usecase : Contains the business logic of the application.
    • repository interface
    • model (domain) : Represents the domain-specific objects or entities.
  3. Data Layer
    Handles data retrieval, storage, and mapping.
    • datasource : Represents the source of data, such as a network API or a local DB responsible for data retrieval and storage.
    • repository impl : Implements the repository interface in the domain layer.
    • mapper : Converts data model to domain model.
    • model (dto) : Represents the data structure or objects used within the data layer.

Modularization & dependencies

image

  • app : Serves as an entry point to the application.
  • feature : Contains an isolated part of an app's functionality.
  • common-ui : Contains custom UI elements that helps make UI consistent across different features.
  • domain : Encapsulates the business logic of the application.
  • data : Contains a repository, data sources and model classes.

โš’ Tech Stack

  • Clean Architecture + Multi Module + MVVM
  • Migrate from a View-based app to Compose.
  • Coroutines Flow : Asynchronous
  • ViewModel ViewBinding Navigation Compose : Jetpack
  • Hilt : Dependency Injection
  • Retrofit : Network
  • Glide : Image Library

(...์ž‘์„ฑ์ค‘)

marvel's People

Contributors

youlalala avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.