Si estás buscando un curso Flutter que vaya de cero a profesional, que sea claro, progresivo y realmente útil para crear aplicaciones móviles, déjame decirte que has llegado al lugar correcto.
Llevo años enseñando Flutter y Dart, y algo que siempre repito es esto: la curva de aprendizaje se vuelve mucho más sencilla cuando entiendes el porqué de cada cosa.
Por eso creé este curso con una estructura equivalente al libro completo que publiqué y, además, con recursos gratuitos que tienes disponibles en mi blog y en la web de la Academia.
También tengo recursos gratuitos para el Curso en el Blog y el curso comunitario/GRATIS en la web de Academia.
Es importante mencionar, que el curso también tiene el formato en libro con el 100% del contenido del mismo, es decir, el curso es equivalente al libro.
En este curso vas a aprender Flutter y Dart desde cero, no requieres conocimientos previos pero sí es importante que sepas programar en cualquier cosa para tomar este curso.
Este es un curso progresivo, por lo tanto vamos a ir de a poco, entre lo más básico hasta cosas más complicadas; pero, antes de entrar en detalle.
¿Qué es Flutter?
Flutter es por una parte un framework y por otra parte una SDK, que fue desarrollada por la propia Google para desarrollar aplicaciones nativas para Android e iOS basados en los principios del Material Design impulsado por Google para su ecosistema de aplicaciones y adoptada por Android desde la versión 5.
Porqué es Flutter importante para ti
Aunque, es importante notar que Flutter está en constante crecimiento, al igual que mi curso :),
va incorporando nuevas funcionalidades e ir extendiéndose hacia otras plataformas, como lo es el
Web, y app de escritorios también; por lo tanto, con un proyecto base, puedes desarrollar para
un montón de plataformas.
Además de que el desarrollo en Flutter, al ser modular como vamos a ver en el curso, nos
permiten desarrollar rápidamente aplicaciones si lo comparamos con el viejo esquema de
desarrollo con Android Studio con Kotlin o Xcode con Swift empleando las herramientas oficiales.
Es multiplataforma, por lo tanto puedes desarrollar tus apps en Windows, Linux o Mac aunque
solamente este último está disponible el desarrollo de la app para iOS.
El curso está estructurado para ir creando proyectos y más proyectos
Crearemos múltiples proyectos desde los más bases para ir conociendo los elementos bases de
Flutter hasta conocer características más avanzadas del Framework, como puedes ver en algunos de
los proyectos principales en pantalla.
Términos como widgets, patrón bloc, singletons, base de datos con Sembast, Firebase, SQlite,
peticiones http, CRUDs, diálogos, preferencias de usuario, forms, Streams, Futures, navs, Redux
y mucho + todos estos elementos y más los abordaremos en el curso desarrollando múltiples
aplicaciones entiéndase proyectos.
Aprende sobre Flutter
El curso es bastante sencillo de seguir, en las primeras secciones hablaremos sobre aspectos
generales del curso y dar los primeros pasos con Dart, conocer su sintaxis, así como los
elementos básicos de cualquier lenguaje de programación como las variables, ciclos,
condicionales, clases entre otros; para luego pasar al siguiente bloque que consiste en crear
las aplicaciones en Flutter y conocer aspectos básicos sobre el Framework; entre los más
importantes tenemos.
Instalación de las herramientas necesarias.
Crear nuestras primeras apps y conocer los primeros widgets fundamentales para cualquier
aplicación.
Conocer los estados en Flutter para actualizar la data en pantalla.
Guardar los datos de manera local y persistente.
Empezar a trabajar con procesos asíncronos con los Stream.
Navegación básica entre pantallas.
Enviar y consumir peticiones HTTP a un servicio aparte.
Creación de listados y páginas de detalle.
Manejo y carga de recursos como imágenes.
Transiciones y animaciones de widgets y en pase de pantallas.
Patrón bloc para globalizar el manejo de la data y pase de eventos.
Redux, para globalizar el manejo de la data, emisión o pase de eventos y la lógica de
negocios.
Con todo estos conocimientos podrás emplearlos para crear tus propias aplicaciones en Flutter.
¿Necesito saber algo antes de empezar este curso Flutter?
Requisitos reales para aprender Flutter
No necesitas saber Flutter ni Dart, pero sí debes saber programar algo, aunque sea lo básico. Si entiendes variables, funciones y condicionales, vas más que listo.
Qué tan difícil es y cuánto tiempo toma dominarlo
Flutter es amigable, pero dominarlo toma práctica. Por eso este curso es progresivo: vamos construyendo desde lo más básico hasta temas avanzados, paso a paso.
Estructura del curso y libro
Vamos a evaluar uno a uno cada una de las secciones que veremos en el curso:
1 Hola mundo en Dart
En esta primera parte damos los primeros pasos con Dark, conocemos este lenguaje de programación
que es el corazón de Dart; elementos básicos como el uso de condicionales, ciclos, listas,
funciones, clases y muchos más! en pocas palabras conocer los aspectos básicos de Dart.
2 Null Safety
Conoceremos el uso del Null Safety que es una característica que tienes que conocer en Flutter
2, ya que cambia de una forma importante la estructura de nuestro código, abriendo nuevas
posibilidades en un código más conciso, sostenible y por supuesto seguro.
En esta siguiente parte, tenemos que aprender uno de los elementos básicos en Dart y Flutter,
antes de iniciar con Flutter vamos a conocer el uso de una nueva característica que viene siendo
la del Null Safety, una característica que es empleada en otros lenguajes de programación como
Kotlin y Swift ahora también se encuentra de manera nativa en Dart y por supuesto Flutter, lo
cual es excelente para crear nuestras apps de manera segura.
3 Instalación de las herramientas necesarias
Las herramientas son todos los frameworks, IDEs y SDKs que vamos a necesitar para crear nuestras
primeras aplicaciones; ¿suena enredado y completo de hacer? realmente no lo es tanto y en el
curso lo hacemos paso a paso, visitando las páginas correspondientes, explicando para qué
funcionan, para qué vamos a emplearlo y comentando el proceso de instalación.
La instalación de Android Studio tanto como editor como SDK de Android, la instalación de Xcode
como SDK y editor, Postman para realizar peticiones y por supuesto Visual Studio Code como
editor seleccionado para crear nuestras apps.
4 Aspectos generales de Dart y Flutter
En esta sección damos los primeros pasos entre Dart y Flutter, el lenguaje de programación y el
framework (y SDK) para crear nuestras apps para Android, iOS, escritorio, web...
Conocer porque Flutter es una SDK, también un framework para el desarrollo de apps y TODO esto
es clave para poder conocer esta tecnologías y con esto dar los primeros pasos con Flutter y
Dart.
5 Creando tu primera aplicación:
Conociendo los componentes bases
En esta primera parte en la cual ya entramos al ciclo de vida de una app en Flutter, vamos a
conocer aspectos básicos de una app; la función de arranque de TODO conocida como main, el
Material App como envoltorio, el árbol del widget, componentes o widgets básicos para la
creación de cualquier app como texto, imágenes, campos de texto, botones... todo esto lo veremos
en detalle para dar los primeros pasos con el framework.
6 Convertidor de medidas: Trabajando con los Statefulwidgets
Siguiendo avanzando en el curso, lo siguiente que tenemos que conocer, son como podemos crear
una aplicación más dinámica, en la cual podamos cambiar aspectos de la misma a nuestro antojo;
si tenemos una propiedad y a partir del valor de la misma queremos cambiar el estado de un
widget... hasta este punto la app anterior NO permite este comportamiento, solamente eran
bloques de lego o widgets que estaban por la interfaz regados, pero con los Stateful Widgets ya
no es así.
Los Statefulwidgets nos permiten agregar esa parte de flexibilización que necesitamos sí o sí
para crear nuestras apps más dinámicas, así que, vamos a crear un conversor de medidas para dar
un poco más de dinámica a nuestra app, veremos elementos que cambian según algunas
condiciones...
Vamos a crear un conversor de medidas para conoce en detalle como actualizar los widgets en la
pantalla.
7 Guardar datos de manera local
La persistencia es una característica que usan las aplicaciones modernas para tener resguardada
los datos de la aplicación y que se encuentren solo en la memoria volátil (La Ram), si no que
estos datos sean guardadas en el Disco Duro, en el caso de Flutter mobile seria en una SD o la
memoria interna del dispositivo, esto es útil para guardar por ejemplo, la información del login
del usuario, dados eh cache, etc; en esta sección vamos a crear una aplicación en la cual vamos
a almacenar datos de manera local y de manera persistente.
Vamos a guardar datos de un sencillo formulario de manera persistente, para cuando cerremos la
aplicación o reiniciamos el dispositivo, esos datos sigan alli.
8 Ruteo y navegación básica
En este apartado vamos a aprender un tema fundamental que es la navegación entre pantallas; sin
importar lo imponente que sea tu aplicación, con el mejor estilo y diseño, si no puedes crear
más de una pantalla en la cual puedas pasar de una pantalla a otra no tiene sentido alguno.
En esta sección vamos a aprender la navegabilidad entre distintas pantallas con el componente de
ruteo que tenemos definido en Flutter. .
9 Secciones app Timer
Tenemos un par de secciones en las cuales creamos un Timer, de esta manera sabemos cómo trabajar
de una manera más completa, creando otra aplicación real en la cual tiene un alto grado de
interacción con el usuario.
Instalaremos nuestros primeros paquetes y luego le daremos un funcionamiento asíncrono mediante
los Streams, para usar hilos secundarios en la aplicación y la misma NO se detenga o quede
pegada.
10 Consumir data de una web
En esta sección es una de las más importantes y largas del curso, en las cuales vamos a crear
una aplicación REAL, una app de películas de las cuales vamos a consumir los datos de una Rest
API real, vamos a crear una app modular, en la cual sería un listado, página de detalle, listado
de las últimas películas, calificaciones, imágenes TOP 10, entre otros, estará consumida desde
una Rest Api de la app de un tercero que se aloja en Internet.
Para esto, vamos a realizar peticiones HTTP mediante un paquete, usa el FutureBuilder para
manejar peticiones asincronas, y conocer otros widgets como el ListView, ListTile, Card,
paginación, funciones de promesa y mucho más.
11 Introducción al ruteo con transiciones y animaciones
En esta sección, vamos a construir presentar las animaciones y transiciones entre páginas, pero
dándole estilos personalizados en cuanto a la animación de una página a otra y regresando a la
anterior. Estas transiciones son para personalizar la animación de una pantalla a otra; sin
embargo, en otra sección trataremos las transiciones de tipo Hero, para animar los widgets
comunes entre páginas.
12 Algo de estilos e Introducción a las animaciones
En Flutter es muy fácil realizar cambios suaves entre un estado a otro, entiéndase colores,
bordeados, transparencia, tamaños entre otras operaciones, para eso tenemos animaciones de tipo
Builder, container, entre otras que veremos en esta sección.
13 TodoApp patrón bloc
Aprenderemos el patrón original en Flutter para trabajar con los estados, el patrón de Bloc, con
esto, podremos tener datos comunes en un solo lugar y poder ser fácilmente accesible desde un
repositorio central; para esta sección haremos una aplicación tipo TODO.
14 Tienda en línea en Flutter con Strapi, MongoDB y una Rest Api
Finalmente, tenemos una sección para crear una tienda en línea con Strapi y Flutter, empleando
el patrón de Redux; que es otro patrón para mantener el estado de nuestra aplicación en un solo
lugar; en esta sección, vamos a poner en práctica:
Crear una app con múltiples pantallas.
Usar el patrón de Redux como repositorio de datos central.
Crear una app en Node con Strapi, cargar datos y crear la Rest Api.
Conectar una app en Flutter a la Rest Api con MongoDB.
Consumir la Rest Api de Strapi mediante peticiones HTTP.
Realizar operaciones CRUD desde la app en Flutter a Strapi.
Carrito de compras con CRUD de productos
Favoritos.
Y mucho más.
15 App de Sitios
Crearemos una aplicación para administrar sitios en varias secciones mediante un formulario y
registrando imágenes mediante la cámara del dispositivo o desde la galería, usaremos Provider
como manejador de estado.
16 App de to do web
Crearemos una aplicación de to do list con Flutter web en varias secciones y administramos las
tareas mediante un formulario en un alerta, usaremos animaciones para el listado, los flex y
expanded para organizar el contenido y sincronización con Firebase con el Cloud Storage y Cloud
Firestore para almacenar las imágenes y los to do respectivamente.
Prólogo
Flutter es la herramienta del momento cuando se trata en crear aplicaciones móviles para Android e iOS; y esto, no se trata de una moda ni nada que se le aparezca; su sintaxis limpia y expresiva con Dart, su programación declarativa con los widgets y otras características como el Hot Reload, lo convierten en una interesante solución para crear aplicaciones nativas para Android e iOS y que pocas herramientas que ofrecen también soluciones para crear aplicaciones móviles, se les puede comparar.
Aparte de crear aplicaciones para móviles, en versiones recientes del framework, también permiten crear aplicaciones para Linux, Windows y Mac, aparte para web; todo, con un mismo proyecto y pocos cambios para adaptar a cada plataforma.
Nos ofrece un esquema modular entre proyecto y aplicaciones, un conjunto importante de paquetes para extender el ya de por sí, completo framework y con esto, la creación de proyectos escalables.
En este curso, vamos a conocer cómo está formado el framework, las características básicas que nos permite Flutter como SDK para crear aplicaciones móviles, de escritorio y webs, todo con un mismo proyecto base y con pequeñas modificaciones.
En el curso vamos a centrarnos principalmente en el desarrollo móvil.
En definitiva, tendrás un enorme material a tu disposición, para hacer verdaderas aplicaciones.
Para quien es este curso y libro
Este curso y libro está dirigido a cualquiera que quiera comenzar a desarrollar con Flutter; puede que vengas de otro framework o inclusive PHP; en ambos casos es una gran idea aprender de uno de los frameworks webs más avanzados y completos que podrás encontrar.
Para aquellos que quieran conocer el framework y que conozcan otros frameworks webs, pero no tienen los conocimientos necesarios para aventurarse en estos.
Para aquellas personas que quieran aprender algo nuevo, conocer sobre una tecnología que, aunque tiene mucha documentación, la mayoría está en inglés y al estar el framework en constante evolución, tiende a quedar desactualizada.
Para las personas que quieran mejorar una habilidad en el desarrollo de aplicaciones y que quieran crecer como desarrollador.
Para aquellos que quieran aprender o mejorar una habilidad y con esto, aumentar sus posibilidades de empleo o para llevar un proyecto personal.
Para aquellas personas que conozcan el lenguaje de programación de Dart y quieran aprender Flutter.
Temario del Curso y Libro
Este curso y libro tiene un total de 14 capítulos (aun en desarrollo), se recomienda que leas en el orden en el cual están dispuestos y a medida que vayamos explicando, vayas directamente a la práctica, repliques, pruebes y modifiques los códigos que mostramos en este libro; el libro actualmente se encuentra en desarrollo.
Capítulo 1: En este capítulo, vamos a presentar el software necesario para crear aplicaciones en Flutter, en Mac y Windows.
Capítulo 2: En este capítulo, vamos a conocer sobre Flutter y Dart para el desarrollo de aplicaciones.
Capítulo 3: En este capítulo, vamos a conocer el uso de los widgets como elemento central al momento de crear aplicaciones en Flutter.
Capítulo 4: En este capítulo, vamos a crear un proyecto en Flutter usando Visual Studio Code.
Capítulo 5: En este capítulo, vamos a conocer los widgets principales en Flutter y los widgets con y sin estado.
Capítulo 6: En este capítulo, vamos a dar un hola mundo en Flutter y conocer sus características más importantes.
Capítulo 7: En este capítulo, vamos a crear una aplicación de una sola página sobre medidores de cantidades.
Capítulo 8: En este capítulo, vamos a crear una aplicación para registrar sitios en base a fotos tomadas de la galería o por la cámara.
Capítulo 9: En este capítulo, vamos a conocer el manejador de estado Provider aplicado a la aplicación anterior.
Capítulo 10: Vamos a crear una aplicación web, tipo to do list, inicialmente, sería una maqueta.
Capítulo 11: Para la aplicación de to do list creada anteriormente, vamos a realizar varias adaptaciones mediante los media queries para que sea adaptativa según el tamaño de pantalla.
Capítulo 12: Aplicaremos cambios variados a la aplicación de tipo to do list, para que sea más adaptable; cambios como alineados, overflows, imágenes con esquinas redondeadas, serán tratadas en este capítulo.
Capítulo 13: Integraremos el proyecto de to do list web, para que funcione con una base de datos en Cloud Firestore empleando Firebase.
Capítulo Extra: En este capítulo, vamos a conocer posibles errores que pueden ocurrir al momento de ejecutar aplicaciones en Flutter.
Acepto recibir anuncios de interes sobre este Blog.
Curso de Flutter básico desde cero, conoce como trabajar con widgets, bloc, BDs sembast, peticiones http, CRUDs, diálogos, preferencias de usuario, forms, Streams, navs, y mucho más.
Algunas recomendaciones:
Benjamin Huizar Barajas
Laravel Legacy - Ya había tomado este curso pero era cuando estaba la versión 7 u 8. Ahora con la ac...
🚀
Curso de Flutter básico desde cero, conoce como trabajar con widgets, bloc, BDs sembast, peticiones http, CRUDs, diálogos, preferencias de usuario, forms, Streams, navs, y mucho más.