https://github.com/azanniel/iweather
🧪 O IWeather é uma aplicação que mostra as informações do clima dado uma cidade que é informada à ele. A finalidade dessa aplicação é aplicar os conceitos de testes e CI/CD.
https://github.com/azanniel/iweather
dayjs expo expo-router jest nativewind react-native-testing-library
Last synced: 3 months ago
JSON representation
🧪 O IWeather é uma aplicação que mostra as informações do clima dado uma cidade que é informada à ele. A finalidade dessa aplicação é aplicar os conceitos de testes e CI/CD.
- Host: GitHub
- URL: https://github.com/azanniel/iweather
- Owner: Azanniel
- Created: 2023-10-05T21:39:05.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-11T12:30:07.000Z (over 1 year ago)
- Last Synced: 2025-01-09T19:14:15.418Z (4 months ago)
- Topics: dayjs, expo, expo-router, jest, nativewind, react-native-testing-library
- Language: TypeScript
- Homepage:
- Size: 2.12 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
🌦️ IWeather
> O IWeather é uma aplicação que mostra as informações do clima dado uma cidade que é informada à ele. A finalidade dessa aplicação é aplicar os conceitos de testes e CI/CD.

## 🎮 Techs Relevantes
- [Expo Router](https://docs.expo.dev/routing/introduction/): Expo Router é um roteador baseado em arquivo para React Native e aplicativos da web.
- [Tailwindcss](https://tailwindcss.com/): Uma estrutura CSS utilitária repleta de classes.
- [NativeWind](https://www.nativewind.dev/): NativeWind usa Tailwind CSS como linguagem de script para criar um sistema de estilo universal para React Native.
- [Jest](https://jestjs.io/pt-BR/): Jest é um poderoso Framework de Testes em JavaScript com um foco na simplicidade.
- [React Native Testing Library](https://callstack.github.io/react-native-testing-library/): React Native Testing Library é uma biblioteca de testes para React Native.
- [DayJS](https://jestjs.io/pt-BR/): Day.js é uma biblioteca JavaScript minimalista que analisa, valida, manipula e exibe datas e horas para navegadores modernos.## 🃏 Layout
Caso tenha interesse em visualizar o Layout temos o [link do figma](https://www.figma.com/file/Ha378XWXLjZkPAShI7oV5S/iWeather-%E2%80%A2-Projeto-React-Native?type=design&node-id=0%3A1&mode=design&t=wGIQ3FianuiOCRKH-1).
## 📝 Projeto
Nesse projeto foi trabalhado uma aplicação de clima utilizando o React Native.
O principal objetivo com isso foi aplicar os conceitos de testes e CI/CD.O primeiro aprendizado foi relacionado ao teste unitário e ao uso do [Jest](https://jestjs.io/pt-BR/) onde foi entendido que o teste unitário é o mais eficiente e busca testar uma unidade de código.
O próximo aprendizado foi em relação ao teste de componentes e foi aplicado o [React Native Testing Library](https://callstack.github.io/react-native-testing-library/) onde pode-se renderizar componentes de forma isolada e testar uma pequena parte deles com isso garantindo o funcionamento isolado do componente.
O Mock permite substituir um objeto real e criar uma simulação durante a execução dos testes. É usado para isolar um código que está sendo testado fornecendo um comportamento predefinido e para não depender de fatores externos.
Na parte de testes de Hooks conhecemos as funções `waitFor` e `act` que são responsáveis por conseguirmos aguardar a atualização de estado de um contexto quando estamos testando nosso hook.
Por fim, finalizamos o aprendizado com o coverage report que é um relatório que fornece informações sobre a cobertura do nosso código pelos testes. Ele mostra a porcentagem de linhas de código, funções, instruções ou ramificações que foram executadas durante a execução dos testes. O objetivo dele é avaliar o quanto do código esta sendo testado pelos testes automatizados.
## 🧑💻 CI & CD
O CI é uma prática de desenvolvimento em que as alterações de código são integradas regularmente a um repositório principal. É executado testes para garantir que o novo código não quebre a aplicação existente. Já o CD automatiza o processo de implantação da aplicação, entregando novas funcionalidades ou correções de bugs aos usuários de forma rápida e confiável. O CI mantém a estabilidade do código, enquanto o CD automatiza a implementação e implantação do software em produção.
O GitHub Actions é uma plataforma de integração contínua e entrega contínua (CI/CD). Com o GitHub Actions, podemos automatizar a compilação, testes e implantação de nossa aplicação. Podemos criar e gerenciar fluxos de trabalho a partir de eventos, como um push em um repositório. Para criar esse fluxo de trabalho, usamos um arquivo YAML, onde configuramos os steps e definimos o que deve ser feito
## ☕ Contatos
Você vai me encontrar em qualquer uma das redes sociais abaixo: