/MarvelAndroidRedukt

Android project using Redukt Architecture and Anvil for renderization of Marvel movies of "Infinity Saga"

Primary LanguageKotlinMIT LicenseMIT

The Infinity Saga ✨🦾✨

Aplicativo Android que mostra os filmes de toda a saga infinita da Marvel. Os filmes também podem ser ordenados cronologicamente ou não de acordo com a escolha do usuário.

Movie full screen description

Arquitetura

Foi utilizado arquitetura reativa (redux/redukt) que funciona separando o código em middlewares, dispatchers (ações) e reducers, bem como atualizando o layout a partir das alterações ocorridas no App State.

Os principais componentes dessa arquitetura são:

Action Creator + Dispatcher:

Cada mudança ou interação do usuário com o app tem uma ação, o dispatcher é responsável por ordenar as ações e encaminhado-las ao middleware ou reducer.

Middleware:

Responsável pelo transito de dados assíncronos. Nesse projeto, usado para sincronizar os dados com o servidor e salvar-los no banco de dados.

Reducer:

Responsável por manter sempre atualizado os dados no App State, que é utilizado nas telas para mostrar as informações para o usuário. Nesse projeto, até o momento, os filmes.

Listener:

Responsável por atualizar a tela caso ocorra alguma alteração no App State.

Bibliotecas utilizadas

Biblioteca escrita em Kotlin que implementa a arquitetura redux no android.

Requisições HTTP Client para Android

Biblioteca para converter Json para Kotlin e vice versa

Biblioteca para desenvolver layouts e views reativos para Android

Biblioteca para carregando e cacheamento de imagens remotas

Banco de dados orientado a objetos com grande performance para aplicações robustas.

Preview

Fast Preview

APK:

https://drive.google.com/file/d/1XDFMD-UOYqPQ5WPm-JbCplHDp0am4Bqf/view?usp=sharing

Mais informações sobre Redux

Redux1 Redux2

https://android.jlelse.eu/react-native-redux-architecture-part-1-8178fc9065c2

https://medium.com/@trikita/writing-a-todo-app-with-redux-on-android-5de31cfbdb4f

Instruções para gerar o apk

./gradlew assembleDebug; find . -name *.apk