Dart 3: más allá de Flutter es un intento de resumir en el menor tiempo posible como funciona el lenguaje de programación Dart.
¿Por qué Dart?
Actualmente existen diversas tecnologías que permiten el desarrollo de aplicaciones Cross-Platform, como pueden ser React Native, Xamarin, Ionic y Flutter. De todas ellas, la tecnología preferida de los desarrolladores es Flutter, según la encuesta de 2022 realizada por StackOverflow.
Esto no es de extrañar, ya que Flutter está basado en Dart, el cual ofrece una experiencia desarrollo superior a la que ofrece JavaScript / TypeScript. Dart es un lenguaje fuertemente tipado, pero que nos da la flexibilidad suficiente para que sea dinámico. Además, cuenta con una comunidad fuerte detrás, que junto con el carácter open source asegura un desarrollo continuo.
Con Flutter, podemos crear aplicaciones prácticamente para cualquier tipo de sistema: Android, iOS, Desktop y Web. Por tanto, dada la gran versatilidad que ofrece el Framework, es esencial conocer profundamente Dart, el lenguaje de programación que utiliza Flutter. Con Dart podremos crear cualquier tipo de aplicación y dar soporte a diferentes formatos. Esta es la principal motivación que me ha llevado a construir este curso: ofrecer el conocimiento necesario para tener éxito en el desarrollo de aplicaciones con Flutter.
Contenido del curso
Instalación del SDK de Flutter y Visual Studio Code.
Fundamentos de Dart. Variables. Tipos. Operaciones matemáticas. Métodos de String. Final. Const. Parseo de datos. Null Safety.
Estructuras de control de flujo. if. else. else if. Switch. Ejecución de un programa de Dart por la línea de comandos.
Bucles. For. While. Do While. Continue. Break. Shadowing.
Funciones. Parámetros opcionales. Parámetros required. High Order Functions. Closures. Paso por valor.
Colecciones. Referencia a Objetos .Listas. Mapas. Métodos de colecciones.
Programación Orientada a Objetos. Clases. Constructores. Static. Métodos. Herencia. Modificadores de clase de Dart 3. Operador Cascada. Extension. Mixin. Enum.
Dart 3. Records. Pattern Matching. Desestructuración. Enhanced for-in. Estructuras if-case.
Genéricos. ¿Qué son los genéricos? ¿Cómo utilizarlos? Herencia en Genéricos.
Manejo de Excepciones
Future. Event Loop. Async/await.
Manejo de Archivos I (Future based)
Streams. StreamController. StreamSink. StreamSubscription. Métodos de Stream.
Manejo de Archivos II (Stream based).
Sockets. UDP y TCP. Demo de como utilizar UDP para envío de mensajes sin necesidad de conexión en Flutter dentro de red local.
HTTP (I). Rest API requests. Serialización de JSON en Objetos. QuickType. Dart Data Class Generator. Peticiones GET a archivos binarios. Headers. Auth. API KEY.
HTTP (II). Web Scraping. Parseo de documentos HTML. Extracción de información de Interés.
Conexión de Dart con MySQL. Continuación proyecto de Web Scraping.
Isolates. Concurrencia en Dart. Envío de mensajes entre Isolates. Incremento de la performance de una app mediante procesos paralelos. Continuación del proyecto de Web Scraping.
Command Line Interface. Crear herramientas de línea de comando con Dart. Creación de CLI para web scraping.
Testing.
Dart en el servidor. Crear un backend utilizando Dart como lenguaje. Dart Frog.
Despliegue en AWS. Desplegaremos la REST API en Amazon Web Services (AWS) utilizando el servicio de App Runner.