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

Curso gratuito de Flutter com Firebase e GraphQL: app completo com Offline First, testes, TDD e CI/CD, do zero à publicação.

Neste curso gratuito, aprenda sobre

  • Visão Geral e Criação do Projeto
  • UI Inicial: Splash, Estilos, Assets e Onboarding
  • Formulários e Experiência de Cadastro
  • Arquitetura e Padrões: Controllers, Services, Navegação e Injeção de Dependências
  • Autenticação com Firebase e Persistência Local
  • Testes no Flutter: Unitários, Widget e Mocks
  • Home, Navegação por Abas e Organização em Camadas
  • Backend com Hasura e Integração com Firebase
  • GraphQL no Flutter: Client, Service e Consumo de API
  • Componentização, Agregações e Features de Transações e Carteira
  • Tratamento de Erros e Refatoração Assistida por IA
  • Offline First e Sincronização
  • Testes de Integração e CI com Firebase Test Lab
  • TDD e Desenvolvimento da Feature de Perfil
  • Estatísticas e Gráficos
  • Build, Assinatura e Publicação nas Lojas
  • CI/CD Completo e Feature de Recuperação de Senha

Descrição do curso

Aprenda a desenvolver um aplicativo completo com Flutter, explorando um fluxo real de produto do zero até a publicação. Neste curso gratuito, você constrói um app financeiro com foco em boas práticas de interface, organização de projeto e evolução incremental, passando por telas essenciais como onboarding, cadastro e navegação, com atenção a temas, estilos, componentes reutilizáveis e validações robustas de formulários.

Ao longo do desenvolvimento, você integra autenticação e recursos de backend, trabalhando com Firebase e GraphQL para criar uma base moderna e escalável. Você também aplica padrões de arquitetura e camadas como services, repositories e injeção de dependências, além de aprender a lidar com exceções e refatorações para manter o código sustentável conforme o app cresce.

O curso enfatiza qualidade e confiabilidade, incluindo testes unitários, de widget e de integração, uso de mocks e práticas de TDD para modelar funcionalidades com segurança. Para cenários do mundo real, você implementa uma estratégia Offline First com sincronização e persistência local, garantindo uma boa experiência mesmo sem conexão.

Para fechar o ciclo de entrega, você configura automações de CI/CD com pipelines e validações, cobre métricas de cobertura de testes e prepara o aplicativo para distribuição. Também são abordados detalhes importantes de assinatura, publicação e gerenciamento de releases, ajudando você a levar seu app do ambiente de desenvolvimento até as lojas com mais confiança.

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