fb

Ferramentas

6 min de leitura

Case: por dentro da criação e arquitetura de um app de saúde

Equipes de produto e tecnologia da Theia detalham os desafios, tecnologias e ferramentas utilizadas na criação de um aplicativo voltado à saúde da mulher

Times de produto e tecnologia da Theia

06 de Outubro

Compartilhar:
Artigo Case: por dentro da criação e arquitetura de um app de saúde

Este artigo foi escrito por três autoras e autores, e todos nós integramos a equipe de tecnologia da Theia. Para quem ainda não conhece, a Theia nasceu com a missão de tentar revolucionar o cuidado com a saúde da mulher por meio da tecnologia. Por isso, o produto da startup foi pensado para oferecer uma experiência de saúde “fora da curva”.

Tendo a tecnologia como fator potencial de disrupção, a nossa equipe precisa pensar soluções que possam ser escaláveis, flexíveis e otimizadas para estruturação de dados. Ao mesmo tempo que buscamos esse objetivo, precisamos garantir a criação de um sistema que esteja sempre disponível e pronto para se conectar com todo o ecossistema de provedores de serviços de saúde.

Nas últimas semanas, foram dados passos importantes em direção a essa revolução com o lançamento do Theia App nas lojas Google Play e App Store, para que pudéssemos melhorar a experiência das nossas clientes e criar mais um ponto de contato, estendendo as funcionalidades que já temos atualmente na versão web.

Para não descrevermos somente o conceito e o produto, vamos contar um pouco dessa jornada tecnológica cheia de estímulos, insights e experiências. Primeiramente, definimos quatro desafios para, em seguida, pensarmos e aplicarmos um conjunto de ferramentas tecnológicas:

Desafios para criar o app

  • Agilidade em testar novas funcionalidades: o primeiro obstáculo a ser superado foi o de validar uma solução de maneira rápida. A meta consistiu em provar a entrega de valor num curto período, tendo como foco o alcance de resultados para os clientes e para o negócio.

  • Criar um produto flexível a mudanças: o segundo desafio foi o de criar um produto digital capaz de se adaptar com facilidade às melhorias constantes e novas versões.

  • Experiência e engajamento de clientes: além de possibilitar o uso de ferramentas exclusivas para engajamento, como notificações, por exemplo, o app teria que garantir a melhor performance, acessibilidade e robustez de interface para os usuários.

  • Posicionamento: tínhamos em mente que o mercado mobile segue em crescimento exponencial, e mais da metade da população mundial está engajada de alguma maneira nesse canal. Além disso, sabíamos que os apps costumam a ter uma taxa de conversão de até 300% a mais do que as versões web. Assim, orientamos nossa estratégia ao valor que nosso app poderia trazer para o crescimento da Theia.

Definindo a tecnologia

Para cumprir esses desafios, nós decidimos apostar nossas fichas numa tecnologia que tem se tornado cada vez mais comum no mercado, o Flutter.

Sendo um kit de desenvolvimento de software (ou SDK do inglês Software Development Kit) para criação multiplataforma, o Flutter foi lançado pelo Google em 2017, tendo como uma de suas maiores vantagens a possibilidade de se criar aplicativos Android e iOS com um único código.

Diferentemente de ReactNative, e outras tecnologias de desenvolvimento híbrido, o Flutter não necessita da ponte com o nativo para construir seus componentes, sendo, assim, mais performático que as outras tecnologias.

Além disso, o Flutter conta com widgets próprios já fornecidos pela SDK que permitem um desenvolvimento mais rápido, além de possibilitar a personalização de componentes UI, garantindo a consistência visual entre plataformas.

Baseado no Flutter, utilizamos o Stack para auxiliar no desenvolvimento do projeto, empregando alguns pacotes que devem serão detalhados a seguir.

Camadas tecnológicas do app

  • Flutter Modular: suíte de soluções desenvolvida pela Flutterando que auxilia em diversos pontos da aplicação, como injeção de dependências e rotas, fazendo com que o código alcance uma fácil manutenção e seja reutilizável conforme o projeto cresce e se torna mais complexo;

  • Bloc e Flutter Bloc: solução que auxilia no controle de estados da aplicação. No projeto utilizamos o cubit, que faz parte do pacote bloc, o qual torna o tratamento na camada de apresentação para situações de erro, carregamento e sucesso mais simples e organizado;

  • Twilio Programmable Video: para que nossas usuárias possam realizar suas consultas de forma online, precisávamos de uma solução que possibilitasse a realização de chamadas por vídeo, sendo assim, escolhemos o Twilio. Esse pacote foi desenvolvido pela comunidade do Flutter;

  • Flutter Test: o projeto já conta com os passos iniciais para que se realizem testes. Isso é possível graças a essa biblioteca flutter_test, que possibilitou a criação de testes unitários e de widget, trazendo mais segurança para o desenvolvimento do app.

Arquitetura

Baseada no conceito apresentado pelo entusiasta do movimento software craftsmanship, Uncle Bob, utilizamos o conceito de o clean architecture para desenvolvermos um sistema dividido em camadas, cada uma com sua responsabilidade. Assim, adquirimos a vantagem de empregar modificações na implementação de uma camada sem comprometer todo o sistema.

Dessa forma, a arquitetura do projeto se mantém legível, fácil de realizar manutenções e independente de pacotes, pois permite a troca dos mesmos sem afetar o funcionamento do projeto. Além disso, vale ressaltar, a arquitetura do projeto é testável.

Ferramentas

Complementando a stack, utilizamos de uma série de ferramentas que nos auxilia no desenvolvimento e aumenta a nossa produtividade. Dessa maneira, desde versionamento de código, perpassando por testes, monitoramento e até o envio de notificações para os clientes em um modelo low-code de desenvolvimento, utilizamos as seguintes ferramentas:

  • Sentry: para auxiliar no relatório de erros que acontecem na aplicação, possibilitando que o tratamento desses erros ocorra de forma mais rápida;

  • Git: realização do controle de versão que utilizamos no dia a dia em todos os nossos projetos. Além disso, visando a qualidade do software, fazemos a revisão de código no próprio GitHub, onde ocorrem discussões e sugestões de melhorias;

  • Visual Studio Code: cada pessoa desenvolvedora tem a sua própria preferência de IDE. Aqui na Theia, achamos que o VS Code auxilia na nossa produtividade de desenvolvimento tanto pelas funções nativas quanto pelas extensões disponibilizadas pela comunidade;

  • Figma: a ferramenta está sendo utilizada pelo time de design para criação do design system e dos layouts a serem desenvolvidos;

  • Design System (DS): definição de componentes, cores, fontes e ícones padrões nas nossas aplicações. A definição do DS permite uma reutilização maior do código, evitando duplicações e acelerando o desenvolvimento. Além disso, mantém a consistência visual entre plataformas;

  • Firebase App Distribution: permite para nossa equipe lançar e fazer a gestão das versões de teste pela plataforma antes de subirmos para testes nas lojas de aplicativos;

  • Firebase In-App Message: envio de mensagens dentro do app com a possibilidade de criação de gatilhos para disparo baseados em eventos. Totalmente customizável pelo dashboard do Firebase;

  • Firebase Cloud Message: usamos o FCM para disparo de push notifications com a gestão direta no dashboard do Firebase. Podemos disparar notificações gerais ou baseadas em gatilhos pré-configurados;

  • Segment: para o nosso hub de analytics, utilizamos o Segment. O objetivo é integrar a nossa solução às ferramentas de analytics e marketing. Como exemplo: Amplitude, Facebook e Google Ads.

Resultado e aprendizados

Após o lançamento do app e análise dos resultados, ficou claro para nós que a estrutura criada para o desenvolvimento do Theia App vem se mostrando eficaz, com alta disponibilidade e, até o momento, livre de bugs sistêmicos.

O Flutter se mostrou uma tecnologia muito apropriada para o nosso tipo de produto que requer ao mesmo tempo robustez para funcionalidades como a realização de consultas médicas por videochamada e flexibilidade para se adaptar às necessidades diárias das clientes e do negócio.

Por fim, e não menos importante, o Flutter e as soluções oferecidas pela comunidade aceleram o processo de desenvolvimento mantendo a qualidade de código dentro da aplicação.

Compartilhar:

Autoria

Times de produto e tecnologia da Theia

Matheus Schipper, desenvolvedor Flutter que criou, distribuiu e segue evoluindo com o aprimoramento do Theia App; Márcio Canovas e Izabela Melo, respectivamente especialistas em backend e frontend que deram o suporte na aplicação; Luiza Sangalli e Renata França, que atuam com produto e design e cuidaram das definições de problema, solução, gestão, desenho de experiência e interface do app.

Artigos relacionados

Imagem de capa Aceite as limitações dos LLMsAssinante

Tecnologia e inovação

19 Dezembro | 2023

Aceite as limitações dos LLMs

Superestimar a capacidade dos grandes modelos de linguagem, como o ChatGPT, pode levar a resultados pouco confiáveis. Para lidar melhor com eles, é importante entender primeiro como funcionam

Mikhail Burtsev, Martin Reeves e Adam Job
Imagem de capa Open source contra os hackers da IA generativaAssinante

Tecnologia e inovação

19 Dezembro | 2023

Open source contra os hackers da IA generativa

A contratação de serviços de inteligência artificial pode expor seus dados e deixar sua empresa nas mãos das big techs. Mas existem alternativas. Estamos vivendo o início de uma fase semelhante à que deu origem ao Linux nos anos 1990, quando desenvolvedores do mundo todo se dedicaram a enfrentar os desafios da nova tecnologia com soluções de código aberto, disponíveis para todos – e veja cinco modos de administrar os respectivos

Aron Culotta e Nicholas Mattei
Imagem de capa Como aplicar IA generativa na inovação corporativaAssinante

Tecnologia e inovação

17 Dezembro | 2023

Como aplicar IA generativa na inovação corporativa

A nova tecnologia pode trazer eficiência e criatividade para a inovação em grandes empresas. Uma pesquisa recente mostra a realidade brasileira, os estágios de adoção em diversos setores, as oportunidades no horizonte e as barreiras de adoção

Maximiliano Carlomagno e Felipe Scherer
Imagem de capa Gestão pública 4.0: tecnologia para atender as demandas dos cidadãos

Tecnologia e inovação

15 Novembro | 2023

Gestão pública 4.0: tecnologia para atender as demandas dos cidadãos

A transformação digital pode ajudar na revolução da gestão municipal, melhorando a eficiência das instituições e fortalecendo a participação cidadã e a prestação de serviços mais ágeis, a partir dos aplicativos governamentais multiplataformas

Ana Debiazi e Aryana Valcanaia

2 min de leitura