Imagem do Curso gratuito Flutter: Desenvolvimento de App com Firebase, GraphQL, Offline First, Testes e CI/CD

Curso online gratuitoFlutter: Desenvolvimento de App com Firebase, GraphQL, Offline First, Testes e CI/CD

Duração do curso online: 24 horas e 10 minutos

Novo

Crie um app financeiro em Flutter do zero e evolua com Firebase, GraphQL, offline first, testes e CI/CD. Curso online gratuito para seu portfólio.

Neste curso gratuito, aprenda sobre

  • Criar e estruturar um app Flutter do zero (flutter create, arquitetura e widgets iniciais)
  • Construir UI: Splash/Onboarding, temas, gradientes, componentes e reuso/refatoração
  • Configurar pubspec.yaml: assets, fontes e organização de recursos do projeto
  • Criar botões e textos interativos (RichText, GestureDetector, TextButton) com boa composição
  • Formulários com TextFormField: validação, GlobalKey, controllers, RegEx e separação de responsabilidades
  • Gerenciar estado com setState, ChangeNotifier e padrões de controller (State Pattern)
  • Navegação e rotas: pushReplacement para fluxo sem voltar à Splash e organização de rotas
  • Injeção de dependências com GetIt: factory vs lazy singleton e uso de service locator
  • Autenticação com Firebase: signup/login, persistência (Secure Storage) e sessão na Splash
  • Arquitetura com Service e Repository patterns: responsabilidades e desacoplamento de camadas
  • Backend com Hasura + Firebase: JWT/admin_jwt_secret, Functions e sincronização de usuários
  • Consumo de GraphQL: client/service, paginação (limit/offset) e mapeamento de modelos
  • Offline First com sqflite: fila/sync service para operar sem internet e sincronizar depois
  • Qualidade e entrega: testes (unit/widget/integração), CI no GitHub, TDD, Codecov e release

Descrição do curso

Desenvolver apps profissionais exige mais do que montar telas: é preciso arquitetura, autenticação segura, persistência de dados, integração com APIs, qualidade com testes e um fluxo de entrega confiável. Neste curso online gratuito, você constrói um app financeiro completo com Flutter, passando por decisões práticas que aparecem no dia a dia de produtos reais — desde a primeira tela até a publicação.

Ao longo do projeto, você aprende a estruturar o aplicativo para crescer com organização, criando componentes reutilizáveis, aplicando padrões como Service e Repository, e configurando navegação e rotas de forma consistente. Você também trabalha com formulários, validações, temas, estilos e refatorações, entendendo como manter o código legível e fácil de manter conforme as funcionalidades aumentam.

Na parte de dados e back-end, o curso explora um fluxo moderno com Firebase Authentication e integração via GraphQL, incluindo permissões e estratégias para sincronização de usuários. Você verá como consumir API com GraphQL no Flutter, lidar com mapeamento de modelos, tratar erros sem espalhar exceções pela UI e desenhar uma camada de acesso a dados mais previsível.

Para ir além do “funciona no meu celular”, você aplica testes unitários, de widget e de integração, aprendendo quando usar cada tipo e como aumentar confiança sem travar a evolução do app. O curso ainda mostra como montar um pipeline com GitHub Actions, rodar testes no Firebase Test Lab, acompanhar cobertura e organizar um fluxo de CI/CD que ajuda a evitar regressões.

E como apps de verdade não podem depender de internet perfeita, você implementa uma abordagem Offline First, com armazenamento local e um serviço de sincronização para manter inserções e atualizações operando mesmo sem conexão. Ao final, você terá uma visão ponta a ponta: autenticação, dados, UI, qualidade, automação e publicação — uma base sólida para aplicar em projetos, freelas e vagas mobile.

Conteúdo do curso

  • Aula em vídeo: App Financeiro com Flutter: apresentação (EP01) 07m
  • Exercício: No MVP inicial do app financeiro, quais funcionalidades foram priorizadas?
  • Aula em vídeo: App Financeiro com Flutter: flutter create (EP02) 11m
  • Aula em vídeo: App Financeiro com Flutter: widgets e arquitetura inicial (EP03) 18m
  • Exercício: Ao criar a tela de Splash no Flutter, qual é a forma correta de aplicar um gradiente de fundo em um Container?
  • Aula em vídeo: App Financeiro com Flutter: splash page, cores e estilos de texto (EP04) 10m
  • Aula em vídeo: App Financeiro com Flutter: pubspec.yaml e assets (EP05) 15m
  • Exercício: Qual é o arquivo onde se declara a fonte personalizada e o caminho dos assets (imagens) para o Flutter reconhecer no projeto?
  • Aula em vídeo: App Financeiro com Flutter: onboarding page, layout e botões (EP06) 19m
  • Aula em vídeo: App Financeiro com Flutter: widgets personalizados (EP07) 32m
  • Exercício: Ao precisar de um botão com fundo em gradiente no Flutter, qual abordagem é a mais adequada para permitir o uso de LinearGradient e ainda manter o efeito de toque?
  • Aula em vídeo: App Financeiro com Flutter: refatoração e reuso de código (EP08) 09m
  • Aula em vídeo: App Financeiro com Flutter: RichText, Row, GestureDetector e TextButton (EP09) 25m
  • Exercício: Ao criar um texto com partes clicáveis e estilos diferentes no Flutter, qual abordagem tende a reduzir a complexidade e aproveitar melhor widgets nativos?
  • Aula em vídeo: App Financeiro com Flutter: refatoração da onboarding page (EP10) 14m
  • Aula em vídeo: App Financeiro com Flutter: sign up page, TextFormField e TextField (EP11) 14m
  • Exercício: Ao implementar campos de e-mail e senha em uma tela de cadastro, qual widget é mais adequado quando você precisa de validação nativa por campo (ex.: e-mail obrigatório) dentro de um formulário?
  • Aula em vídeo: App Financeiro com Flutter: personalização de campos e temas (EP12) 12m
  • Aula em vídeo: App Financeiro com Flutter: propriedades visuais do TextFormField (EP13) 30m
  • Exercício: Em Flutter, qual abordagem permite reutilizar uma borda padrão (OutlineInputBorder) e alterar apenas alguns atributos, como a cor no estado de foco, sem recriar tudo do zero?
  • Aula em vídeo: App Financeiro com Flutter: setState e campo de senha (EP14) 18m
  • Aula em vídeo: App Financeiro com Flutter: Form, GlobalKey e validação de campos de formulários (EP15) 22m
  • Exercício: No Flutter, qual é o comportamento correto da propriedade validator em um TextFormField ao chamar FormState.validate()?
  • Aula em vídeo: App Financeiro com Flutter: initState, onChanged e helperText (EP16) 12m
  • Aula em vídeo: App Financeiro com Flutter: validações com RegEx (EP17) 25m
  • Exercício: Ao organizar validações de formulário em Flutter, qual abordagem melhora a separação de responsabilidades?
  • Aula em vídeo: App Financeiro com Flutter: controller, ChangeNotifier e State Pattern (EP18) 26m
  • Aula em vídeo: App Financeiro com Flutter: showDialog e showModalBottomSheet (EP19) 24m
  • Exercício: Ao usar um Container no Flutter, qual é a forma correta de aplicar cor e borda arredondada sem gerar erro de propriedades conflitantes?
  • Aula em vídeo: App Financeiro com Flutter: service pattern (EP 20) 27m
  • Aula em vídeo: App Financeiro com Flutter: navegação e rotas (EP21) 19m
  • Exercício: Ao navegar da Splash Page para a próxima tela, qual método evita que a Splash permaneça na pilha de navegação, impedindo o retorno para ela ao pressionar voltar?
  • Aula em vídeo: App Financeiro com Flutter: snippets e sign up page (EP22) 16m
  • Aula em vídeo: App Financeiro com Flutter: service locator pattern e injeção de dependências (EP23) 20m
  • Exercício: No padrão Service Locator usando GetIt, qual a diferença prática entre registrar uma dependência com registerLazySingleton e com registerFactory?
  • Aula em vídeo: App Financeiro com Flutter: Firebase Authentication (EP24) 31m
  • Aula em vídeo: App Financeiro com Flutter: persistência de dados com Secure Storage (EP25) 28m
  • Exercício: Ao implementar um fluxo de login/cadastro no Flutter com Firebase, qual é uma estratégia adequada para evitar buscar dados do usuário a todo momento e permitir que a Splash decida se navega para Home ou Login?
  • Aula em vídeo: App Financeiro com Flutter: conclusão do fluxo de autenticação (EP26) 18m
  • Aula em vídeo: App Financeiro com Flutter: testes unitários e testes de widget (EP27) 26m
  • Exercício: Na pirâmide de testes em Flutter/Dart, qual tipo de teste tende a ter maior grau de confiança e também maior custo de manutenção e execução mais lenta?
  • Aula em vídeo: App Financeiro com Flutter: Mocktail (EP28) 41m
  • Aula em vídeo: App Financeiro com Flutter: BottomAppBar e PageView (EP29) 28m
  • Exercício: Para evitar que as páginas de um PageView sejam destruídas e reconstruídas a cada troca de aba, qual abordagem mantém o estado (ex.: initState) sendo executado apenas uma vez por página?
  • Aula em vídeo: App Financeiro com Flutter: construção da home e uso de tamanhos proporcionais (EP30) 32m
  • Aula em vídeo: App Financeiro com Flutter: repository pattern (EP31) 30m
  • Exercício: No padrão Repository em Flutter, qual é o principal papel do repositório na arquitetura do app?
  • Aula em vídeo: App Financeiro com Flutter: feature sign out (EP32.1) 11m
  • Aula em vídeo: App Financeiro com Flutter: backend com Hasura (EP32.2) 16m
  • Exercício: Qual é o fluxo de integração proposto para sincronizar a criação de usuários entre Firebase e Hasura?
  • Aula em vídeo: App Financeiro com Flutter: Firebase Auth, Cloud Functions e Hasura (EP32.3) 33m
  • Aula em vídeo: App Financeiro com Flutter: permissões de acesso ao Hasura (EP32.4) 11m
  • Exercício: Ao integrar Firebase Auth com Hasura, qual é o objetivo de configurar o admin_jwt_secret nas variáveis de ambiente do Hasura?
  • Aula em vídeo: App Financeiro com Flutter: GraphQL Flutter e GraphQL Service (EP32.5) 30m
  • Aula em vídeo: App Financeiro com Flutter: consumo de API com GraphQL (EP32.6) 21m
  • Exercício: Ao converter o campo value vindo da API para o modelo de transação, qual foi o problema tratado e a solução aplicada?
  • Aula em vídeo: App Financeiro com Flutter: extração de widgets e componentes (EP33.1) 27m
  • Aula em vídeo: App Financeiro com Flutter: BalanceCard, ConstrainedBox e BoxConstraints (EP33.2) 22m
  • Exercício: Ao transformar um widget em componente reutilizável (ex.: lista de transações), qual abordagem é a mais indicada para reduzir acoplamento?
  • Aula em vídeo: App Financeiro com Flutter: agregação de dados (EP34) 27m
  • Aula em vídeo: App Financeiro com Flutter: feature Transactions (EP35) 22m
  • Exercício: Ao navegar para a tela de transação, como o app decide se deve criar uma nova transação ou atualizar uma existente?
  • Aula em vídeo: App Financeiro com Flutter: Dart Extensions (EP36) 18m
  • Aula em vídeo: App Financeiro com Flutter: feature Wallet e paginação (EP37) 30m
  • Exercício: Ao implementar paginação de transações com GraphQL, qual é a função do limit e do offset?
  • Aula em vídeo: App Financeiro com Flutter: refatoração, melhorias e noções de princípios de projeto (EP38) 24m
  • Aula em vídeo: App Financeiro com Flutter: introdução ao tratamento de exceções (EP39) 36m
  • Exercício: Ao adotar a abordagem de DataResult (estilo Either/Railway oriented) para tratar falhas em chamadas GraphQL, qual é a principal mudança em relação a lançar exceções até a tela?
  • Aula em vídeo: App Financeiro com Flutter: refatorando código com ajuda do Bard e ChatGPT (EP40) 29m
  • Aula em vídeo: App Financeiro com Flutter: Offline First, sqflite e Sync Service (EP41) 46m
  • Exercício: Em um fluxo Offline First com Flutter, qual foi a estratégia usada para manter inserções/atualizações funcionando sem internet e sincronizar depois?
  • Aula em vídeo: App Financeiro com Flutter: testes de integração e Firebase Test Lab (EP42) 30m
  • Aula em vídeo: App Financeiro com Flutter: Github Actions / CI e Firebase Test Lab (EP43) 36m
  • Exercício: Em um pipeline de CI com GitHub Actions para testes de integração em Flutter usando Firebase Test Lab, qual conjunto de etapas descreve corretamente o fluxo essencial?
  • Aula em vídeo: App Financeiro com Flutter: cobertura de testes e Codecov (EP44) 20m
  • Aula em vídeo: App Financeiro com Flutter: noções de Test Driven Development (EP45.1) 24m
  • Exercício: No ciclo do TDD, qual sequência descreve corretamente o fluxo usado para evoluir uma funcionalidade com segurança?
  • Aula em vídeo: App Financeiro com Flutter: Profile Controller com TDD (EP44.2) 25m
  • Aula em vídeo: App Financeiro com Flutter: Profile Page Speed Code (EP45.3) 15m
  • Exercício: Ao construir a tela de perfil no Flutter, qual foi a decisão adotada para não aplicar TDD nessa etapa?
  • Aula em vídeo: App Financeiro com Flutter: revisão da feature profile (EP45.4) 26m
  • Aula em vídeo: App Financeiro com Flutter: Pull Request e Merge da Profile Feature (EP46) 26m
  • Exercício: Ao integrar mudanças de uma branch em outra via Pull Request, qual prática ajuda a evitar conflitos e manter a branch principal estável?
  • Aula em vídeo: App Financeiro com Flutter: Funcionalidade de Estatísticas com Gráficos (EP47) 28m
  • Aula em vídeo: App Financeiro com Flutter: Alteração de Ícones (EP48.1) 11m
  • Exercício: Qual é a forma correta de ler uma variável de ambiente definida via Dart Define no Flutter (por exemplo, para configurar o endpoint do GraphQL)?
  • Aula em vídeo: App Financeiro com Flutter: Assinatura do App (EP48.2) 20m
  • Aula em vídeo: App Financeiro com Flutter: Google Play Console (EP48.3) 18m
  • Exercício: Ao preparar um app Flutter para publicação no Google Play, qual comando gera o arquivo que será enviado para a loja (App Bundle)?
  • Aula em vídeo: App Rejeitado na Play Store. O que fazer? (EP49) 19m
  • Aula em vídeo: App Publicado, Releases e Tags (EP50) 20m
  • Exercício: Em um fluxo de CI/CD com GitHub Actions, quando é mais adequado executar testes de integração em comparação aos testes unitários?
  • Aula em vídeo: CI-CD com Envio Automático do App para Play Store e App Store (EP51) 21m
  • Aula em vídeo: Feature Esqueci a Senha (EP52) 15m
  • Exercício: Qual é o comportamento principal da funcionalidade Esquecer a senha implementada com Firebase Authentication?

Este curso gratuito inclui:

24 horas e 10 minutos de curso online em vídeo

Certificado digital de conclusão de curso ( Gratuito )

Exercícios para treinar seus conhecimentos

100% gratuito, do conteúdo ao certificado

Pronto para começar?Baixe o app e comece hoje mesmo.

Instale o app agora

para ter acesso ao curso
Ícone representando cursos de tecnologia e negócios

+ de 5.000 cursos gratuitos

Programação, Inglês, Marketing Digital e muito mais! Aprenda o que quiser, gratuitamente.

Ícone de calendário com alvo representando planejamento de estudos

Plano de estudos com IA

A Inteligência Artificial do nosso aplicativo pode criar um cronograma de estudos para o curso que você escolher.

Ícone de profissional representando carreira e negócios

Do zero ao Sucesso profissional

Melhore seu currículo com nosso Certificado gratuito e depois utilize nossa Inteligência Artificial para buscar seu emprego dos sonhos.

Você também pode utilizar o QR Code ou os Links abaixo

QR Code - Baixar Cursa - Cursos Online

Mais cursos gratuitos em Programação de Aplicativos

Ebook + Áudiobooks gratuitos! Aprenda ouvindo ou lendo!

Baixe o Aplicativo agora para ter acesso a + de 5000 cursos gratuitos, exercícios, certificado e muito conteúdo sem pagar nada!

  • Cursos online 100% gratuitos do início ao fim

    Milhares de cursos online em vídeo, ebooks e áudiobooks.

  • Mais de 60 mil exercícios gratuitos

    Para testar seus conhecimentos no decorrer dos cursos online

  • Certificado Digital gratuito válido em todo o Brasil

    Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail

Aplicativo Cursa na tela de ebook, na tela de curso em vídeo e na tela de exercícios do curso, mais o certificado de conclusão de curso