Flutter: Tu guía completa de desarrollo para IOS y Android
4.8 (6,130 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
17,224 students enrolled

Flutter: Tu guía completa de desarrollo para IOS y Android

Push, Cámara, Mapas, REST API, SQLite, CRUD, Tokens, Storage, Preferencias de usuario, PlayStore, AppStore, Bloc y más!
Bestseller
4.8 (6,130 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
17,232 students enrolled
Created by Fernando Herrera
Last updated 6/2020
Spanish
Spanish [Auto]
Current price: $139.99 Original price: $199.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 30.5 hours on-demand video
  • 50 articles
  • 34 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Aprenderemos Dart de cero para trabajar con Flutter
  • Utilizar el SDK de Flutter para crear hermosas aplicaciones
  • Comprender los conceptos fundamentales para realizar cualquier diseño de apps
  • Dominar los Widget más comunes y no tan comunes para crear aplicaciones en Flutter
  • Realizar despliegues en la Google PlayStore
  • Realizar despliegues en la Apple AppStore
Course content
Expand all 296 lectures 30:37:09
+ Introducción
4 lectures 16:03

Breve introducción al curso

Preview 01:29

Un panorama global de cómo funcionará el curso

Preview 04:33

Algo básico, pero es importante que explique cómo realizar preguntas

Antes de realizar preguntas en el curso
03:40

Aquí les recomendaré realizar estas instalaciones iniciales, obviamente tendremos una parte con las instalaciones necesarias para trabajar en Flutter

Instalaciones iniciales - Editor de código y descargas
06:21
+ Introducción a Dart
19 lectures 01:51:02

Breve introducción a la sección

Introducción a la sección
01:36

Listado puntual de los temas que veremos en esta sección

Temas puntuales de la sección
00:12

Quizá sea la primera pregunta que nos hacemos cuando decidimos aprender Flutter

Preview 09:03

El famoso Hola Mundo en dart

Preview 06:27

Aquí aprenderemos varios tipos de datos que podemos manejar en Dart

Tipos de datos - Números y Strings
07:11

True o False

Tipo de dato - Booleanos y condiciones
03:33

Es una colección de elementos

Tipo de dato - Lista
06:54

Son diccionarios de datos u objetos con pares de valores

Tipo de dato - Map
07:47

Una forma de reutilizar código

Funciones en Dart
09:03

Un pilar fundamental para trabajar con Flutter

Clases en Dart
10:06

Esta forma es la tradicional

Forma corta de definir propiedades de las clases
03:14

Una forma tradicional de tener varias formas de crear instancias de nuestras clases

Constructores con nombre
08:09

Una forma sumamente útil de controlar asignaciones y obtener propiedades

Getters y Setters
07:32

Este es un tema que nos va a servir más adelante

Clases abstractas
05:05

Aquí vamos a reforzar la extensión

Extends
04:13

Formas de asignar sólo los métodos que necesitamos

Mixins
09:02

Formas de trabajar con información asíncrona

Futures
07:21

Dos compañeros para los trabajos asíncronos

Async - Await
04:09

Un pequeño ejercicio para ayudarles a reforzar sus conocimientos adquiridos

Examen introductorio a Dart
10 questions

Código fuente

Código fuente de la sección
00:25
+ Instalación de Flutter, equipos virtuales y equipos físicos
11 lectures 01:09:56

Un resumen puntual de los temas de la sección

Introducción a la sección
02:15

Un resumen puntual de lo que veremos a continuación

Temas puntuales de la sección
00:10

Aquí vamos a empezar con las instalaciones necesarias en Windows

Instalaciones en Windows
10:25

Aquí haremos la configuraciones necesarias para poder correr nuestras aplicaciones de Flutter en un equipo Virtual Android

Creación de un Android Virtual - Windows
07:53

Aquí vamos a crear y lanzar nuestro emulador desde VSCode

Crear proyectos desde Visual Studio Code - Windows
06:57

Si no te interesa la instalación de OSX puedes ir a la parte del despliegue en un dispositivo físico

Nota: Si no te interesa la instalación de OSX
00:07

Pasos para instalar flutter en OSX

Instalaciones en OSX
08:52

Configuraciones necesarias en XCode y Android Studio

Configurar XCode y lanzar nuestro proyecto en iPhone Simulator
09:50

Aquí vamos a realizar las configuraciones en Android Studio para crear un equipo virtual

Android Studio y simulador de Android
10:01

Aquí aprenderemos a correr nuestra aplicación en un dispositivo físico

Windows y OSX - Correr aplicación en dispositivo físico - Android
03:32

Aquí vamos a trabajar deplegando nuestra aplicación de Flutter directamente en un iPhone

OSX - Correr aplicación directamente en un iPhone
09:54
+ Introducción a Flutter
6 lectures 19:59

Una breve introducción sobre lo que veremos en esta sección

Introducción a la sección
01:39

Listado de los temas puntuales que cubriremos en esta sección

Temas puntuales de la sección
00:10

Antes de comenzar a programar en flutter, necesitamos comprender unos conceptos clave

Conceptos fundamentales de flutter
07:09

Este es otro concepto fundamental para comprender cómo funciona Flutter

Árbol de Widgets
02:57

Descripción de los archivos y directorios de un proyecto en Flutter

Estructura de un proyecto en Flutter
07:55

Aquí les dejo las presentaciones usadas en esta sección

Presentaciones de la sección
00:08
+ Hola Mundo y Aplicación contador
16 lectures 01:38:56

Un breve resumen de lo que veremos a continuación

Introducción a la sección
01:48

Resumen puntual de los temas que veremos aquí

Temas puntuales de la sección
00:13

Aquí vamos a ver cual es el objetivo final de la aplicación que realizaremos en esta sección

Demostración del resultado de esta sección - Hola Mundo y Contador
00:51

Aquí vamos a comenzar el proyecto de esta sección

Inicio de proyecto - Contador y Hola Mundo
03:58

Aquí comenzaremos nuestra aventura en Flutter

Nuestro primer Widget
11:41

Siempre es bueno manejar archivos especializados en una tarea, y debemos ser ordenados lo más posible

Separando la lógica en varios archivos
05:46

Este es un Widget muy importante

Widget - Scaffold
10:20

Aquí aprenderemos a crear dos labels uno después de otro

Columnas y estilos
10:10

Vamos a trabajar con nuestro primer botón

Botón flotante - FloatingActionButton
08:52

Este es un pequeño ejercicio para practicar sobre las propiedades

Tarea - Cambiar la ubicación del FloatingActionButton
03:45

Aquí vamos a intentar incrementar la variable contador en nuestro widget

Contador problema del StatelessWidget
04:15

Aquí comenzaremos a trabajar con StatefulWidgets

StatefulWidget
11:59

Aquí tendremos varios ejercicios para seguir aumentando la funcionalidad de nuestra aplicación

Creando más acciones en nuestro contador
11:25

Aquí vamos a implementar la funcionalidad de los botones

Implementar funcionalidad de los botones
04:36

Resumen de la sección - Contador

Resumen de la sección - Contador
09:02

Código fuente de la sección en el material de la clase

Código fuente de la sección
00:15
+ Componentes de Flutter
36 lectures 04:39:07

Una breve introducción a la sección

Introducción a la sección
01:36

Lista de los temas puntuales que cubriremos en esta sección

Temas puntuales de la sección
00:13

Demostración de lo que haremos en esta sección

Demostración de la aplicación - Componentes
03:57

Aquí iniciaremos el proyecto: ComponentesApp

Inicio de proyecto - Componentes
06:05

Aquí aprenderemos a crear nuestra primera lista

Listview - Mostrar una lista de elementos
06:31

Aquí vamos a aprender como transformar una Lista en un arreglo de Widgets

Crear ListTiles a partir de una lista estática
07:26

Aquí aprenderemos a trabajar con el método Map de las listas

Método map de las listas y ListTile
07:18

Esta es la página que usaremos para mostrar todas las opciones de nuestra aplicación

Página - HomePage
05:18

Aquí vamos a trabajar con un JSON local

Leer un archivo JSON Local
10:38

Aquí aprenderemos a transformar un JSONString en un Map para poder usar sus propiedades

Convertir el JSONString en un Map
08:28

Aprenderemos a trabajar con la respuesta del Future

Future Builder
12:50

Aquí crearemos un método útil para poder ayudarnos cuando lo necesitemos

Utilidades - Obtener ícono por strings
07:49

Aquí aprenderemos a realizar la navegación de una página a otra en Flutter

Navegar a una nueva pantalla en Flutter
08:53

Aquí aprenderemos a utilizar otro tipo de rutas con nombre

Navegar con rutas con nombre
07:25

Aquí tocaremos dos conceptos para el manejo de rutas y rutas generadas de forma dinámica

Rutas generadas dinámicamente y archivo de rutas independiente
07:34

Aquí aprenderemos a trabajar y personalizar Cards

Card Widget
09:42

Aquí crearemos otro tipo de tarjetas y a su vez aprenderemos cómo manejar imágenes

Image y FadeIn Image
12:18

Resolviendo el pequeño inconveniente del:

"The method 'forEach' was called on null"

Resolviendo - The method 'forEach' was called on null
01:55

Aquí vamos a personalizar un poco el estilo de las tarjetas

Personalizando el estilo de las cards
14:10

Aquí aprenderemos a trabajar con el Widget de Alertas

Widget - Alert
10:45

Un avatar circular muy rápido

Widget - Circle Avatar
06:08

Aquí explicaremos cómo animar las propiedades de un container

Container y AnimatedContainer
15:11

Aquí trabajaremos con interacciones de usuario

inputFields
13:40

Aquí aprenderemos a manejar campos de tipo email y password

Email y Password fields
05:16

Aprenderemos a utilizar un selector de fecha

Datepicker
10:02

Vamos a aprender cómo cambiar el idioma de nuestro datepicker

Cambiar el idioma del Datepicker
04:13

Aquí aprenderemos a crear y trabajar con los dropdowns

Dropdown y DropdownMenuItem
10:14

Aquí vamos a trabajar con un slider que controle el tamaño de una imagen

Slider
12:04

Aquí aprenderemos a utilizar checkboxes y Switches

Checkbox y Switches
06:46

Aquí aprenderemos a trabajar con listas que dinámicamente son creadas y redibujadas

Listview Builder
09:13

Aquí vamos a aprender varios conceptos importantes sobre el scroll de una lista

InfiniteScroll
07:52

Aquí vamos a trabajar simulando una demora en la petición

InfiniteScroll con Futures
11:31

Es momento de hacer un refresher

Pull to refresh
06:23

Aquí realizaremos un resumen de los coneptos claves vistos en esta sección

Resumen de la sección
09:18

Revisen está playlist eventualmente

Widgets de la semana
00:12

Código de la sección aquí

Código fuente de la sección
00:12
+ Aplicación de películas
33 lectures 04:14:16

Un breve resumen de lo que veremos a continuación

Introducción a la sección
01:17

Un resumen puntual de los temas del curso

Temas puntuales de la sección
00:13

Un video que demuestra el principal funcionamiento de nuestra aplicación

Preview 02:41

Aquí vamos a comenzar el proyecto de nuestra aplicación de películas

Inicio del proyecto - Películas
06:05

Aquí vamos a utilizar un paquete para crear tarjetas

Crear un swiper de tarjetas
08:49

Aquí vamos a crear nuestro primer widget personalizado, para poder centralizar la lógica de mostrar tarjetas

Widget personalizado - CardSwiper
10:19

Aquí obtendremos nuestra APIKey y las referencias a la documentación de TheMovieDB

TheMovieDB - ApiKey y documentación
05:28

Modelo para trabajar con las películas

Modelo de Película
12:21

Aquí crearemos los llamados a TheMovieDB endpoints y usaremos nuestros modelos

Películas provider
15:01

Aquí vamos a trabajar haciendo que nuestro Swiper muestre los pósters de las películas

Mostrar póster de películas en el Swiper
11:14

Aquí vamos a implementar un método que nos permita obtener las películas populares

Obtener películas populares
11:05

Esta es una posible solución

Nota: posible problema en la siguiente clase
00:21

Aquí vamos a trabajar mostrando películas de forma horizontal

Widget personalizado - Horizontal PageView
14:12

Aquí tenemos una pequeña explicación sobre un posible problema que tendremos con los futures

Problema con los futures
04:12

Aquí tendremos una breve explicación de qué son los streams y para que nos pueden servir

Introducción a los Streams
04:38

En esta clase aprenderemos un poco más sobre el patrón Bloc

Introducción al patrón Bloc y al manejo de estado de la aplicación
10:50

Aquí vamos a crear un stream de películas

Creando un Stream de películas
13:23

Aquí vamos a cambiar un poco nuestro código para utilizar un StreamBuilder en lugar de un FutureBuilder

Streambuilder
10:31

Aquí realizaremos 2 optimizaciones importantes.

Optimizaciones para nuestra aplicación
08:39

Aquí aprenderemos a pasar argumentos de una página a otra cuando usamos rutas con nombres

Pasar argumentos de una página a otra usando el PushNamed
10:40

Aquí vamos a trabajar creando un diseño bonito para nuestra página de detalle

Diseño de la pantalla de detalle
06:57

Segunda parte del diseño de la pantalla de detalle

Diseño de la pantalla de detalle - Parte 2
10:18

Aquí vamos a crear nuestro modelo para trabajar los actores

Modelo para manejar los actores de la película
09:10

Aquí vamos a realizar toda la configuración para hacer un llamado a los actores de las películas

Servicio para obtener los actores de la película
06:04

Aquí vamos a crear un pageView con los actores de la película

Crear un pageview de actores
11:05

Aquí aprenderemos a implementar el Hero Animation en las imágenes de las películas

Hero Animation
05:30

Aquí vamos a implementar el Hero Animation en las tarjetas principales

Hero Animation en las tarjetas principales
08:22

Aquí aprenderemos un concepto importante que podemos utilizar para realizar búsquedas en nuestra aplicación

Search Delegate
07:25

Aquí vamos a implementar estos dos métodos

BuildActions y BuildLeading
06:54

Aquí vamos a trabajar creando las sugerencias de búsqueda

BuildSuggestions y BuildResults
09:31

Aquí utilizaremos el API de TheMovieDB para obtener las peliculas que coincidan con el query que la persona escribe

Buscar películas en TheMovieDB
10:47

Aquí les dejo el código fuente de la sección por si acaso lo llegan a necesitar

Código fuente de la sección
00:08

Les dejo aquí las presentaciones por si las necesitan

Presentaciones de la sección
00:05
+ Diseños en Flutter
18 lectures 01:54:01

Introducción a los temas de la sección

Introducción a la sección
02:43

Un resumen puntual de los temas de la sección

Temas puntuales de la sección
00:09

Aquí un pequeño video de lo que lograremos en esta sección

Preview 01:27

Aquí tendremos una pequeña presentación de lo que veremos en esta sección

Explicación del diseño en Flutter
03:28

Aquí comenzaremos nuestra aplicación de diseños

Inicio de proyecto - Diseños
05:22

Diseño básico, primera parte

Diseño básico - parte 1
11:31

Continuación del diseño de la aplicación

Diseño básico - parte 2
11:45

Ultima parte del diseño básico del ejercicio de Flutter.dev

Diseño básico - parte 3
07:26

Vamos a crear un estilo de scroll horizontal

Diseño con scroll - parte 1
06:18

Seguimos trabajando con la página con scroll

Diseño con scroll - parte 2
10:28

Aquí terminaremos el diseño con scroll

Diseño con scroll - parte 3
04:32

Aquí vamos a realizar un diseño compuesto de varias partes, es un poco más elaborado pero nos funcionará

Diseño compuesto - Fondo y Gradientes
14:19

Aquí vamos a continuar trabajando con nuestro diseño compuesto

Diseño compuesto - Statusbar y títulos
07:00
Diseño compuesto - BottomNavigationBar
10:36

Aquí vamos a trabajar con dos widgets nuevos, el Table y el Table Row

Diseño compuesto - Table y TableRow
09:03

Una pequeña nota de actualización

Nota de diseño
00:36

Aquí vamos a aplicar un blur y terminar nuestro diseño

Diseño compuesto - Blur y argumentos
07:04

Pueden descargar el código fuente de la sección aquí

Código fuente de la sección
00:13
+ QRScanner - SQLite
35 lectures 03:14:53

Breve exposición de la sección

Introducción a la sección
01:37

Resumen puntual de los temas de la sección

Temas puntuales de la sección
00:18

Demostración de lo que lograremos en esta sección

Preview 02:44

Aquí vamos a comenzar el nuevo proyecto de lector de códigos QR

Inicio de proyecto - QRScanner
04:34

Aquí vamos a crear nuestro bottomNavigationBar

BottomNavigationBar - QRScanner
08:27

Aquí vamos a realizar un par de cambios interesantes en nuestra aplicación

FloatingActionButton y tema de la aplicación
04:48
Nota de actualización
00:14

Aquí usaremos un paquete que nos permita poder leer códigos QR

Leer un código QR - Update
13:44

Aquí crearemos un modelo para generar los scans

Modelo para manejar los Scans
05:47

Aquí comenzaremos la configuración de nuestra base de datos

Inicio de configuración de SQFLite
08:49

Aquí crearemos nuestra base de datos y nuestras tablas

SQFLite - CREATE Table y Database
07:36

Ahora vamos con la creación de registros

SQFLite - Crear registros
07:48

Aquí aprenderemos a realizar SELECT de nuestra tabla en la base de datos

SQFLite - Obtener registros
08:29

Aquí aprenderemos a actualizar registros que existan en nuestra base de datos

SQFLite - Actualizar registros
02:48

Aquí vamos a aprender a borrar uno o varios registros de nuestra tabla

SQFLite - Borrar registros
03:36

Es momento de grabar el scan en la base de datos

Grabando el Scan en base de datos
10:04

Aquí vamos a aprender a borrar registros de base de datos

Borrar registros de la base de datos
06:09

Aquí vamos a resolver el problema de los Scans usando Streams

ScanBloc - Usando Streams
08:04

Aquí vamos a crear los métodos que necesitamos para controlar el flujo de información

Métodos para controlar el flujo de información
07:43

Aquí vamos a trabajar conectando nuestras pantallas con los streasm y el bloc

Actualizando los widgets mediante streams
08:54

Es momento de implementar el método para abrir el URL del scan

Package: url_launcher
11:36

Aquí vamos a trabajar desplegando un mapa

Página para desplegar un mapa
08:00

Importante

Nota de actualización
00:34

Aquí vamos a crear nuestro Token o ApiKey para usar mapbox y también configurar el paquete de FlutterMap

Mapbox - Generar Token para crear un mapa
03:17
Nota de actualización
00:25

Aquí vamos a crear nuestro mapa

Crear un mapa en Flutter
12:57

Un pequeño bonus, por si acaso quieren cambiar el estilo del mapa

Bonus: Tipos de mapas
02:31

Aquí vamos a aprender a utilizar marcadores en nuestro mapa

Crear marcadores
04:46

Aquí vamos a aprender cómo mover un mapa de lugar

Mover a un punto el mapa
03:41

Aquí vamos a aprender cómo cambiar el tipo del mapa de forma dinámica via código

Cambiar tipo de mapa de forma dinámica
06:49

Aquí vamos a crearnos un par de Mixins

Uso de mixins para los streams
11:19

Aquí vamos a realizar la página de direcciones

Página de direcciones
02:31

Update

Nota de actualización
00:16

Es momento de probar todo en el dispositivo

Prueba de la aplicación funcionando en un dispositivo
03:43

Aquí les dejo el código fuente de la sección por si lo necesitan

Código fuente de la sección
00:14
+ Preferencias de usuario
13 lectures 01:20:24

Un breve resumen de los temas que veremos en esta sección

Introducción a la sección
02:26

Un resumen puntual de los temas que veremos a continuación

Temas puntuales de la sección
00:13

Aquí comenzaremos a crear nuestra aplicación de preferencias de usuario

Inicio de proyecto - Preferencias de Usuario
07:12

Aquí vamos a trabajar creando un menú lateral que nos sirva para navegar en nuestra aplicación

Drawers - Crear un menú lateral
11:18

Aquí vamos a crear un widget separado para controlar el menú lateral

Crear un widget independiente para el drawer
02:47

Aquí comenzaremos a trabajar la página de los ajustes

Diseño de la página de los ajustes
12:29

Aquí vamos a realizar la presistencia de la información

Shared Preferences
13:20

Un pequeño posible cambio

Nota de actualización
00:17

Aquí aprenderemos a manejar las preferencias del usuario mediante una clase

Clase para manejar las preferencias del usuario
13:24

Aquí vamos a trabajar implementando los GETs y SETs de las demas preferencias

Preferencias de Nombre, Género y Color Secundario
09:26

Aquí vamos a manejar una nueva propiedad para recordar cuál fue la última página abierta

Última página abierta
05:29

Aquí les dejo el código fuente de la sección de preferencias de usuario

Código fuente de la sección
00:14
Requirements
  • Saber conceptos de programación estructurada es recomendado
  • 10GB de espacio en disco para instalaciones
  • Puedes seguir el curso en Windows o en Mac perfectamente
  • Querer aprender, realizar las tareas y ejercicios
  • Usuarios de WIndows, necesitan un equipo de 64bits (Requerido por Flutter)
Description

Bienvenido a mi curso de Flutter en español, el cual tiene por objetivo enseñarte todo lo que necesitas de sobre el lenguaje de Dart y Flutter para poder crear aplicaciones hermosas y principalmente funcionales que son aplicables a la vida real.


El curso fue creado para ayudarte a empezar en el desarrollo de aplicaciones móviles nativas usando una sola base de código con el SDK de Google Flutter, aquí tocaremos los siguientes temas:


1- State Management

2- Tokens

3- Widgets comunes y no tan comunes

4- Dart

5- Firebase REST API y REST Auth

6- Cámara

7- Galería de imágenes

8- Carga de archivos a la mediante servicios REST

9- Modelos

10- Providers

11- Patrón Bloc

12- Streams

13- Notificaciones Push

14- Futures

15- Despliegues en la AppStore

16- Despliegues en la PlayStore

17- Generación de APKs de 64 bits

18- Diseños de aplicaciones móviles

19- Lectura de archivos JSON

20- CRUD hacia servicios REST

21- SQLite – CRUD

22- PageViews

23- InfiniteScrolls

24- Pull to refresh

25- Uso de mapas

26- Preferencias de usuario

27- Storage nativo

28- Instalaciones de paquetes

29- Formularios

30- Y mucho más…


El curso cubre todo lo necesario crear aplicaciones móviles para IOS y Android, esto incluye su despliegue en las tiendas. Una vez termines el curso tendrás el conocimiento necesario para emprender tu camino para crear tus propias aplicaciones en Flutter que no solo funcionan bien, sino que se vean bien.


El curso ha sido cuidadosamente creado para que te diviertas haciéndolo con ejercicios y tareas prácticas, es 90% práctico y 10% teórico, con presentaciones cortas pero ilustrativas para explicar conceptos fundamentales de todo desarrollo en Flutter.


También me he preocupado mucho de que cada clase sea de menos de 10 minutos y que termine en algo en concreto, con el objetivo de ir progresando poco a poco, aunque efectivamente hay pocas clases que pasan de los 10 minutos, pero es por una razón específica.


En el curso se realizan varias aplicaciones y muchos proyectos, cada sección es diferente y con sus propios retos, con el objetivo que en el menor tiempo posible, puedas adquirir todo lo que necesitas para considerarte desarrollador de aplicaciones en Flutter.


Importante:

No es necesario una Mac, puedes hacerlo en Linux y Windows perfectamente, pero para desplegar en la AppStore y probar en IOS, si es necesario la Mac.

Se requiere al menos 8GB de espacio en disco.


Who this course is for:
  • Personas que conozcan sobre programación estructurada
  • Todos aquellos que deseen aprender el SDK de Flutter de Google
  • Personas que quieran aprender a realizar despliegues en las tiendas móviles
  • Personas que quieran comprender más sobre el diseño en Flutter