O aplicativo inicia carregando um script do servidor Firebase que descreve os campos que deverão ser buscados no site do cardápio da universidade, esta foi a melhor maneira encontrada de contornar os custos de um servidor (uma vez que requisições externas são cobradas após exceder a cota gratuita) e poder agir facilmente na solução de problemas como a alteração da estrutura html do site da universidade.
A busca do cardápio no site da universidade é feita através do package cheerio-without-node-native ^0.20.2, após o carregamente o cardápio do dia (almoço e janta) é apresentado em forma de lista.
Usuários podem reagir ao cardápio do dia apenas uma vez por dia, como medida de proteção a reação só é possivel via método http POST com chave de validação JWT.
- axios
- jwt token
- Nodejs
- axios para trabalhar com as requições
- lottie-react-native para fazer a animação do carregamento enquanto o feedback é registrado
- polished para escurecer a cor da statusbar
- react-native-vector-icons para os ícones da aplicação
- styled-components para a criação do modo noturno
- @react-native-community/async-storage para a tarefa de armazenamento de dados permanentes no dispositivo
- @react-native-firebase/analytics e @react-native-firebase/app para utilização dos serviços do Firebase e monitoramento do comportamento do usuário no app com analytics
além dos modulos que permitiram trabalhar com a navegação entre telas como:
- react-navigation
- react-navigation-drawer
- react-navigation-stack
- react-navigation-tabs
Este foi meu primeiro aplicativo desenvolvido por completo, até então eu só tinha feito módulos separados (como forms, botões, listas).
O App passou por duas versões, a primeira fazia uso de Class Components e características da versão antiga do Reactjs, a ultima e atual faz uso de Functional Components e React Hooks, além de tecnicas de gerenciamento de estados e temas.
Copyright (c) 2020 Luan Moraes, O Uso deste software é atribuido sob os termos e condições da licença do MIT.
Dúvidas, críticas e sugestões: Entre em contato
Esta aplicação é de iniciativa pessoal para fins de aprendizado e não conta com qualquer apoio ou conhecimento da Universidade.