Aprenda Flutter & Dart e Construa APPs iOS e Android
Um Guia Completo do Flutter SDK & Flutter Framework para a construção de aplicações nativas iOS e Android
Confira algumas coisas que você aprenderá durante o curso.
Construa aplicativos móveis nativos e envolventes para Android e iOS com Flutter
Aprenda todas as funcionalidades básicas e avançadas que você não encontrará em nenhum outro curso de Flutter
Criar Apps do zero com interfaces responsivas e adaptativas
Aprender a utilizar o MobX
Você vai se deparar com diversos projetos super completos aonde você aprenderá formas de lidar com diversas situações, como gerenciamento de estado e navegação.
Fundamentos da Linguagem Dart
Utilize funcionalidades como o Google Maps, a câmera do dispositivo, autenticação e muito mais!
Você vai aprender Flutter não só em teoria, mas vamos construir várias aplicações completas e realistas
Fazer o deploy nas lojas de aplicativos!
Trabalhar com inputs do usuário por meio de formulários. Assim você vai conseguir fazer a interação do usuário com o seu app de forma eficaz!
Curso esta acima das expectativas. Parabéns mais uma vez para o Leo, didática e conhecimentos acima da média.
Curso esta acima das expectativas. Parabéns mais uma vez para o Leo, didática e conhecimentos acima da média.
Ler menosTexto, contexto, didatica, tudo de bom e muito produtivo
Texto, contexto, didatica, tudo de bom e muito produtivo
Ler menosAulas ótimas, didática incrível.
Aulas ótimas, didática incrível.
Ler menosBem Vindo!
TESTE GRÁTISVisão Geral do Curso
TESTE GRÁTISO que é flutter?
Características do Flutter
Flutter para APP Nativa
Atualizações do Flutter
Usando o terminal
Terminais
Instalação no Windows
Instalação no MacOS
Instalação no Linux
Correção - Unable to find bundled Java version
Executando Flutter com VSCode
Material Design
Flutter vs React Native vs Ionic
TESTE GRÁTISComo Aproveitar o Curso
Lidando com problemas
Conclusão do Módulo
Introdução do Módulo
Conhecendo o Projeto
Criando um Novo Projeto
Estrutura do Projeto Criado
Analisando o Código Padrão
Lidando com o NullSafety no Flutter 2
Resumão da Linguagem Dart #01
Resumão da Linguagem Dart #02
TESTE GRÁTISResumão da Linguagem Dart #03
Construindo o Primeiro Widget #01
Construindo o Primeiro Widget #02
Resumo até Aqui
Árvore de Widgets
Widgets Visíveis & Widgets Invisíveis #01
Widgets Visíveis & Widgets Invisíveis #02
Usando Column para Organizar os Widgets
Conectando Função ao Evento do Botão
Funções Anônimas
Variáveis em StatelessWidget
Usando StatefulWidget #01
Usando StatefulWidget #02
Flutter é Cirúrgico
Tornando Membros Privados
Criando Widget Questão
Container Widget
Aplicando Estilo ao Widget Questão
Documentação Oficial
Desafio Novo Widget
Desafio Novo Widget - Resposta
Passando Função Callback
Correção dos erros de tipo Object e String
Usando Tipo Map nas Perguntas
Lista para Widgets #01
Lista para Widgets #02
Correção do type 'Null' is not a subtype of type 'List'
Evitando Acessar Pergunta Inválida
Exibindo Resultado
Dividindo APP em Widgets
Desafio Widget Resultado
Desafio Widget Resultado - Resposta
Correção no required
Widget Questionário
Correção no map
Adicionando Pontuação #01
Correção do int
Adicionando Pontuação #02
Adicionando Pontuação #03
Reiniciando Questionário
Testando APP no Android
Conclusão do Módulo
Introdução do Módulo
Executando em Dispositivos Android Real
Executando em Dispositivos iOS Real
Problema do "iproxy" no Deploy no iOS
Trabalhando com Emuladores
Corrigindo Erros
Usando Debugger
DevTools
Entendendo Repaint Rainbow
Resumo DevTools
Conclusão do Módulo
Introdução do Módulo
Visão Geral do Projeto
TESTE GRÁTISWidgets Importantes
Planejando a Aplicação
Criando o Projeto
Combinando Widgets
Column & Row
Correção Transaction e SDK
Criando Classe de Modelo (Transaction)
Mapear Dados para Widgets
Item Lista Personalizado #01
Item Lista Personalizado #02
Aplicando Estilo no Container
Aplicando Estilo no Texto
Desafio Estilo Título & Data
Desafio Estilo Título & Data - Resposta
Container vs Column/Row
Usando Interpolação de Strings
Correção de versão do INTL
Instalando Pacote Externo Intl
Usando TextField #01
Usando TextField #02
Dividindo App em Widgets
Adicionando Transação #01
Adicionando Transação #02
Lista com Rolagem (Scroll)
Usando ListView
Teclado Numérico
Botões para Adicionar Transação
Exibindo Formulário (Modal)
Correção do Formulário
Parâmetros em Stateful Widget
Fechando Formulário (Modal)
Atualização no Theme
Estilo com Theme
Correção do 'title' ou 'headline6' deprecated
Fontes Personalizadas & Theme
Adicionar Imagem
Planejando Chart Widget
Chart Widget #01
Chart Widget #02
Chart Widget #03
Chart Widget #04
Chart Widget #05
Usando Chart Widget
Finalizando Chart Widget
Flexible & Expanded
Usando ListTile
Melhorando Chart Widget
São Muitos Widgets Diferentes!
Preparando Formulário
Exibindo DatePicker
Transação com Data
Excluindo Transação
Ajustando Altura da Lista
Deploy no iOS
Conclusão do Módulo
Introdução do Módulo
O Que é Responsividade?
Pontos de Melhoria
Calculando Tamanho Dinamicamente
Responsividade em Textos
Usando LayoutBuilder
Orientações Suportadas
Modo Paisagem #01
Modo Paisagem #02
Modo Paisagem #03
Modo Paisagem #04
Ajustando Formulário
Aproveitando Larguras Maiores
Objeto Media Query
Alternando para Simulador iOS
Detectando a Plataforma
Correção Componente iOS
Componentes iOS
Componente SafeArea
Botão Adaptativo
Desafio TextField Adaptativo
Desafio TextField Adaptativo - Resposta
DatePicker Adaptativo
Conclusão do Módulo
Introdução do Módulo
60FPS é um Problema?
Árvore de Widgets & Árvore Elementos
Como a Tela é Atualizada?
Quando o Método Build é Chamado?
Construtores e Widgets Constantes
Escrevendo Bons Códigos
Desafio Extraindo Widget
Desafio Extraindo Widget - Resposta
Ciclo de Vida dos Widgets
Ciclo de Vida da Aplicação
Entendendo Context
O Problema com Listas e Stateful Widget
Entendendo a Causa do Problema
Usando Chaves
Conclusão do Módulo
Introdução do Módulo
Visão Geral da APP
Iniciando a APP
Tela de Categorias
Componente Item Categoria
Tema & Estilo
Navegando para uma Nova Tela
Passando Dados via Construtor
Rotas Nomeadas #01
Rotas Nomeadas #02
Criando Modelo Refeição
Selecionando Refeições por Categoria
Componente Item Refeição #01
Componente Item Refeição #02
Navegando para Tela de Detalhe da Refeição
onGenerateRoute & onUnknownRoute
Tela Detalhe Refeição #01
Tela Detalhe Refeição #02
Adicionando TabBar na AppBar
Correção na TabBar Inferior
Adicionar TabBar na Parte Inferior
Adicionar Drawer Personalizado
Adicionando Links no Drawer
Substituindo Telas
Fechando a Tela & Passando Dados de Volta
Tela de Configurações
Filtrando os Dados #01
Correção da filtragem
Filtrando os Dados #02
Filtrando os Dados #03
Marcar como Favorito
Problema com a Marcação de Favorito
Conclusão do Módulo
Introdução do Módulo
Visão Geral do APP
Código inicial e final do módulo
Configuração do Projeto
Inherited Widget
Criando Modelo Produto
Componente Grid de Produtos
Componente Item de Produto
Estilizando APP
Navegando para Detalhe de Produto
Inherited Widget na Prática
O que é Estado?
Como o Provider Funciona?
Entendendo Mixins
Usando Provider
Extraindo Grid de Produtos
Marcando Produto como Favorito
ChangeNotifierProvider.value
Alterando Listen para False
Usando Consumer
Filtrar Favoritos #01
Filtrar Favoritos #02
Carrinho e Item do Carrinho
MultiProvider
Aviso sobre Widget “Badge”
Integrando Provider do Carrinho
Navegando para Tela do Carrinho
Componente Carrinho #01
Componente Carrinho #02
Itens do Carrinho
Remover Item
Componente Detalhe Produto
Criando Provider para Pedido
Adicionar Pedidos
Componente Pedidos #01
Navegação com Drawer
Componente Pedidos #02
Componente Pedidos #03
Conclusão do Módulo
Introdução do Módulo
Usando Snackbar
Confirmação com Dialog
Componente Gerenciamento de Produto #01
Componente Gerenciamento de Produto #02
Componente Formulário de Produto
Usando o Form do Flutter
Controlando o Foco
Campo de Entrada de Multiplas Linhas
Testando no Android
Campo de Entrada de URL
Submetendo o Formulário
Validação do Formulário #01
Validação do Formulário #02
Salvar Produto
Editar Produto
Excluir Produto
Desafio Confirmar Exclusão do Produto
Desafio Confirmar Exclusão do Produto - Resposta
Conclusão do Módulo
Tipos de Armazenamento
Como é feita a conexão com BD?
Configurando o Backend com Firebase
Requisições HTTP e API Rest
Enviando Requisição POST
Entendendo Future #01
Entendendo Future #02
Exibindo Indicador de Progresso
Tratamento de Erro
Async/Await
Obtendo Produtos
Exibindo os Produtos
Correção no Carregamento dos Produtos
Implementando Pull-To-Refresh
Atualizando o Produto
Exclusão Otimista #01
Exclusão Otimista #02
Desafio Atualizar Favoritos
Desafio Atualizar Favoritos - Resposta
Armazenando os Pedidos no Firebase
O Produto Chegou
Carregando os Pedidos
FutureBuilder
Conclusão do Módulo
Introdução Módulo
Visão Geral do APP
Funcionamento da Autenticação
Configurando o Backend (Firebase)
Tela de Autenticação #01
Tela de Autenticação #02
Tela de Autenticação #03
Tela de Autenticação #04
Registrando Usuário
Login de Usuário
Tratando Erros de Autenticação
Gerenciando Token
Usando "ProxyProvider" para Compartilhar o Token
Aplicando Token em Todas as Requisições
Associar Marcação de Favorito ao Usuário #01
Associar Marcação de Favorito ao Usuário #02
Associar Pedido ao Usuário
Implementando o Logout
Logout Automático
Login Automático #01
Login Automático #02
Regras do Realtime Database
Conclusão do Módulo
Introdução do Módulo
Criando Animação do Zero
Usando Widget AnimatedBuilder
Usando Widget AnimatedContainer
Usando Mais Animações
Correção de Responsividade
Animação no Carregamento das Imagens
Adicionando Transição "Hero"
Trabalhando com Slivers
Melhorando Contraste do Texto
Animando a Tela de Pedidos
Animando as Transições entre Telas
Conclusão do Módulo
Introdução do Módulo
Visão Geral da App
Código Final do Módulo
Estrutura Inicial do Projeto
Classe de Modelo e Provider
Formulário Novo Lugar
Correção no ImagePicker
Acessando Câmera
Evoluindo Componente ImageInput
Submetendo Formulário
Componente Lista de Lugares
Testando Dispositivo Real: Android
Testando Dispositivo Real: iOS #01
Testando Dispositivo Real: iOS #02
Usando SQLite #01
Usando SQLite #02
Componente LocationInput
Obtendo Localização Atual
Mudanças no Google Cloud
Configurando Maps API
Mostrando Imagem Estática do Mapa
Instalando Google Maps para Flutter
Exibindo Mapa
Selecionando Localização #01
Selecionando Localização #02
Salvando Localização no SQLite
Tela de Detalhe do Lugar
Correção de bug no formulário
Conclusão do Módulo
Introdução do Módulo
Configuração do Projeto
Código Inicial, Final e imagem
Loading Page
Como Organizei as Aulas
Auth Page #01
Auth Page #02
Auth Page #03
Auth Page #04
Auth Page #05
Configuração do Image Picker
Auth Page #06
Lógica Auth #01
Lógica Auth #02
Lógica Auth #03
Entendendo Stream
Lógica Auth #04
Lógica Auth #05
Registrando Imagem
Usuário Padrão
Construtor Factory
Chat Page
Chat Message Model
Chat Service
Componente Message
Componente Message Bubble #01
Componente Message Bubble #02
Componente Message Bubble #03
Componente New Message
Chat Notification Service #01
Chat Notification Service #02
Ícone Notification
Notification Page
Criando Aplicação Android no Firebase
Criando Aplicação iOS no Firebase
Instalando Dependências Firebase
Correção na Build para iOS
Deploy IOS
Deploy Android
Iniciando Firebase APP
Habilitando Autenticação no Firebase
Autenticação Com Firebase #01
Autenticação Com Firebase #02
Firebase Storage
Aplicação de Chat - Firebase, Upload Imagem e Push Notifications
Autenticação Com Firebase #03
Autenticação Com Firebase #04
Salvando Mensagens do Firestore #01
Salvando Mensagens do Firestore #02
Salvando Mensagens do Firestore #03
Salvando Mensagens do Firestore #04
Salvando Mensagens do Firestore #05
Obtendo Mensagens do Firestore #01
Obtendo Mensagens do Firestore #02
Correção de Bug na Criação de Usuário
Push Notification #01
Push Notification #02
Push Notification #03
Push Notification #04
Push Notification #05
Configurando Push Notification no iOS
Introdução do Módulo
Preparando o Projeto
Integração com Android #01
Integração com Android #02
Integração com iOS
Conclusão do Módulo
Introdução do Módulo
Código Inicial do Módulo
Configuração do ID da Aplicação - Android
Configuração do ID da Aplicação - IOS
Imagens Usadas na Aplicação
Adicionando Ícones & Splash Screens #01
Adicionando Ícones & Splash Screens #02
Publicando a APP na Google Play Store #01
Publicando a APP na Google Play Store #02
Publicando a APP na Google Play Store #03
Publicando a APP na Apple Store
Conclusão do Módulo
Visão Geral do Projeto
Classe Campo
Classe Campo - Teste
Classe Tabuleiro
Classe Tabuleiro - Teste
App Campo Minado
Componente Resultado
Registrar Imagens
Componente Campo
Componente Tabuleiro
Componente Stateful
Integrando Lógica
Calcular Tamanho do Tabuleiro
Construindo a Interface Gráfica
TESTE GRÁTISImplementando a Lógica
Código final
Introdução do Módulo
Visão Geral da Aplicação
Criação do Projeto
Princípios do Mobx
MobX na Prática
Componentes Iniciais
Componente EntradaTempo #01
Componente Cronômetro
Componente Botão Cronômetro
Pomodoro Store #01
Componente EntradaTempo #02
Pomodoro Store #02
Pomodoro Store #03
Pomodoro Store #04
Pomodoro Store #05
Testando no iOS
Melhorando a geração de código
Conclusão do Módulo
Introdução do Módulo
TESTE GRÁTISConfiguração do Dart
Como usar o Code Runner #01
Como usar o Code Runner #02
Lidando com o NullSafety no Flutter 2
Primeiro Programa
Variáveis #01
Variáveis #02
Atualização na entrada do usuário no Dart
Constantes #01
Tipos Básicos #01
Tipos Básicos #02
Notação Ponto
Operadores #01
Operadores #02
Operadores #03
Operadores #04
Constantes #02
Interpolação
Usando Generics
Conclusão do Módulo
Introdução do Módulo
If/Else
Desafio If/Else
For #01
For #02
For #03
Correção no readLineSync()
While
Switch
Break/Continue
Desafio For
Desafio For - Resposta
Conclusão do Módulo
Introdução do Módulo
Algoritmo e Funções
Básico sobre Função #01
Básico sobre Função #02
Parâmetros de Tipo Dinâmico
Parâmetros Opcionais
Parâmetros Nomeados
Função em Variável #01
Função em Variável #02
Função como Parâmetro
Retornar Função #01
Retornar Função #02
Função com Generics
Função Filter #01
Função Filter #02
Função Filter #03
Map & Reduce #01
Map & Reduce #02
Map & Reduce #03
Conclusão do Módulo
Introdução do Módulo
O Básico sobre Classe
Métodos
Construtores
Construtores Nomeados
Import Relativo
Desafio Classe Carro
Desafio Classe Carro - Resposta
Getters/Setters
Composição #01
Composição #02
Composição #03
Conclusão do Curso
Bem vindo ao curso Flutter e Dart - Aprenda e Construa APP iOS e Android 2020
Participe do mais completo e mais vendido curso Flutter e aprenda como construir incríveis apps iOS e Android!
Você não precisa aprender Android/ Java e iOS/ Swift para construir apps móveis nativos de verdade! Você vai se tornar um desenvolvedor de App (Android e iOS) com este curso!
Flutter - um framework desenvolvido pela Google - permite que você aprenda uma linguagem (Dart) e construa belos apps nativos para celular em pouco tempo. Flutter é um SDK que fornece a ferramenta para compilar código Dart em código nativo e também lhe dá um rico conjunto de elementos UI pré-construídos e pré-instalados (os chamados widgets) que você pode usar para compor suas interfaces de usuário.
Flutter é uma tendência muito forte e é usado para grandes apps do Google como seu aplicativo Adwords - agora está marcado como "pronto para produção", por isso agora é a hora de entrar de cabeça e aprender!
Este curso vai ensinar Flutter & Dart do zero, NÃO é necessário nenhum conhecimento prévio de nenhum dos dois! E você certamente não precisa de nenhuma experiência de desenvolvimento com Android ou iOS, já que a ideia por trás do Flutter é aprender apenas uma linguagem.
Você vai aprender Flutter não só em teoria, mas vamos construir várias apps completas e realista ao longo deste curso. Este app apresentará tanto o básico quanto recursos avançados como o uso do Google Maps, a câmera do aparelho, adicionando animações e muito mais!
Com o Flutter, você poderá escrever código apenas uma vez e enviar suas apps tanto para a Apple AppStore como para o Google Play.
Use o Material Design do Google para construir apps bonitos, totalmente personalizáveis, em pouco tempo e com quase zero de esforço. Você pode usar o rico conjunto de widgets que o Flutter fornece para adicionar elementos comuns de IU como botões, switches, formulários, barras de ferramentas, listas e muito mais - ou você simplesmente constrói seus próprios widgets - o Flutter também faz disso algo muito suave.
Aqui está o que está incluído no curso:
1 - Instruções detalhadas de configuração tanto para MacOS como para Windows
2 - Uma introdução completa a Flutter, Dart e o conceito por trás dos widgets
3 - Uma visão geral dos widgets incorporados e como você pode adicionar os seus próprios widgets
4 - Dicas e truques de depuração
5 - Navegação de páginas com separadores, gavetas laterais e navegação por pilha
6 - E mais!
Este curso é para você se:
1 - Você estiver interessado em construir verdadeiros aplicativos móveis nativos para as duas plataformas móveis mais populares - iOS e Android
2 - Você quer explorar o conjunto completo de recursos que o Flutter oferece
3 - Não quer passar horas para aprender duas linguagens completamente diferentes
Alguns temas que você vai aprender neste curso:
Fundamentos e Noções básicas (Flutter) - Nesse curso você vai aprender as noções básicas e fundamentos do Google Flutter e também da linguagem Dart (Como tipos, estruturas de controle, funções, orientação a objetos e mais), para que dessa forma você possa aprender essa tecnologia mesmo sem ter conhecimentos avançados de programação! Tudo isso com uma ótima didática e utilizando formas simples de se entender!
Apps e Interfaces - Você vai aprender a criar Apps do zero com interfaces responsivas e adaptativas, com navegação e múltiplas telas também. Tudo isso utilizando formas simples de se entender, com ferramentas leves e que você pode testar diretamente no seu celular enquanto edita o App!
Projetos - No curso você vai se deparar com diversos projetos super completos aonde você aprenderá formas de lidar com diversas situações, como gerenciamento de estado e navegação.
Input e formulários - No curso você vai aprender também a trabalhar com inputs do usuário por meio de formulários. Assim você vai conseguir fazer a interação do usuário com o seu app de forma eficaz!
Autenticação - Você aprenderá a fazer a autenticação do usuário dentro do seu aplicativo com cadastro e buscar em banco de dados!
Animações - Serão adicionadas e explicadas as animações no seu aplicativo, como transições e tudo mais!
Features nativas - Você vai aprender a utilizas as features nativas dos aparelhos, como câmera, localização, microfone!
Executando Nativamente - Vai ser explicado como executar o código nativamente para cada sistema. Kotlin para Android e Swift para iOS.
Publicação (Deploy) - No fim do curso será mostrado como se fazer o deploy nas lojas de aplicativos!
Widget (Stateless/Stateful) - No curso você irá aprender os conceitos de Widget, como funcionam, o que fazem, e como construí-los! Vai aprender qual a diferença entre Stateless Widget e Stateful Widget, quando e onde usar cada um deles e também como criar cada um deles.
Provider - Você irá aprender a utilizar o Provider, uma forma de gerenciar o estado do seu aplicativo e expor valores para outros widgets.
Banco de Dados - O curso irá mostrar como se trabalhar com banco de dados dentro do Flutter, fazendo a persistência de dados dentrod o seu aplicativo.
MobX - Nesse curso você vai aprender a utilizar o MobX, uma biblioteca para gestão de estado, o que significa que podemos utilizar ele para estados locais ou globais. O MobX se baseia em observáveis, ações e reação, um conceito que vem da programação reativa.
HTTP - O curso irá abordar toda a questão de http requests. Você vai aprender a preparar o seu backend, enviar requests via post, trabalhar com async e await, a buscar dados, atualizar dados.
Firebase - No curso você irá aprender a como utilizar o Firebase como backend, a fazer upload de imagens e a utilizar as notificações push. Tudo isso dentro um de projeto de app de chat!
Leonardo Leitão
Academind by Maximilian Schwarzmüller
Maximilian Schwarzmüller
Pessoas que adquiriram este curso também se interessaram pelos cursos abaixo
Todos os Cursos
Todos os Cursos
Todos os Cursos
Todos os Cursos
Não, o curso pode ser assistido a qualquer tempo sem limite de prazo.
Sim, ao final do curso você receberá um certificado baseado na carga horária pra concluir o curso
Sim, temos um time de suporte pronto pra tirar as dúvidas relativas ao conteúdo do curso.
Sim
Sim, basta enviar email para [email protected] e solicitar.