Saltar para o conteúdo principal
Flutter para mobile multiplataforma

Serviços de desenvolvimento de apps em Flutter

Construímos apps multiplataforma em Flutter. Uma base de código é publicada em iOS e Android, mantém-se ágil em redes fracas e aguenta passar para segundo plano a meio de uma tarefa. O estado tipado e imutável mantém-na fácil de evoluir à medida que cresce.

O que está incluído

Uma base de código, todos os dispositivos

Manter apps iOS e Android separadas obriga a construir cada funcionalidade duas vezes, e as plataformas acabam por se afastar. Com o Flutter, uma equipa fica responsável por ambas a partir de uma única base de código, sem a sensação estranha de uma web view embrulhada numa app. Construímos apps que parecem e se comportam como nativas em cada plataforma.

No âmbito
  • iOS e Android a partir de uma única base de código em Flutter
  • Gestão de estado tipada e previsível (Riverpod) e roteamento (go_router)
  • Sincronização tolerante ao modo offline contra a sua API de backend
  • Integração nativa com a plataforma: câmara, notificações, biometria, deep links
  • Resiliência a redes fracas e a passar para segundo plano a meio de uma tarefa
  • Um pipeline de publicação que abastece ambas as lojas a partir de uma compilação
Como trabalhamos

Como construímos apps em Flutter

Estado tipado, modelos gerados e uma arquitetura em camadas mantêm a app sustentável à medida que cresce, e uma única equipa pode ficar responsável pelas duas plataformas com confiança.

  1. 1

    Dar forma à app

    Fixamos os fluxos, o comportamento offline e as integrações nativas, e acordamos a arquitetura antes de construir.

  2. 2

    Fundação tipada

    Estado com Riverpod, navegação com go_router e modelos imutáveis com freezed: uma base que aguenta para lá dos primeiros ecrãs.

  3. 3

    Construir e integrar

    Ecrãs e funcionalidades em iterações, ligados à sua API com sincronização tolerante ao modo offline e as integrações de plataforma de que precisa.

  4. 4

    Testar em dispositivos reais

    Testes de widget e de integração, mais testes em hardware real nos casos de rede fraca e de passagem para segundo plano que quebram as apps.

  5. 5

    Publicar em ambas as lojas

    Um pipeline de publicação que compila uma vez e publica na App Store e na Play Store, para que as funcionalidades cheguem a todo o lado ao mesmo tempo.

Entregáveis

O que recebe

Uma app em produção em ambas as lojas, a partir de uma base de código sobre a qual a sua equipa pode continuar a construir.

O que recebe
  • Uma única base de código em Flutter a correr em iOS e Android
  • Estado e roteamento tipados com uma arquitetura clara e em camadas
  • Sincronização tolerante ao modo offline contra o seu backend
  • As integrações nativas de que a sua app precisa, feitas por plataforma
  • Testes de widget e de integração, executados em dispositivos reais
  • Um pipeline de publicação de compilação única para ambas as lojas de apps
Stack e abordagem

A toolchain de Flutter

Flutter 3.xRiverpod (estado)go_routerfreezed (modelos)Sincronização tolerante ao modo offlinePublicação em ambas as lojas

Uma única base de código em Dart para Android e iOS, estado tipado e imutável e uma só equipa responsável pelas duas plataformas. É sobre esta base que construímos a sua app.

Perguntas

Perguntas sobre desenvolvimento em Flutter

Porquê Flutter em vez de iOS e Android nativos?

O nativo oferece a máxima fidelidade à plataforma, mas implica duas bases de código, duas equipas e cada funcionalidade construída duas vezes. Com o Flutter, uma equipa publica nas duas plataformas a partir de uma única base de código, por isso cada funcionalidade é feita uma vez e chega a todos os dispositivos, sem a sensação de web view das ferramentas multiplataforma mais antigas. Para a maioria das apps de produto, compensa. Se a sua app depende das APIs de plataforma mais recentes, dizemo-lo.

Como se compara o Flutter ao React Native?

Ambos publicam em iOS e Android a partir de uma base de código. O Flutter desenha a sua própria interface, o que garante um comportamento consistente entre plataformas e versões, com tipagem forte via Dart; o React Native apoia-se no ecossistema JavaScript e em componentes nativos. Trabalhamos em Flutter porque o estado tipado e um único percurso de renderização mantêm as apps grandes sustentáveis, mas recomendamos o que melhor se adequar à sua equipa e ao seu produto.

Conseguem assumir uma app em Flutter já existente?

Sim. Começamos com uma breve análise da base de código (arquitetura, gestão de estado, cobertura de testes e as áreas de maior risco) e depois estendemo-la ou refatoramos as partes que o estão a travar. Fica a saber exatamente o que tem antes de mudarmos seja o que for.

A app vai lidar bem com redes más?

É uma das nossas prioridades. Construímos sincronização que tolera o modo offline para que a app se mantenha utilizável quando a ligação cai e volte a sincronizar sem problemas quando regressa. Também testamos a passagem para segundo plano e as redes fracas em dispositivos reais, porque é aí que falham as apps testadas apenas no wifi rápido do escritório.

Publique em ambas as lojas a partir de uma só equipa.

Fale-nos da sua app. Construímo-la em Flutter a partir de uma única base de código, com aspeto nativo nas duas plataformas.