└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Desafio BTG 2 | 3 | Seja bem-vindo! Este é o seu primeiro passo para fazer parte do time de desenvolvimento do maior banco de investimentos da América Latina. 4 | 5 | #### LEIA AS INSTRUÇÕES POR COMPLETO ANTES DE COMEÇAR 6 | 7 | O Desafio consiste no desenvolvimento de um app de conversão de moedas. O app deve permitir que o usuário selecione a moeda de origem e a moeda a ser convertida, para então inserir o valor e visualizar o resultado da conversão. 8 | 9 | ## Requisitos 10 | 11 | O app deve counsumir a [Mobile Challenge API](https://documenter.getpostman.com/view/11242574/2sA3Qqgt3W), criada somente com o propósito desse desafio e portanto não apresenta dados reais. A API apresenta apenas as taxas de câmbio em relação a uma moeda de referência (dólar americano - `USD`), caso o usuário deseje fazer uma conversão entre quaisquer outras duas moedas, será necessário primeiro converter a moeda de origem para dólar e então de dólar para a moeda desejada. 12 | 13 | * Android: _Kotlin_ | iOS: _Swift - UIKit_ 14 | * O aplicativo deve ter duas telas principais: 15 | * A tela de conversão deve conter: 16 | * Dois botões que permitam o usuário a escolher as moedas de origem e de destino. 17 | * Um campo de entrada de texto onde o usuário possa inserir o valor a ser convertido. 18 | * Um campo de texto para apresentar o valor convertido. 19 | * A tela de listagem de moedas deve conter: 20 | * Uma lista das moedas disponíves para conversão, mostrando código e nome da moeda. 21 | 22 | * A listagem de moedas deve ser mostrada obrigatóriamente em uma tela diferente da tela de conversão. 23 | 24 | ## Observações 25 | * Dê preferência para a não utilização de bibliotecas externas; 26 | * Caso opte por usar bibliotecas externas, prefira Gradle (Android) ou CocoaPods (iOS) como gerenciadores de dependência; 27 | * O objetivo deste desafio é avaliar o seu conhecimento técnico, estilo de código, conhecimento de arquiteturas, padrões de programação e boas práticas. Faça disso uma oportunidade pra mostrar todo o seu conhecimento. 28 | 29 | ## Features 30 | ### Obrigatórias: 31 | - [ ] As taxas de câmbio disponíveis devem ser obtidas da chamada de [API Supported Currencies (/list)](https://documenter.getpostman.com/view/11242574/2sA3Qqgt3W) 32 | - [ ] A cotação atual deve ser obtida da chamada de [API Real-time Rates (/live)](https://documenter.getpostman.com/view/11242574/2sA3Qqgt3W) 33 | - [ ] É necessário fazer tratamento de erros e dos fluxos de exceção, como busca vazia, carregamento e outros erros que possam ocorrer. 34 | 35 | ### Opcionais (não necessário, porém contam pontos): 36 | - [ ] Funcinalidade de busca na lista de moedas por nome ou sigla da moeda ("dólar" ou "USD"). 37 | - [ ] Ordenação da lista de moedas por nome ou código. 38 | - [ ] Realizar a persistência local da lista de moedas e taxas para permitir o uso do app no caso de falta de internet. 39 | - [ ] Desenvolver testes unitários e/ou funcionais. 40 | - [ ] Desenvolver o app seguindo a arquitetura MVVM. 41 | - [ ] Pipeline automatizado. 42 | 43 | ## Processo de submissão 44 | Para submeter o seu desafio, faça um fork deste projeto para sua conta no github, realize o clone e desenvolva localmente, no final, abra um pull request com o formato "[Plataforma] - Nome" para a master até a data limite estabelecida. Um exemplo seria "[iOS] - João da Silva". 45 | 46 | ### Boa sorte. 47 | --------------------------------------------------------------------------------