Coder Social home page Coder Social logo

marvelpoc's Introduction

Marvel Characters

Codacy Badge Main Workflow

Marvel characters it's an app built to present info related to marvel characters available at Marvel website.

Current objective

  • Refactor the app to use compose
  • Replace the directs calls to MarvelApi to use a BFF as middle
  • Refactor the koin usage to Hilt
  • Create design system structure

Goals

  • Study Kotlin and apply some architecture concepts in this project.

Architecture

This project is built using a MVVM architecture with multi module structure. The diagram below represents the structure of the modules.

image

Stack

  • MVVM Architecture without databinding
  • Coroutines
  • Kotlin
  • Room
  • Koin
  • Ktor
  • Paging
  • Github actions

Testing

  • AndroidX Test
  • Mockk
  • Junit
  • Espresso
  • Robot Pattern
  • Orchestrator

Quick Start

Run project

You need to follow the steps described steps in order to the application doesn't crash during runtime.

  • This app uses a private BFF hosted on digital ocean-
  • Checkout the code and build the application

Running tests

  • Instrumented: ./gradlew connectedAndroidTest
  • Unit: ./gradlew test

Contact

Email: [email protected]

Twitter

Medium

marvelpoc's People

Contributors

othiagosouto avatar

Stargazers

Pedro Bachiega Neto avatar Carlos Ottoboni avatar

Watchers

 avatar

marvelpoc's Issues

Create Favorites Mode

app should load favorites characters stored inside a different tab that would be available at Home fragment

Create a README.MD

You should create a file presenting some instructions like:

  1. Running the app
  2. Running tests
  3. CI Integration
  4. Architecture Info

Support code coverage

This ticket aims to add code coverage support and merge all reports and create a unified test report.

Create Splash Screen

Create a splash screen and present some animation using Lottie library from AirBnb

Use navigation Library

The app should use the navigation library to navigate from Home or favorites to Character Details

Create Details Screen

The app should have a screen to load info about the chosen character.

Must have:

  1. Favorite/Unfavorite Feature
  2. Description
  3. Picutre

Bonus:
Fetch Series and create a horizontal list presenting them.

Create Snapshot Tests

Create SnapshotTests using Facebook or Shot plugin to validate the UI of the project.

Refactor gradle structure

The Gradle scripts have a lot of duplicated code, so you should refactor that in some way that we don't have any duplicated code anymore.

Setup compose

The goal of this issue is to set up the project to work with jetpack compose.

Setup gradle dependencies

The goal of this task is to config the dependencies.gradle and remove all hardcoded Gradle content from build.gradle(app)

Create home pagination

The Home tab should have infinite pagination using the android jetpack pagination and fetching data from the marvel webservice.

Using an offset of 30 items.

Create Favorites pagination

The favorites tab should have infinite pagination using the android jetpack pagination and room.

Using an offset of 30 items.

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.