└── 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 |
--------------------------------------------------------------------------------