Estou buscando seguir para o lado dev da força, comecei a estudar react(native e reactjs) para desenvolver interface mesmo que não fosse meu foco principal, portanto inicialmente resolvi desenvolver esse app como um teste de conhecimento básico react native, observe que o aplicativo é bem rudimentar, além do código não possuir os padrões de mercado, foi divertido desenvolvê-lo, mas não aconselho a utilização desse código em um produto final, mas deixo como uma fonte de inspiração.
O objetivo desse app é ao usuário clicar no “Qual a temperatura” o aplicativo devolver a localização e a temperatura.
O app vai obter a localização apenas usando a rede do smartfone, não sendo necessário o GPS.
Tela Inicial
Tela Resultado
Desenvolvimento
O propósito desse estudo foi desenvolver um aplicativo para consumir algumas APIs Rest de maneira encadeada, obtendo assim a informação e devolvendo o resultado para o usuário. Utilizei react-native com o expo, para facilitar os testes, ganhando em tempo para a depuração e gerando deploy do aplicativo. As apis que utilizei:
- Consultar o IP do usuário. -> httpbin
- Utilizando o IP ele obterá a localização. -> geoplugin
- Com a localização ela obterá o clima atual.
Essa última api utilizei o serviço do Accuweather, no modo gratuito essa api disponibiliza um número limitado de consultas diárias, que para meus propósitos serviu muito bem.
Clique Aqui para acessar a página do github com o código.
Caso queira testar, primeiro você precisará de um token que pode ser obtido se cadastrando na Accuweather. Baixe o projeto:
git clone https://github.com/geekwx/apptempo-react.git
Depois na pasta raiz você precisará criar um arquivo chamado token.json possuindo uma estrutura semelhante a essa:
1
2
3
4
{
"key": "seu token cadastrado do site Accuweather"
}
Depois dentro da pasta raiz instalar as dependências:
NPM
npm install
YARN
yarn
Iniciar aplicação NPM
npm start
YARN
yarn start
Pela API da Accuweather eu poderia já obter a localização e o clima com o IP do usuário, mas preferi deixar dessa maneira para aumentar o número de api de serviços diferentes consumindo. Futuramente pretendo melhorar esse código, e quando sobrar um tempo quero fazer alguns post explicando a lógica de desenvolvimento que segui.
Muito obrigado caso tenha lido, um abração e até. 🤖