Giter Site home page Giter Site logo

thisismarvel's Introduction

This is Marvel

Badge em Desenvolvimento

Descrição

  • Este app traz todo o universo Marvel na palma de sua mão, pesquise seus heróis favoritos, quadrinhos e até eventos com a maior facilidade.

Tecnologias

Badge Firebase Badge React Native Badge React Badge Jest Badge JWT Badge Expo Badge Typescript Badge Typescript Badge Realm

Arquitetura

Para esse aplicativo, foi aplicado os conceitos de Clean Architecture + SOLID, para que assim toda parte de logica que faz conexão da camada de presentation com a camada de data, não tenham conhecimento de qual é o provedor ou framework utilizado na conexão, podendo assim ter um impacto muito menor no aplicativo quando o mesmo escalar, sendo assim, quando for necessário mudar uma técnologia de conexão, tipo de axios para alguma outra ferramenta de fetch, iremos apenas sofrer poucas alterações na camada infra e main, que é onde os factories são feitos para utilização na camada de data.

Decisões

Para ter todas as funcionabilidades funcionando, foi levantado técnicologias como Firestore do Firebase para conexão ao banco de dados e salvamento do cadastro de usuário + envio de códigos para restauração de senha. Para conexão com a API da Marvel, foi utilizado o axios como ferramenta. Para salvamento dos token localmente, foi utilizado o Realmdb.

Comunicação

Os componentes e telas não se comunicam diretamente com o axios ou firestore, eles se integram via factories na camada de main, que irá importar classes com implementações padrões de execução para aquele fim específico e injetar os serviços necessários para funcionamento. Essa camada main que cria a factorie, junta os factories do httpclient ou databaseclient e injeta no usecase do data da função, fazendo assim ele estar habilitado a receber a execução da função, apóis isso, ele injeta no factory da tela para que a mesma use.

Api Marvel

Para esse projeto, é necessário que você tenha chaves da API marvel que deverão estar informadas no arquivo .env, favor, informe de acordo as chaves utilizando o arquivo .env.example que está no repositório.

Para gerar as chaves, siga os passos nesse link Marvel Documentation

Firebase

Para esse projeto, é necessário ativar algumas funções do firebase como o firestore, além da extensão **Trigger Email from Firestore **

Para configurar o firebase, basta seguir os passos a passos do link Google Firebase no botão "Começar"

UI

UI

Ambiente

Para que tudo funcione como esperado, é necessário que seu dispositivo esteja com todos os recursos necessários, caso você não tenha certeza se seu dispositivo conseguirá rodar a aplicação, por favor, veja o link Configuração do ambiente

Como iniciar

  • Baixe o projeto em seu dispositivo e instale todos os pacotes necessários
yarn

Android

Desenvolvimento

Para o modo desenvolvimento, basta abrir um terminal na raiz do projeto e rodar o comando

yarn android
Produção/Release

Para criar uma versão de release do aplicativo, basta executar o comando

yarn build:android:production

O arquivo SDK estará salvo em ./android/app/build/outputs/apk/release/app-release.apk

_ Caso deseje, já vai ter um arquivo .sdk salvo nesse diretório acima, para que assim você não precise fazer nenhuma configuração, para instalar, rode yarn install:apk _

iOS

Desenvolvimento

Para iniciar o projeto em modo desenvolvimento, basta abrir um terminal na raiz do projeto e rodar o comando

yarn ios
Production

Para gerar um apk, será necessário primeiro ter uma conta apple, com isso, siga os passo a passo do link Publicação iOS

Testes? nós temos.

Constantemente melhorando os testes, é possível garantir um aplicativo funcional e com menos possibilidade de erros.

Para ver o coverage do aplicativo, basta rodar o comando abaixo na raiz do terminal

yarn test:ci

ele irá apresentar direto no console como está o coverage da aplicação, mas também irá criar os arquivos de coverage que poderá ser visto direto no seu navegador web.

Para abrir esse aquivo, navegue e abra o arquivo em coverage/lcov-report/index.html

Progresso dos testes
  • Componentes: 100%
  • Telas: 30%
  • Camada de data: 5%

Dependências

Nesse projeto, todas as dependências estão fixas para garantir que o mesmo será executado em sua maquina, mas enquanto em desenvolvimento, o mesmo será atualizado e testado para possiveis mudanças nas versões.

Funcionamento

Abaixo você poderá ver o funcionamento da ferramenta, desde o cadastro até a visualização das informações

AppShow.1.mp4

thisismarvel's People

Contributors

jamesjlv 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.