SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
Angular 2 for Dart:
Mentiras y Verdades
@rafbermudez
Hoja de personaje
● Nombre: Rafael Bermúdez Míguez
● Raza: Gallega
● Alineamiento: Caótico soñador
● Especialización: Multiclase
● Contacto:
○ @rafbermudez
○ rafa@rafbermudez.com
“Vivo pegado al código”
@rafbermudez
¿De qué va esta película?
● Desarrollo web
● Typescript, ECMA 6, ...
● Dart
● Angular 2
● Productividad
INTRO
@rafbermudez
ABOUT
Lenguaje Dart
● Opensource
● De propósito general
● Orientado a objetos, basado en clases
● Herencia simple
● Tipado opcional
● Lenguaje moderno:
○ Librerías
○ Generics, Lambdas, funciones como argumento, …
○ Programación concurrente: Isolates
○ Async support
https://www.dartlang.org/docs/dart-up-and-running/ch02.html
@rafbermudez
ABOUT
Lenguaje Dart: Look and Feel
● Amigable (Java style)
class Person {
String name;
String greet() {
'Hello, $name';
}
String greetShort() => 'Hello, $name';
}
https://www.dartlang.org/docs/synonyms/
● Connect Dart & Html
○ Utiliza jQuery
import 'dart:html';
void main() {
querySelector('#RipVanWinkle').text = 'Wake up, sleepy head!';
}
https://www.dartlang.org/docs/tutorials/connect-dart-html/
@rafbermudez
ABOUT
Angular 2
● Nace de las ideas de AngularDart
Quizz Show
@rafbermudez
“La gestión de paquetes PUB es genial”
Gestor de paquetes
LEVEL 1
@rafbermudez
● Gestor de paquetes y assets: pub
https://pub.dartlang.org/
● pubspec.yaml
name: angular2_getting_started
description: QuickStart
version: 0.0.1
environment:
sdk: '>=1.13.0 <2.0.0'
dependencies:
angular2: 2.0.0-beta.17
browser: ^0.10.0
dart_to_js_script_rewriter: ^1.0.1
transformers:
- angular2:
entry_points: web/main.dart
- dart_to_js_script_rewriter
> pub get
Gestor de paquetes
LEVEL 1
❏ Sistema muy vivo
“Más de 500 paquetes
actualizados en 2016”
@rafbermudez
“Crear un proyecto Angular 2 for Dart es un infierno”
Creando un proyecto Angular 2 for Dart
LEVEL 2
@rafbermudez
● StageHand:
○ The Dart project generator (basado en profiles)
■ web-angular - A web app built using Angular 2.
■ web-polymer - A web app built using polymer.dart.
■ web-simple - An absolute bare-bones web app.
https://pub.dartlang.org/packages/stagehand
> pub global activate stagehand
> mkdir my_project
> cd my_project
> stagehand web-angular
Creando un proyecto Angular 2 for Dart
LEVEL 2
❏ Válido para cualquier
tipo de aplicación
Dart (console, …)
@rafbermudez
“El soporte a Dart de terceros es genial”
Dart Tools
LEVEL 3
@rafbermudez
● IDES:
○ Muy buenos: WebStorm
○ Mediocres: Atom, Sublime
○ Malos: Vim, Emacs
● Soporte de navegadores:
○ Chromium (para desarrollo)
○ Javascript compiler (Muy bueno)
https://www.dartlang.org/tools/
Dart Tools
LEVEL 3
❏ Se renuncia a la idea
de ejecución nativa
en navegadores
“potenciar el dart_to_js”
@rafbermudez
“Typescript es más potente que Dart”
Dart Tools
LEVEL 4
@rafbermudez
Dart Tools
LEVEL 4
❏ Similares
características
Typescript Dart
Clases y Herencia tradicional yes yes
Mixins yes yes
Tipado opcional opcional
Referenciando otras librerías import import
Depurando: SourceMapping SourceMapping, Chromium +
Dartium
Reactive programming yes yes
Expresiones lambda yes yes
Asynchrony Support Async/ Await Async/ Await, Futures, Streams
Sobrecarga de operadores no yes
Genéricos no yes
@rafbermudez
“Un proyecto Angular 2 for Dart es más simple”
Angular 2: Typescript vs Dart
LEVEL 5
@rafbermudez
Angular 2: Typescript vs Dart
TYPESCRIPT DART
LEVEL 5
❏ Estructura de
proyecto más limpia
@rafbermudez
Angular 2: Typescript vs Dart
TYPESCRIPT DART
LEVEL 5
❏ Ecosistema más
acotado pero flexible
NPM DART PACKAGES
SYSTEMJS
JASMINE
JS MINIFICATION
GULP
...
@rafbermudez
“Los componentes de Angular 2 son básicamente
iguales en cualquier lenguaje soportado”
Angular 2: Lenguajes
LEVEL 6
@rafbermudez
Angular 2: Lenguajes
@Component({
selector: 'my-app',
template: `
<h1>Component Router (Deprecated)</h1>
<nav>
<a [routerLink]="['CrisisCenter']">Crisis Center</a>
<a [routerLink]="['Heroes']">Heroes</a>
</nav>
<router-outlet></router-outlet>
`,
directives: [ROUTER_DIRECTIVES]
})
@RouteConfig([
{path: '/crisis-center', name: 'CrisisCenter', component: CrisisListComponent},
{path: '/heroes', name: 'Heroes', component: HeroListComponent}
])
LEVEL 6
❏ EJEMPLO:
“Router Typescript”
@rafbermudez
Angular 2: Lenguajes
@Component(
selector: 'my-app',
template: '''
<h1>Component Router (Deprecated)</h1>
<nav>
<a [routerLink]="['CrisisCenter']">Crisis Center</a>
<a [routerLink]="['Heroes']">Heroes</a>
</nav>
<router-outlet></router-outlet>
''',
directives: const [ROUTER_DIRECTIVES]
)
@RouteConfig(const [
const Route(path: '/crisis-center', name: 'CrisisCenter', component: CrisisListComponent),
const Route(path: '/heroes', name: 'Heroes', component: HeroListComponent)
])
LEVEL 6
❏ EJEMPLO:
“Router Dart”
@rafbermudez
“La documentación oficial de Angular 2 for Dart es
buena”
Documentación Angular 2 for Dart
LEVEL 7
@rafbermudez
Documentación Angular 2 for Dart
● Apartados en estado “por completar”
● Remite constantemente a:
○ la versión Typescript
○ proyectos guía en github
● Documentación para programadores con experiencia
○ Asume nivel base
○ Sugiere workarounds
○ Especificaciones del lenguaje / framework
LEVEL 7
❏ Documentación Dart:
“buena (pero dura)”
❏ Documentación
Angular 2 for Dart:
“en construcción”
@rafbermudez
“El interés en Dart está en mínimos”
Dart vs Javascript
LEVEL 8
@rafbermudez
Dart vs Javascript
LEVEL 8
❏ Dart NO ha cumplido
las expectativas
iniciales:
“Un lenguaje para
dominarlos a todos”
@rafbermudez
“Nadie utilza Angular 2 for Dart”
Angular 2 for Dart
LEVEL 9
@rafbermudez
Angular 2 for Dart
● Aún nadie utiliza Angular 2
● Angular 2 aún está en release candidate
● Las 2 aplicaciones más importantes que utilizan Angular
2 están en Dart
○ Google Adwords
○ Google Greentea
LEVEL 9
❏ Angular 2 nace de
AngularDart”
@rafbermudez
“La comunidad de Angular 2 for Dart / Dart
es una ”
Comunidad
LEVEL 10
@rafbermudez
Comunidad
● Es muy pequeña
● Canal directo con los desarrolladores / gurús de Dart y
Angular 2 for Dart
○ Stack Overflow
○ Slack
● Tiempo medio de respuesta en slack = 6 minutos!!!
(Experiencia personal)
LEVEL 10
❏ JASP:
“Joven aunque
sobradamente preparada”
@rafbermudez
“Cualquier proyecto es adecuado para usar Angular
2 for Dart”
¿Tiene sentido usar Angular 2 for Dart?
LEVEL 11
@rafbermudez
¿Tiene sentido usar Angular 2 for Dart?
● Soporte oficial
● Hello world = 321 KB !!! (frente a los 114 de Typescript)
○ proyectos dónde el AB no es problema
○ proyectos complejos
● Soporte para la mayoría de los frameworks de moda:
○ Polymer, React, BootStrap, ...
○ … pero con matices
● Fácil y potente manejo de canvas
● Visibilidad del equipo ( efecto WoW)
LEVEL 11
❏ Simple pero complejo
“Necesaria una buena base
en programación y sus
paradigmas”
¡Gracias! ¿Preguntas?
Angular 2 for Dart: Mentiras y verdades

Más contenido relacionado

Destacado

Tourism Development in Kayah State: Cultures and Communities
Tourism Development in Kayah State: Cultures and CommunitiesTourism Development in Kayah State: Cultures and Communities
Tourism Development in Kayah State: Cultures and CommunitiesEthical Sector
 
Economic Opportunities and Challenges in Rakhine State
Economic Opportunities and Challenges in Rakhine StateEconomic Opportunities and Challenges in Rakhine State
Economic Opportunities and Challenges in Rakhine StateEthical Sector
 
Smart's experience in anti corruption
Smart's experience in anti corruptionSmart's experience in anti corruption
Smart's experience in anti corruptionEthical Sector
 
A busca por ideias inovadoras
A busca por ideias inovadorasA busca por ideias inovadoras
A busca por ideias inovadorasBruno Brandes
 
[경험디자인] 영화예매 경험개선을 위한 시네마할인가이드
[경험디자인] 영화예매 경험개선을 위한 시네마할인가이드[경험디자인] 영화예매 경험개선을 위한 시네마할인가이드
[경험디자인] 영화예매 경험개선을 위한 시네마할인가이드iamnanda301
 
Main findings from MCRB's Sector-Wide Impact Assessment on Tourism
Main findings from MCRB's Sector-Wide Impact Assessment on TourismMain findings from MCRB's Sector-Wide Impact Assessment on Tourism
Main findings from MCRB's Sector-Wide Impact Assessment on TourismEthical Sector
 
Tourism and Land: Relevant National Policy Frameworks - Vicky Bowman
Tourism and Land: Relevant National Policy Frameworks - Vicky BowmanTourism and Land: Relevant National Policy Frameworks - Vicky Bowman
Tourism and Land: Relevant National Policy Frameworks - Vicky BowmanEthical Sector
 
#ACUI15 Social Media Assessment Flash Session
#ACUI15 Social Media Assessment Flash Session#ACUI15 Social Media Assessment Flash Session
#ACUI15 Social Media Assessment Flash SessionJennifer Keegin
 
How companies respond to complaints and grievances (Burmese)
How companies respond to complaints and grievances (Burmese)How companies respond to complaints and grievances (Burmese)
How companies respond to complaints and grievances (Burmese)Ethical Sector
 

Destacado (17)

Tourism Development in Kayah State: Cultures and Communities
Tourism Development in Kayah State: Cultures and CommunitiesTourism Development in Kayah State: Cultures and Communities
Tourism Development in Kayah State: Cultures and Communities
 
Chu de1 nhom2
Chu de1 nhom2Chu de1 nhom2
Chu de1 nhom2
 
Economic Opportunities and Challenges in Rakhine State
Economic Opportunities and Challenges in Rakhine StateEconomic Opportunities and Challenges in Rakhine State
Economic Opportunities and Challenges in Rakhine State
 
Smart's experience in anti corruption
Smart's experience in anti corruptionSmart's experience in anti corruption
Smart's experience in anti corruption
 
A busca por ideias inovadoras
A busca por ideias inovadorasA busca por ideias inovadoras
A busca por ideias inovadoras
 
[경험디자인] 영화예매 경험개선을 위한 시네마할인가이드
[경험디자인] 영화예매 경험개선을 위한 시네마할인가이드[경험디자인] 영화예매 경험개선을 위한 시네마할인가이드
[경험디자인] 영화예매 경험개선을 위한 시네마할인가이드
 
Magnet 2014 new
Magnet 2014 newMagnet 2014 new
Magnet 2014 new
 
Dynamo.kiev.ua 2014
Dynamo.kiev.ua 2014Dynamo.kiev.ua 2014
Dynamo.kiev.ua 2014
 
enzyme paper
enzyme paperenzyme paper
enzyme paper
 
Commonly Asked Questions
Commonly Asked QuestionsCommonly Asked Questions
Commonly Asked Questions
 
Chu de2 nhom2
Chu de2 nhom2Chu de2 nhom2
Chu de2 nhom2
 
Main findings from MCRB's Sector-Wide Impact Assessment on Tourism
Main findings from MCRB's Sector-Wide Impact Assessment on TourismMain findings from MCRB's Sector-Wide Impact Assessment on Tourism
Main findings from MCRB's Sector-Wide Impact Assessment on Tourism
 
dengue
dengue dengue
dengue
 
Tourism and Land: Relevant National Policy Frameworks - Vicky Bowman
Tourism and Land: Relevant National Policy Frameworks - Vicky BowmanTourism and Land: Relevant National Policy Frameworks - Vicky Bowman
Tourism and Land: Relevant National Policy Frameworks - Vicky Bowman
 
#ACUI15 Social Media Assessment Flash Session
#ACUI15 Social Media Assessment Flash Session#ACUI15 Social Media Assessment Flash Session
#ACUI15 Social Media Assessment Flash Session
 
HIPS Filament - Filaments.ca
HIPS Filament - Filaments.caHIPS Filament - Filaments.ca
HIPS Filament - Filaments.ca
 
How companies respond to complaints and grievances (Burmese)
How companies respond to complaints and grievances (Burmese)How companies respond to complaints and grievances (Burmese)
How companies respond to complaints and grievances (Burmese)
 

Similar a Angular 2 for dart mentiras y verdades (Google I/O extended Madrid)

Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptxLo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptxSergio Antonio Ochoa Martinez
 
Alternativas a Rails para sitios y servicios web ultraligeros
Alternativas a Rails para sitios y  servicios web ultraligerosAlternativas a Rails para sitios y  servicios web ultraligeros
Alternativas a Rails para sitios y servicios web ultraligeroshappywebcoder
 
An Evening with... Go Lang
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go LangArkhotech
 
Dart - el lenguaje estructurado de Google
Dart - el lenguaje estructurado de GoogleDart - el lenguaje estructurado de Google
Dart - el lenguaje estructurado de GoogleGDG Lima
 
Android apps: un dia sin dex2jar y sin apktool
Android apps: un dia sin dex2jar y sin apktoolAndroid apps: un dia sin dex2jar y sin apktool
Android apps: un dia sin dex2jar y sin apktoolSalvador Mendoza
 
Afilando la Katana: Qué debe saber un ninja programador (en 2013)
Afilando la Katana: Qué debe saber un ninja programador (en 2013)Afilando la Katana: Qué debe saber un ninja programador (en 2013)
Afilando la Katana: Qué debe saber un ninja programador (en 2013)Software Guru
 
Programación Políglota en la JVM
Programación Políglota en la JVMProgramación Políglota en la JVM
Programación Políglota en la JVMJano González
 
Erlang/OTP - V Taller de Programación Funcional
Erlang/OTP - V Taller de Programación FuncionalErlang/OTP - V Taller de Programación Funcional
Erlang/OTP - V Taller de Programación FuncionalManuel Rubio
 
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011Jano González
 
Bend the developers to your will - miguel tarascó @ tarlogic - rooted 2015
Bend the developers to your will  - miguel tarascó @ tarlogic - rooted 2015Bend the developers to your will  - miguel tarascó @ tarlogic - rooted 2015
Bend the developers to your will - miguel tarascó @ tarlogic - rooted 2015atarasco
 
El Crystal Encantado
El Crystal EncantadoEl Crystal Encantado
El Crystal EncantadoFrancisco
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machosJorge Hernandez
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesFran García
 

Similar a Angular 2 for dart mentiras y verdades (Google I/O extended Madrid) (20)

Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptxLo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
Lo que tienes que saber de Dart para Backend, frontend y Mobile..pptx
 
Acercádonos a dart
Acercádonos a dartAcercádonos a dart
Acercádonos a dart
 
Acercádonos a Dart
Acercádonos a DartAcercádonos a Dart
Acercádonos a Dart
 
Alternativas a Rails para sitios y servicios web ultraligeros
Alternativas a Rails para sitios y  servicios web ultraligerosAlternativas a Rails para sitios y  servicios web ultraligeros
Alternativas a Rails para sitios y servicios web ultraligeros
 
An Evening with... Go Lang
An Evening with... Go LangAn Evening with... Go Lang
An Evening with... Go Lang
 
Dart - el lenguaje estructurado de Google
Dart - el lenguaje estructurado de GoogleDart - el lenguaje estructurado de Google
Dart - el lenguaje estructurado de Google
 
Android apps: un dia sin dex2jar y sin apktool
Android apps: un dia sin dex2jar y sin apktoolAndroid apps: un dia sin dex2jar y sin apktool
Android apps: un dia sin dex2jar y sin apktool
 
Afilando la Katana: Qué debe saber un ninja programador (en 2013)
Afilando la Katana: Qué debe saber un ninja programador (en 2013)Afilando la Katana: Qué debe saber un ninja programador (en 2013)
Afilando la Katana: Qué debe saber un ninja programador (en 2013)
 
Programación Políglota en la JVM
Programación Políglota en la JVMProgramación Políglota en la JVM
Programación Políglota en la JVM
 
Erlang/OTP - V Taller de Programación Funcional
Erlang/OTP - V Taller de Programación FuncionalErlang/OTP - V Taller de Programación Funcional
Erlang/OTP - V Taller de Programación Funcional
 
Sobre GrooScript
Sobre GrooScriptSobre GrooScript
Sobre GrooScript
 
SIMUNROBOT
SIMUNROBOTSIMUNROBOT
SIMUNROBOT
 
ASP.NET 5 - DotNetters
ASP.NET 5 - DotNettersASP.NET 5 - DotNetters
ASP.NET 5 - DotNetters
 
No quiero vuestra basura en Android
No quiero vuestra basura en AndroidNo quiero vuestra basura en Android
No quiero vuestra basura en Android
 
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
JRuby: Ruby en un mundo enterprise RubyConf Uruguay 2011
 
Bend the developers to your will - miguel tarascó @ tarlogic - rooted 2015
Bend the developers to your will  - miguel tarascó @ tarlogic - rooted 2015Bend the developers to your will  - miguel tarascó @ tarlogic - rooted 2015
Bend the developers to your will - miguel tarascó @ tarlogic - rooted 2015
 
El Crystal Encantado
El Crystal EncantadoEl Crystal Encantado
El Crystal Encantado
 
Python - Programación para machos
Python - Programación para machosPython - Programación para machos
Python - Programación para machos
 
Groovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicacionesGroovy&Grails: desarrollo rápido de aplicaciones
Groovy&Grails: desarrollo rápido de aplicaciones
 
Jano Gonzalez - jruby
Jano Gonzalez - jrubyJano Gonzalez - jruby
Jano Gonzalez - jruby
 

Más de Rafael Bermúdez Míguez

Dart como alternativa a TypeScript (Codemotion 2016)
Dart como alternativa a TypeScript (Codemotion 2016)Dart como alternativa a TypeScript (Codemotion 2016)
Dart como alternativa a TypeScript (Codemotion 2016)Rafael Bermúdez Míguez
 
Desafío total: cómo resolver retos extremos
Desafío total:  cómo resolver retos extremosDesafío total:  cómo resolver retos extremos
Desafío total: cómo resolver retos extremosRafael Bermúdez Míguez
 
Construyendo tu propia bola de cristal predicción de precios con machine lea...
Construyendo tu propia bola de cristal  predicción de precios con machine lea...Construyendo tu propia bola de cristal  predicción de precios con machine lea...
Construyendo tu propia bola de cristal predicción de precios con machine lea...Rafael Bermúdez Míguez
 
Cross management experiences. mis 7 conclusiones
Cross management experiences.  mis 7 conclusionesCross management experiences.  mis 7 conclusiones
Cross management experiences. mis 7 conclusionesRafael Bermúdez Míguez
 
Piensa en grande: Big data para programadores
Piensa en grande: Big data para programadoresPiensa en grande: Big data para programadores
Piensa en grande: Big data para programadoresRafael Bermúdez Míguez
 
Crea tu propio motor de videojuegos con backbone y canvas (html5)
Crea tu propio motor de videojuegos con backbone y canvas (html5)Crea tu propio motor de videojuegos con backbone y canvas (html5)
Crea tu propio motor de videojuegos con backbone y canvas (html5)Rafael Bermúdez Míguez
 
Xii betabeers galicia todo lo que me hubiera gustado saber cuando abrace el...
Xii betabeers galicia   todo lo que me hubiera gustado saber cuando abrace el...Xii betabeers galicia   todo lo que me hubiera gustado saber cuando abrace el...
Xii betabeers galicia todo lo que me hubiera gustado saber cuando abrace el...Rafael Bermúdez Míguez
 

Más de Rafael Bermúdez Míguez (8)

Dart como alternativa a TypeScript (Codemotion 2016)
Dart como alternativa a TypeScript (Codemotion 2016)Dart como alternativa a TypeScript (Codemotion 2016)
Dart como alternativa a TypeScript (Codemotion 2016)
 
Desafío total: cómo resolver retos extremos
Desafío total:  cómo resolver retos extremosDesafío total:  cómo resolver retos extremos
Desafío total: cómo resolver retos extremos
 
Gorm for cassandra
Gorm for cassandraGorm for cassandra
Gorm for cassandra
 
Construyendo tu propia bola de cristal predicción de precios con machine lea...
Construyendo tu propia bola de cristal  predicción de precios con machine lea...Construyendo tu propia bola de cristal  predicción de precios con machine lea...
Construyendo tu propia bola de cristal predicción de precios con machine lea...
 
Cross management experiences. mis 7 conclusiones
Cross management experiences.  mis 7 conclusionesCross management experiences.  mis 7 conclusiones
Cross management experiences. mis 7 conclusiones
 
Piensa en grande: Big data para programadores
Piensa en grande: Big data para programadoresPiensa en grande: Big data para programadores
Piensa en grande: Big data para programadores
 
Crea tu propio motor de videojuegos con backbone y canvas (html5)
Crea tu propio motor de videojuegos con backbone y canvas (html5)Crea tu propio motor de videojuegos con backbone y canvas (html5)
Crea tu propio motor de videojuegos con backbone y canvas (html5)
 
Xii betabeers galicia todo lo que me hubiera gustado saber cuando abrace el...
Xii betabeers galicia   todo lo que me hubiera gustado saber cuando abrace el...Xii betabeers galicia   todo lo que me hubiera gustado saber cuando abrace el...
Xii betabeers galicia todo lo que me hubiera gustado saber cuando abrace el...
 

Último

GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 

Último (20)

GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 

Angular 2 for dart mentiras y verdades (Google I/O extended Madrid)

  • 1. Angular 2 for Dart: Mentiras y Verdades
  • 2. @rafbermudez Hoja de personaje ● Nombre: Rafael Bermúdez Míguez ● Raza: Gallega ● Alineamiento: Caótico soñador ● Especialización: Multiclase ● Contacto: ○ @rafbermudez ○ rafa@rafbermudez.com “Vivo pegado al código”
  • 3. @rafbermudez ¿De qué va esta película? ● Desarrollo web ● Typescript, ECMA 6, ... ● Dart ● Angular 2 ● Productividad INTRO
  • 4. @rafbermudez ABOUT Lenguaje Dart ● Opensource ● De propósito general ● Orientado a objetos, basado en clases ● Herencia simple ● Tipado opcional ● Lenguaje moderno: ○ Librerías ○ Generics, Lambdas, funciones como argumento, … ○ Programación concurrente: Isolates ○ Async support https://www.dartlang.org/docs/dart-up-and-running/ch02.html
  • 5. @rafbermudez ABOUT Lenguaje Dart: Look and Feel ● Amigable (Java style) class Person { String name; String greet() { 'Hello, $name'; } String greetShort() => 'Hello, $name'; } https://www.dartlang.org/docs/synonyms/ ● Connect Dart & Html ○ Utiliza jQuery import 'dart:html'; void main() { querySelector('#RipVanWinkle').text = 'Wake up, sleepy head!'; } https://www.dartlang.org/docs/tutorials/connect-dart-html/
  • 6. @rafbermudez ABOUT Angular 2 ● Nace de las ideas de AngularDart
  • 8. @rafbermudez “La gestión de paquetes PUB es genial” Gestor de paquetes LEVEL 1
  • 9. @rafbermudez ● Gestor de paquetes y assets: pub https://pub.dartlang.org/ ● pubspec.yaml name: angular2_getting_started description: QuickStart version: 0.0.1 environment: sdk: '>=1.13.0 <2.0.0' dependencies: angular2: 2.0.0-beta.17 browser: ^0.10.0 dart_to_js_script_rewriter: ^1.0.1 transformers: - angular2: entry_points: web/main.dart - dart_to_js_script_rewriter > pub get Gestor de paquetes LEVEL 1 ❏ Sistema muy vivo “Más de 500 paquetes actualizados en 2016”
  • 10. @rafbermudez “Crear un proyecto Angular 2 for Dart es un infierno” Creando un proyecto Angular 2 for Dart LEVEL 2
  • 11. @rafbermudez ● StageHand: ○ The Dart project generator (basado en profiles) ■ web-angular - A web app built using Angular 2. ■ web-polymer - A web app built using polymer.dart. ■ web-simple - An absolute bare-bones web app. https://pub.dartlang.org/packages/stagehand > pub global activate stagehand > mkdir my_project > cd my_project > stagehand web-angular Creando un proyecto Angular 2 for Dart LEVEL 2 ❏ Válido para cualquier tipo de aplicación Dart (console, …)
  • 12. @rafbermudez “El soporte a Dart de terceros es genial” Dart Tools LEVEL 3
  • 13. @rafbermudez ● IDES: ○ Muy buenos: WebStorm ○ Mediocres: Atom, Sublime ○ Malos: Vim, Emacs ● Soporte de navegadores: ○ Chromium (para desarrollo) ○ Javascript compiler (Muy bueno) https://www.dartlang.org/tools/ Dart Tools LEVEL 3 ❏ Se renuncia a la idea de ejecución nativa en navegadores “potenciar el dart_to_js”
  • 14. @rafbermudez “Typescript es más potente que Dart” Dart Tools LEVEL 4
  • 15. @rafbermudez Dart Tools LEVEL 4 ❏ Similares características Typescript Dart Clases y Herencia tradicional yes yes Mixins yes yes Tipado opcional opcional Referenciando otras librerías import import Depurando: SourceMapping SourceMapping, Chromium + Dartium Reactive programming yes yes Expresiones lambda yes yes Asynchrony Support Async/ Await Async/ Await, Futures, Streams Sobrecarga de operadores no yes Genéricos no yes
  • 16. @rafbermudez “Un proyecto Angular 2 for Dart es más simple” Angular 2: Typescript vs Dart LEVEL 5
  • 17. @rafbermudez Angular 2: Typescript vs Dart TYPESCRIPT DART LEVEL 5 ❏ Estructura de proyecto más limpia
  • 18. @rafbermudez Angular 2: Typescript vs Dart TYPESCRIPT DART LEVEL 5 ❏ Ecosistema más acotado pero flexible NPM DART PACKAGES SYSTEMJS JASMINE JS MINIFICATION GULP ...
  • 19. @rafbermudez “Los componentes de Angular 2 son básicamente iguales en cualquier lenguaje soportado” Angular 2: Lenguajes LEVEL 6
  • 20. @rafbermudez Angular 2: Lenguajes @Component({ selector: 'my-app', template: ` <h1>Component Router (Deprecated)</h1> <nav> <a [routerLink]="['CrisisCenter']">Crisis Center</a> <a [routerLink]="['Heroes']">Heroes</a> </nav> <router-outlet></router-outlet> `, directives: [ROUTER_DIRECTIVES] }) @RouteConfig([ {path: '/crisis-center', name: 'CrisisCenter', component: CrisisListComponent}, {path: '/heroes', name: 'Heroes', component: HeroListComponent} ]) LEVEL 6 ❏ EJEMPLO: “Router Typescript”
  • 21. @rafbermudez Angular 2: Lenguajes @Component( selector: 'my-app', template: ''' <h1>Component Router (Deprecated)</h1> <nav> <a [routerLink]="['CrisisCenter']">Crisis Center</a> <a [routerLink]="['Heroes']">Heroes</a> </nav> <router-outlet></router-outlet> ''', directives: const [ROUTER_DIRECTIVES] ) @RouteConfig(const [ const Route(path: '/crisis-center', name: 'CrisisCenter', component: CrisisListComponent), const Route(path: '/heroes', name: 'Heroes', component: HeroListComponent) ]) LEVEL 6 ❏ EJEMPLO: “Router Dart”
  • 22. @rafbermudez “La documentación oficial de Angular 2 for Dart es buena” Documentación Angular 2 for Dart LEVEL 7
  • 23. @rafbermudez Documentación Angular 2 for Dart ● Apartados en estado “por completar” ● Remite constantemente a: ○ la versión Typescript ○ proyectos guía en github ● Documentación para programadores con experiencia ○ Asume nivel base ○ Sugiere workarounds ○ Especificaciones del lenguaje / framework LEVEL 7 ❏ Documentación Dart: “buena (pero dura)” ❏ Documentación Angular 2 for Dart: “en construcción”
  • 24. @rafbermudez “El interés en Dart está en mínimos” Dart vs Javascript LEVEL 8
  • 25. @rafbermudez Dart vs Javascript LEVEL 8 ❏ Dart NO ha cumplido las expectativas iniciales: “Un lenguaje para dominarlos a todos”
  • 26. @rafbermudez “Nadie utilza Angular 2 for Dart” Angular 2 for Dart LEVEL 9
  • 27. @rafbermudez Angular 2 for Dart ● Aún nadie utiliza Angular 2 ● Angular 2 aún está en release candidate ● Las 2 aplicaciones más importantes que utilizan Angular 2 están en Dart ○ Google Adwords ○ Google Greentea LEVEL 9 ❏ Angular 2 nace de AngularDart”
  • 28. @rafbermudez “La comunidad de Angular 2 for Dart / Dart es una ” Comunidad LEVEL 10
  • 29. @rafbermudez Comunidad ● Es muy pequeña ● Canal directo con los desarrolladores / gurús de Dart y Angular 2 for Dart ○ Stack Overflow ○ Slack ● Tiempo medio de respuesta en slack = 6 minutos!!! (Experiencia personal) LEVEL 10 ❏ JASP: “Joven aunque sobradamente preparada”
  • 30. @rafbermudez “Cualquier proyecto es adecuado para usar Angular 2 for Dart” ¿Tiene sentido usar Angular 2 for Dart? LEVEL 11
  • 31. @rafbermudez ¿Tiene sentido usar Angular 2 for Dart? ● Soporte oficial ● Hello world = 321 KB !!! (frente a los 114 de Typescript) ○ proyectos dónde el AB no es problema ○ proyectos complejos ● Soporte para la mayoría de los frameworks de moda: ○ Polymer, React, BootStrap, ... ○ … pero con matices ● Fácil y potente manejo de canvas ● Visibilidad del equipo ( efecto WoW) LEVEL 11 ❏ Simple pero complejo “Necesaria una buena base en programación y sus paradigmas”
  • 32. ¡Gracias! ¿Preguntas? Angular 2 for Dart: Mentiras y verdades