Publicado em

Projeto: PUCRS App

Autores
PUCRS App

Introdução

O PUCRS App é um aplicativo multiusuário de apoio ao professor e aos alunos da universidade PUCRS. Tive a oportunidade de trabalhar neste projeto durante o tempo em que fiz parte da equipe da Lighthouse, onde obtive experiência com o desenvolvimento de aplicações mobile utilizando tecnologias como React Native, Styled Components, Redux e Redux Saga, Firebase e Dynatrace.

Desafios Técnicos

Esta foi minha primeira experiência com uma aplicação que precisasse funcionar 100% offline, uma vez que o aplicativo é utilizado em ambientes onde não há a conexão com a internet. Para isso, foi utilizado o Redux Persist em conjunto com o Async Storage para persistir os dados da aplicação no dispositivo. Além disso, o app é multiusuário e com múltiplas funções (roles), ou seja, tanto os alunos quanto os professores podem acessar o aplicativo, cada um com suas respectivas funcionalidades.

Mas se o app é 100% offline, como os dados vão parar no servidor?

Para resolver este problema, foi criado um sistema de fila offline, onde as requisições são armazenadas no dispositivo e, quando o usuário se conecta à internet, as requisições são enviadas para o servidor, uma por vez. Isso foi feito utilizando o Redux Saga, que é um middleware para o Redux que permite lidar com efeitos colaterais, como chamadas assíncronas. Foi criado um saga específico para lidar com as requisições offline, que monitora constantemente o estado da conexão do dispositivo e, quando detecta que o dispositivo está online, envia as requisições para o servidor.

Configurações remotas

Como as opções de menu do app precisavam ser dinâmicas, foi criado um sistema de configurações remotas (frequentemente chamadas de feature toggles), onde as configurações do aplicativo são armazenadas em um arquivo JSON no servidor, e o aplicativo faz uma requisição para obter essas configurações. Isso foi feito utilizando o Firebase Remote Config, que permite armazenar configurações no servidor e recuperá-las no aplicativo.

Conclusão

O projeto PUCRS App foi uma experiência muito enriquecedora para mim, pois pude entender melhor como funciona o desenvolvimento de aplicações mobile, e como lidar com desafios como a persistência de dados offline e a configuração remota de aplicações. Além disso, pude trabalhar com tecnologias modernas e atuais, como React Native, Styled Components, Redux e Redux Saga, e também pude aprender a utilizar o Firebase Remote Config, que foi uma ferramenta muito útil para a implementação das configurações remotas do aplicativo.