un lenguaje de programación desarrollado por Google en 2011 ❖ Desarrollo Web ❖ Open Source ❖ Compatible con JS Interpretado: Se ejecuta en su propia VM ❖ Estructurado ❖ Flexible ❖ Orientado a objetos
implementación del estándar HTML Web Components, un estándar que quiere revolucionar la manera en la que se desarrollan aplicaciones web en los navegadores. https://www.dartlang.org/docs/tutorials/polymer-intro ❖ Polymer custom elements ❖ Diseñar HTML tags para encapsular estilos, estructura y comportamientos ❖ Crear bindings bidireccionales entre Dart objects y DOM nodes ❖ Uso de Web Standars emergentes: custom elements, HTML Imports, Shadow DOM ....
Chromium + Dart VM dart2js: compilación a Javascript Dart VM puede ejecutarse en dos modos: checked o production Por defecto arrancará en production. Se recomienda habilitar el modo checked para desarrollo y testing dart --checked test.dart
Pub https://pub.dartlang.org/ Herramienta que nos permite añadir librerías. También incluye comandos para crear, desarrollar y desplegar Se ocupa de resolver dependencias automáticamente
Pirates: Write a Web App Creación de una web app usando Dart Editor. ❖ A Tour of the Dart Language ❖ The Dart Tutorials ➢ Varios tutoriales sobre instalación de paquetes, creación de DOM elements, Polymer Custom Elements, Forms ...
Basado en clases ❖ Herencia Simple ❖ Lenguaje OO ➢ Todo es un objeto ➢ Tipos primitivos => Son objetos ➢ Object = root de la jerarquía de clases ➢ El tipo de ejecución de cada objeto es una instancia de la clase Type
❖ Isolate ➢ Unidad de concurrencia ➢ Tiene su propia memoria y control de thread ➢ No hay estado compartido entre isolates ➢ Se comunican entre ellos mediante paso de mensajes
variable inicializa a null. String apellidos; // variable inicializa a null. num edad; // variable inicializa a null. num hijos = 0; // variable inicializa a 0. // Constructor. Persona() {} // Método que lanza un saludo de presentación void presenta() => print('Hola me llamo $nombre'); } Madrid DUG Google Dart User Group Clases
“Dart”; // Método que sobreescribe el saludo de presentación @override void presenta() => print('Hola mundo soy $nombre'); // Método que implementa el dichoStarWars de la interfaz void dichoStarWars() => print("que la fuerza te acompañe"); } Madrid DUG Google Dart User Group Herencia e Interfaces
de privacidad ➢ Público / Privado ❖ Por defecto siempre se utiliza el modo público ❖ Sintaxis del nivel privado ➢ Mejora la documentación del código String nickname; // público String _nombreReal; // privado
Casting de tipos var IsNum = numerito is num; // Verdadero si el objeto es del tipo indicado var IsNotNum= numerito is! num; // Falso si el objeto es del tipo indicado Madrid DUG Google Dart User Group Operadores II
opcionales por posición void saludaMeetup (String nombreMeetup, [String siglas, num miembros]) {...} ❖ Parám. opcionales por nombre void saludaMeetup ({String nombreMeetup, String siglas, num miembros}) {...} ❖ Valores predeterminados void saludaMeetup ([String nombreMeetup = 'MadridDUG']) {...} ❖ Valores de retorno ➢ return x ➢ todas las funciones devuelven un valor de un tipo concreto.
❖ While y do while ❖ Switch ❖ *Control: break y continue ❖ Iterables lista.forEach((item){...}); for(item in lista) {...} *Se puede iterar a través de list, map y set
= rompePassWord(password); } on Exception catch(e) { // Se produce un error al procesar el descifrado. resultado = 'No se ha resuelto !'; } finally { // Muestro la respuesta al usuario. print(resultado); } Madrid DUG Google Dart User Group Excepciones
=> Exception y Error para el manejo ❖ Permite crear tus propias excepciones ❖ Mecanismos de manejo ➢ throw ➢ on /catch ➢ finally ❖ Si no se captura, el isolate se termina
estructurado del DOM ❖ Búsqueda de elementos ➢ querySelector() y querySelectorAll() ➢ devuelven colecciones de datos nativas de Dart ❖ Constructores para elementos del DOM ➢ new DivElement() Madrid DUG Google Dart User Group Dart y el DOM
= 'Bienvenido a MadridDUG !'; text.lang = 'ES'; text.attributes.forEach((k, v) => print('$k: $v')); text.style.backgroundColor = '#f87c45'; } Madrid DUG Google Dart User Group Dart y el DOM II
❖ Permite encapsular en una forma OO respuestas asíncronas de manera nativa ❖ Future Object, Promesa Object // Futuros void getResult() { var xhr = HttpRequest.getString('http://www.google.es') ..then((resp) => print(resp)) ..catchError((e) => print('Error!')); }