Udemy

Platform

Español

Language

Mobile Apps

Category

Flutter Avanzado: Lleva tu conocimiento al siguiente nivel

sockets, bloc, provider, cubit, jwt, mongo, express, GPS, rutas en mapa, tráfico, ApplePay, GooglePay y mucho más

4.87 (1287 reviews)

Students

33.5 hours

Content

Aug 2021

Last Update
Regular Price


What you will learn

Profundizar tu conocimiento de Flutter

Realizar cobros en tu aplicación

Hacer seguimiento y dibujar en mapas

Marcadores personalizados tipo Uber

Comunicación en tiempo real SIN Firebase

Crear varios backend capaz de manejar y mantener nuestras aplicaciones

Google Sign-in y Apple Sign-in contra nuestro propio backend

Cumplir los requisitos de Apple para usar autenticación con redes sociales

Mucho más


Description

Este es un curso cargado de información importante que nos ayudará a crear mejores aplicaciones con este increíble SDK de Google, pero aunque todo parezca increíble, este no es un curso para personas que están iniciando en esta tecnología. Por favor revisen los requisitos del curso antes de inscribirse.

Entre los temas que aquí tratamos están:

  • Google y Apple Sign-in

  • ApplePay y GooglePay

  • Direcciones en mapas

  • Trazar rutas en mapas

  • Marcadores personalizados

  • Widgets como marcadores

  • Sockets tanto en el Frontend (Flutter) y nuestro Backend

  • Diferentes gestores de estado

  • Flutter BLoC, Cubits, Provider...

  • RealTime Chat sin Firebase

  • Gráficas en tiempo real

  • Manejo de tokens

  • Pantallas de carga

  • Permisos y detectar cambios en servicios

  • Re-conexión en caso de caídas del socket server

  • Identificación y autenticación de clientes conectados por sockets

  • Node

  • MongoDB y MongoAtlas

  • JWT

  • Autenticación propia

  • Autenticación con Google y Apple Sign-in tanto en el Frontend y Backend

  • Despliegues en la nube

  • Git, Github y ramas

  • Y mucho más…

El curso cuenta con estructuras robustas tanto en el Frontend (Flutter) y en el Backend (Node principalmente), las cuales nos ayudarán a crear toda todas las aplicaciones y manejar la información centralizada, también cuenta con despliegues de nuestras APIS y Socket Server para realizar las pruebas reales en dispositivos y tener todo el control de la autenticación mediante redes sociales.

Otro objetivo del curso es ayudarte a perder el miedo a patrones como BLoC de manera que podamos apreciar el potencial y su poder sin perder el control del estado en ningún momento.

Al finalizar el curso, habrás creado aplicaciones de seguimiento en tiempo real, chats, cobros, autenticaciones, backend, dominar BLoC y otros gestores de estado, encriptaciones de contraseña, manejo de sesiones de usuario, Apple y Google sign-in y muchas cosas más que  llegarás a necesitar cuando quieras crear una aplicación que requiera una o todas esas tecnologías.


Screenshots

Flutter Avanzado: Lleva tu conocimiento al siguiente nivel
Flutter Avanzado: Lleva tu conocimiento al siguiente nivel
Flutter Avanzado: Lleva tu conocimiento al siguiente nivel
Flutter Avanzado: Lleva tu conocimiento al siguiente nivel

Content

Introducción

Introducción

¿Cómo funcionará el curso?

¿Cómo hacer preguntas?

Instalaciones necesarias

BandNameApp - Socket.io - Aplicación en tiempo real

Introducción a la sección

Temas puntuales de la sección

Demostración al final de lo que nos espera a continuación

Inicio de proyecto - BandNamesApp

Crear un modelo para el manejo de Bandas

Interfaz básica de nuestro HomePage

InputDialog y CupertinoDialog - Añadir a la lista

Borrar una banda - Dismissible

Realizar respaldo de nuestro proyecto a Github

Código fuente de la sección

BandNames - Socket Server - Express - Backend

Introducción a la sección

Temas puntuales de la sección

Inicio de proyecto - BandNames Socket Server

Crear un directorio público

Variables de entorno y Scripts

Socket.io - Configuración inicial

Emitir y Escuchar eventos

Archivo independiente de la configuración de sockets

Realizar respaldo de nuestro backend a Github

Código fuente de la sección

BandNames Flutter + Socket Backend

Introducción a la sección

Temas puntuales de la sección

Continuación de proyecto - BandNames

Socket Service - Conectar nuestra App con el Socket Server

Mostrar el Status del Servidor de Sockets

Escuchar eventos del servidor de sockets

Emitir evento de sockets desde Flutter

Indicador visual si hay conexión con el Socket Server

Backend: Lógica para el manejo de las votaciones

Socket: Emitir bandas registradas

Flutter: Escuchar evento 'active-bands'

Socket: Votar por una Banda

Socket: Agregar una nueva Banda

Socket: Borrar Banda

Pequeñas optimizaciones

Gráfica en tiempo real

Respaldo de nuestra aplicación a Github

Código fuente de la sección

Desplegar Socket Server en la nube

Introducción a la sección

Temas puntuales de la sección

Desplegar SocketServer en la nube

Correr la aplicación en múltiples dispositivos

RealTime Chat - Socket.io - Mongo - Express - JWT - Login y Registro

Introducción a la sección

Temas puntuales de la sección

Demostración del objetivo final de la sección

Inicio de la aplicación - RealTime Chat

Diseño del LoginPage

CustomInputField

Argumentos a nuestro CustomInput

Botón Azul

SingleChildScrollView

Registro y Navegar entre las pantallas

Respaldo de nuestra aplicación a Github

Código de la sección

Continuación de RealTime Chat - Usuarios y Mensajes

Introducción a la sección

Temas puntuales de la sección

Continuación de nuestra aplicación

Pull to refresh

ChatPage - Inicio

Caja de texto de nuestro chat

Detalles de nuestro ChatPage

Mensajes de burbujas

Animaciones de los mensajes

Limpieza al cerrar el ChatPage

Respaldo de la sección a GitHub

Código fuente de la sección

ChatApp - Backend

Introducción a la sección

Temas puntuales de la sección

Inicio de sección - ChatApp Backend

MongoAtlas - Base de datos en la nube

Conectar Node con Mongo Atlas

Crear nuestro primer Rest endpoint - Crear Usuario

Express Validator

Middleware personalizado - ValidarCampos

Crear usuario en base de datos

Validar que no exista el email

Encriptar la contraseña

Generar JWT

Login de Usuario

Renovar el JWT

Generar un nuevo JWT y retornar información del usuario

Respaldo de nuestra aplicación a Github

Código fuente de la sección

ChatApp - Autenticando contra nuestro backend

Introducción a la sección

Temas puntuales de la sección

Continuación de proyectos - Backend y FrontEnd - Autenticación

Petición HTTP.POST al login

Mapear respuesta de un login

Bloquear botón mientras se realiza la autenticación

Mostrar alerta si las credenciales no son correctas

Guardar JWT en el Storage (Keychain IOS, KeyStore Android)

Pantalla de Registro

Mantener la pantalla de usuarios si tenemos un token válido

Logout de nuestra aplicación

Respaldo de nuestra aplicación a Github

Código fuente de la sección

Socket.io en nuestra aplicación de Chat

Introducción a la sección

Temas puntuales de la sección

Nota importante

Continuación de proyectos

Conectar al Socket Server después de un inicio de sesión

Tarea - Cambiar ícono cuando hay conexión con el Socket Server

Autenticando el cliente conectado por sockets

Actualizar base de datos cuando un usuario se conecta

Servicio para retornar los usuarios

Mostrar lista de usuarios en nuestra App

Usuario seleccionado para el chat

Teoría sobre el envío de mensajes privados

Emitir un mensaje del chat al servidor

Escuchar mensajes del servidor en Flutter

Backend - Modelo de Mensajes

Guardar Mensaje en Base de Datos

Backend - Servicio para obtener los mensajes de chat

Cargar historial de chat en Flutter

Respaldo del código a GitHub

Código fuente de la sección

Manejadores de Estado - Singleton

Introducción a la sección

Temas puntuales de la sección

Inicio de proyecto - Manejar Estado

Diseño de ambas pantallas

Preparar repositorio y ramas

Singleton

Singleton - Establecer el usuario

Singleton - Re-dibujar Widgets cuando hay cambios en el servicio

Singleton - Varios listeners

Código fuente de la sección

Provider - Como manejador de estado

Introducción a la sección

Temas puntuales de la sección

Continuación de proyecto - EstadosApp

Provider - Configuración inicial

Provider - Establecer información del usuario

Provider - Cambiar edad mediante un método

Provider - Manejo de las profesiones

Guardar cambios en Git y cambiar ramas

Código fuente de la sección

Cubit - Manejador de estado

Introducción a la sección

Temas puntuales de la sección

Introducción al Cubit

Continuación de proyecto - Cubit

Creando nuestro primer Cubit

Cambiando el UI en base al estado del cubit

Cambiar a un nuevo estado

Mostrar información del usuario

Cambiar la edad del usuario dentro del Cubit

Añadir profesión

Código fuente de la sección

Patrón BLoC

Inicio de la sección

Temas puntuales de la sección

Continuación del proyecto

Configurando el BLoC

Mostrar Widgets condicionalmente basados en el estado del BLoC

Asignar un usuario al State

Copiar el estado anterior

Añadir una nueva profesión al State

Borrar el usuario

Código fuente de la sección

RutasApp - GoogleMaps + Mapbox Places

Introducción a la sección

Temas puntuales de la sección

Demostración del resultado final de la App

Inicio proyecto mapas_app

Pantallas necesarias y pantalla de carga

Pantalla de permiso de GPS

Permisos en IOS

Detectar cambios de estado de la app

Determinar el estado del servicio de GPS

Tarea - Detectar cuando el usuario activa el GPS

Código fuente de la sección

Mi ubicación y mapas

Introducción a la sección

Temas puntuales de la sección

Continuación del proyecto - Bloc de ubicación

Seguir la ubicación del usuario

Cambiar estado del bloc y mostrar las coordenadas

Configurar GoogleMaps - APIKEY Android

Configurar GoogleMaps - APIKEY IOS

Mostrar mapa a pantalla completa

Bloc para controlar el mapa

Remover warning del linter

Cambiar estilo del mapa

Mover el mapa a la ubicación central del usuario

Código fuente de la sección

Trazar ruta dentro del mapa

Introducción a la sección

Temas puntuales de la sección

Continuación del proyecto - Trazar Ruta

Polylines - Trazando el camino recorrido

Mostrar la polyline en el mapa

Mostrar/Ocultar Polylines

Eventos a sus respectivos métodos

Botón para seguir la ubicación

Tarea: Saber la posición central del mapa

Resolución de la tarea - Posición central del mapa

Código fuente de la sección

Marcador manual y direcciones hasta un punto específico

Introducción a la sección

Temas puntuales de la sección

Continuación del proyecto e introducción al API

Diseño de la barra de búsqueda

SearchDelegate - Buscador de lugares

Modelo SearchResult - Retorno del SearchDelegate

Diseño: Marcador central y opciones

Bloc para controlar la búsqueda manual

Mostrar y ocultar elementos del UI basado en la búsqueda manual

Animaciones para los elementos

Direcciones de navegación - Mapbox API

TrafficService - Y obtener punto de inicio y punto final

Petición a Mapbox y recuperar las coordenadas

Dibujar la ruta en el mapa

Mostrar mensaje de espera

Código fuente de la sección

Direcciones en el mapa

Inicio de sección

Temas puntuales de la sección

Continuación de la sección - RutasApp

Consumir el servicio de GeoCoding de Mapbox

Mostrar los resultados en el SearchDelegate

Implementar el debounce en el SearchDelegate

Trazar ruta destino

Historial de búsquedas

Código fuente de la sección

Marcadores en el Mapa

Introducción a la sección

Temas puntuales de la sección

Continuación del proyecto - RutasApp

Colocar marcadores en el inicio de la ruta y fin

InfoWindow de marcadores

Reverse Geocoding - Información de coordenadas

Mostrar información de la distancia, nombre y duración

Mostrar información de lugares específicos

Imagen del marcador desde Assets y desde Network

Custom Marker basado en un Widget - Diseño

Sombra y rectángulo del custom marker

Textos en el CustomPainter

Marcador del destino

Crear archivo con única importación

CustomPainter hacia imagen y BitmapDescriptor

Tarea - Colocar el marcador del destino

Reforzamiento sobre el trabajo realizado

Código fuente de la sección

Pagos con Stripe, tarjetas de crédito, GooglePay y ApplePay

Introducción a la sección

Temas puntuales de la sección

Demostración de la sección

Inicio de proyecto - StripeApp

Diseño de la pantalla Home

Monto a pagar y botón de pago

Pantalla de tarjeta seleccionada

Pantalla de pago completo y alertas

Código fuente de la sección

StripeApi y Estado de nuestra aplicación - BLoC

Introducción a la sección

Temas puntuales de la sección

Continuación del proyecto - Configuración del BLoC

Tarea: Activar y desactivar tarjeta

Resolución: Activar y desactivar tarjeta

Explicación de la lógica de cobros a seguir

Paquetes adicionales para usar Stripe

StripeService - Métodos globales que necesitaremos

Crear método de pago con una nueva tarjeta

Crear un intento de pago - PaymentIntent

Realizar cobro/pago - Confirmar intento

Pagar con una tarjeta existente

ApplePay y GooglePay

GooglePay retoques finales

Código fuente de la sección

Pub.dev - Crear tu propio paquete

Introducción a la sección

Temas puntuales de la sección

Demostración de la sección

Inicio de proyecto - CustomTransitionPackage

Diseño básico de mi aplicación de transiciones

Route Transitions

FadeIn Transition

Replacement o Push

Crear nuestro primer paquete para Pub.dev

Subir el paquete a Pub.dev

Utilizar nuestro paquete en nuestra app de Flutter

Actualizando el paquete

Crear un ejemplo en Pub.dev

Marcar como obsoleto o deprecared alguna característica

Nota final

Código fuente de la sección

Autenticación con Google - Backend y Frontend

Introducción a la sección

Temas puntuales de la sección

Inicio de proyecto - AuthApp

Diseño básico de la aplicación

Configuración de Google SignIn

Agregar y configurar la aplicación de Android

SignIn y SignOut de Google - Android

Agregar y configurar la aplicación de IOS

Obtener el ID Token de la sesión

Código fuente de la sección

Google Sign-in - Backend para validar el ID Token

Introducción a la sección

Temas puntuales de la sección

Continuación y nuevo proyecto - Auth Backend Server

Ruta y controlador de la autenticación de Google

Validar ID Token en nuestro backend

Desplegar backend server en Heroku

Obtener respuesta de autenticación de nuestro backend

Código fuente de la sección

Apple Sign-in

Introducción a la sección

Temas puntuales de la sección

Continuación de proyecto y recursos

Implementar botón de Apple Sign-in y Servicio de autenticación

Configuraciones en el portal de developers de Apple

Identificadores necesarios para nuestro backend

Configurar nuestro backend para aceptar las peticiones de Apple Sign-in

Desplegar y configurar URLs de retorno

Iniciar sesión en nuestro servidor

Apple Sign-in en Android

Cierre del curso

Despedida del curso


Reviews

M
Manuel27 September 2020

Como siempre un +10 para el profesor Fernando Herrera por sus cursos 100% recomendables, de todos los cursos que he consumido de otras plataformas y profesores, puedo decir que Fernando es uno de los mejores impartiendo cursos en línea, fluido y sencillo, pero con un potencial educativo inigualable. Saludos.

J
Jhonatan23 September 2020

Creo que los temas hasta ahora vistos(y supongo que así será hasta el final) están muy bien explicados, cumple con lo que se promete. Lo único es que pienso que se podría profundizar más en algunos temas, tales como la integración de Stripe y sus diferentes funcionalidades y servicios. También, me parece que sería muy interesante que se agregara una sección sobre integrar código nativo en flutter, al menos para el caso de Android. Creo que es algo muy necesario y que todos agradeceriamos.

S
Sergio15 September 2020

Muy buen curso, esperamos que saques mas de flutter, usar los paquetes de bloc y flutter bloc me ha sorprendido, en anteriores cursos no los usabas y en este finalmente los usas, mejora mejor la comprension del bloc, ademas de empezar los estados desde el singletone, provider y cubic. Se echa de menos el uso de firebase para autenticar con bloc, ademas que la ultima seccion grabar a la base datos en remoto con MongoDB atlas. Son pequeños detalles porque el curso es realmente ambicioso y de gran calidad, ademas de un esfuerzo enorme por parte de Fernando para estructurar todo el contenido que ha querido mostrar. De todas formas, si quieres aprender Flutter, no te queda otra que hacer todos los cursos de Fernando, para iniciarse bien en la materia. Aun se le puede sacar mucho mejor partido a flutter, sinceramente ademas de los estados unificar las configuraciones de los temas en archivos independientes y usar mejor configuracion del responsive seria apropiado traerlo en futuros cursos. Enhorabuena por el curso, Fernando, gran esfuerzo por tu parte en presentarlo tan didactico

C
Carlos13 September 2020

Estoy por la seccion 4, ya habia tomado el curso anterior de Flutter. Tengo backends hechos en python con flask. Al momento no me toma el pueto el componente http, este esta hecho en express veremos como va luego cuando hagamos las peticiones get. Saludos.

D
Diego12 September 2020

Mi doceavo curso adquirido con el Maestro Fernando Herrera! Muy agradecido colega informático y profesor por éste nuevo y excelente curso (también desarrollo desde hace mucho tiempo, 1986). Usted evita que me dé tantos cabezazos aprendiendo, porque su Guía es sumamente amena e invaluable. Ya le he dejado demasiados Review's de 5 estrellas, por lo cual sólo me referiré al hecho de que con justo derecho, me autoproclamo un FANANDO, es decir : Fan de Fernando ;)

J
Joel12 September 2020

Un gran curso, todos los conceptos se explican de forma clara y las tareas que se realizan ayudan mucho; si se combina con el curso de node el nivel de conocimiento que se adquiere es tremendo.

O
Oscar11 September 2020

Excelente el mejor teacher online que he tenido me faltan unos cuantos videos para tener toda la colección, aprendo mucho con todos los temas. Aunque quisiera un curso completo con solo Bloc , que incluya futures, sockets, manejos de errores (excepciones ) y consumo de api en mysql o postgres jajaja es mucho pedir pero seria genial por todo de ante mano muchas gracias por tus curso bruuuuu!!!.

N
Nicolas9 September 2020

De Fernando como instructor es redundante decir que es muy claro en los conceptos y se toma el tiempo para explicar cada cosa. En cuanto al curso, se destacan el uso de Sockets y Mapas, aún cuando hay mucho más material interesante que se puede sacar del mismo. Como es su costumbre, el material presentado en este curso es de muy buena calidad.

S
Study8 September 2020

Me gusta que sea rápido siempre al grano con lo que se esta explicando y lo que se desea que aprendan, eso me gusta mucho porque no pierdes el hilo de las cosas y pones mas atención, muchas gracias por el curso, espero un día ya poder decir que puedo hacer cualquier tipo de app con Flutter al igual que mi querido Android Nativo

M
Maksym-Yuriy3 September 2020

Bueno, es el tercer curso que compro de Fernando, es un profesor excelente, se entiende a la perfección, se nota el bagaje que tiene en esto. Solo voy por la sección 4 e ya me parece un gran curso...

L
Lino3 September 2020

El curso es bastante bueno gracias a la buenas explicaciones y ejemplos que nos brinda Fernando, ademas de los temas nuevos que se implementan son de bastante ayuda para el desarrollo de Apps en area laboral.

J
Jonatan1 September 2020

Hasta este momento me encuentro super emocionado en este curso, tengo grandes expectativas sobre el mismo, y al parecer serán superados, gracias a el gran talento del profesor Fernando Herrera. Recomiendo ampliamente este curso.

J
Juan1 September 2020

Aprovecho este medio para agradecer a Fernando la gran dedicación que pone en sus cursos. Todos sus cursos son excelentes.

L
Luis1 September 2020

Esta calificación es porque supera muchisimo más que por encima de mis expectativa!!. Un curso con Fernardo es ir a la Fija!. Muchas gracias! Super ultra mega recomendado.

F
Francisco1 September 2020

Vengo siguiendo sus cursos desde hace mucho, se que es una buena inversión la que he hecho. Gracias a sus cursos he aprendido y logrado grandes exitos en mi alrededor. Excelente curso, saludos!!


Coupons

DateDiscountStatus
9/2/202095% OFFExpired
9/11/202090% OFFExpired
10/12/202094% OFFExpired
11/26/202095% OFFExpired
1/26/202194% OFFExpired
3/17/202194% OFFExpired
3/29/202194% OFFExpired
4/5/202194% OFFExpired
5/8/202192% OFFExpired
5/10/202194% OFFExpired
5/29/202194% OFFExpired
6/28/202192% OFFExpired
7/22/202192% OFFExpired
9/13/202194% OFFExpired

3372986

Udemy ID

7/28/2020

Course created date

9/2/2020

Course Indexed date
Bot
Course Submitted by