SlideShare una empresa de Scribd logo
1 de 60
Descargar para leer sin conexión
#angular #vlcsofting18
#angular #vlcsofting18
Angular Elements: Write once, run
anywhere
#angular #vlcsofting18
Francisco Javier Barrena Castillo - @DogDeveloper
Director Área Técnica I+D – Instituto Tecnológico de Informática
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Lo primero es lo primero…
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
La carrera de twitts
#angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Who’s that guy
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
i+d en el iti
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Anteriormente, en vlcsofting 2015
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Anteriormente, en vlcsofting 2015
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Convierten esto…
12 de junio de 2018 www.vlcsofting.es
http://codepen.io/MattiaAstorino/pen/zxRayG
<!-- Card widget -->
<div class="card"><!-- Face 2 -->
<div class="card-face face-2"><!-- Back trigger -->
<button data-card-back="data-card-back" class="card-face__back-button"><img
src="http://imgh.us/arrow_1.svg" width="19" height="19" draggable="false"/></button><img
src="http://imgh.us/Likes.png" width="100" height="100" draggable="false" class="card-
face__stats"/><img src="http://imgh.us/Followers.png" width="100" height="100" draggable="false"
class="card-face__stats"/><img src="http://imgh.us/Views.png" width="100" height="100"
draggable="false" class="card-face__stats"/><!-- Settings Button --><img src="http://imgh.us/cog.svg"
width="17" height="17" draggable="false" class="card-face__settings-button"/>
</div><!-- Face 1 -->
<div class="card-face face-1"><!-- Menu trigger -->
<button data-card-menu="data-card-menu" class="card-face__menu-button"><img
src="http://imgh.us/dots_1.svg" width="5" height="23" draggable="false"/></button><!-- Avatar -->
<div class="card-face__avatar"><!-- Bullet notification --><span class="card-face__bullet">2</span><!--
User avatar --><img src="http://i.imgur.com/gGdWosb.png" width="110" height="110"
draggable="false"/></div><!-- Name -->
<h2 class="card-face__name">Mattia Astorino</h2><!-- Title --><span class="card-face__title">Graphic
& Web Designer</span><!-- Cart Footer -->
<div class="card-face-footer"><a href="https://dribbble.com/astorino_mattia" target="_blank"
class="card-face__social"><img src="http://imgh.us/dribbble.svg" width="36" height="36"
draggable="false"/></a><a href="https://www.behance.net/mattia_astorino" target="_blank" class="card-
face__social"><img src="http://imgh.us/beh.svg" width="36" height="36" draggable="false"/></a><a
href="https://plus.google.com/u/0/+MattiaAstorino/posts" target="_blank" class="card-
face__social"><img src="http://imgh.us/plus_5.svg" width="36" height="36"
draggable="false"/></a></div>
</div>
</div>
#angular #vlcsofting18#angular #vlcsofting18
Y esto…
http://codepen.io/MattiaAstorino/pen/zxRayG
@import url(http://fonts.googleapis.com/css?family=Roboto:400,300);body{height:100vh;background-
color:#f44336;-webkit-transition:background-color 300ms;transition:background-color 300ms;font-
family:Roboto,sans-serif}@media screen and (min-width:30em){body{display:-webkit-box;display:-webkit-
flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-
items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-
content:center}}body.show-menu{background-color:#00ACC1}.card{background-
color:#FFF;position:relative;overflow:hidden;width:100%;height:100%;min-height:405px;-webkit-transition:all
300ms;transition:all 300ms;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-
select:none;box-shadow:0 5px 43px rgba(0,0,0,.18);-webkit-animation-timing-function:cubic-
bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}@media screen and (min-
width:30em){.card{width:290px;height:405px;border-radius:3px}.card:hover{cursor:pointer}}.card-
face{width:100%;height:100%;position:absolute;border-radius:3px;display:-webkit-box;display:-webkit-flex;display:-
ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-
items:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;-
webkit-transition:all 400ms cubic-bezier(.215,.61,.355,1);transition:all 400ms cubic-bezier(.215,.61,.355,1);-webkit-
box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex-
direction:column}.card-face__bullet{background-color:#f44336;color:#FFF;display:block;padding:4px 0;border-
radius:50%;width:23px;height:23px;box-sizing:border-box;line-height:1.2;text-align:center;font-
size:12px;position:absolute;top:10px;right:0;box-shadow:0 1px 5px rgba(0,0,0,.27);-webkit-animation:bullet
500ms;animation:bullet 500ms;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-
delay:1.5s;animation-delay:1.5s;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-
function:cubic-bezier(.23,1,.32,1);font-weight:700}.card-face.face-1{-webkit-transform:translateX(0);-ms-
transform:translateX(0);transform:translateX(0)}.show-menu .card-face.face-1{-webkit-transform:translateX(-
100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.card-face.face-2{-webkit-box-pack:center;-
webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-transform:translateX(100%);-ms-
transform:translateX(100%);transform:translateX(100%)}.show-menu .card-face.face-2{-webkit-
transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.card-face__menu-
button{position:absolute;top:10px;right:5px;background:0 0;border:none;outline:0;padding:5px 15px;-webkit-
transform:translateX(150%);-ms-transform:translateX(150%);transform:translateX(150%);
(+500 líneas, que me colgaban el PowerPoint!!)
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Y esto otro…
http://codepen.io/MattiaAstorino/pen/zxRayG
(function() {
var menu_trigger = $("[data-card-menu]");
var back_trigger = $("[data-card-back]");
menu_trigger.click(function() {
$(".card, body").toggleClass("show-menu");
});
back_trigger.click(function() {
$(".card, body").toggleClass("show-menu");
});
})();
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
En esto
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
En resumen
12 de junio de 2018 www.vlcsofting.es
http://avenuecode.com/web-components-101/
#angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Pero la industria fue por otro camino…
12 de junio de 2018 www.vlcsofting.es
• En lugar de abrazar el estándar, cada provider tiró por su
camino
#angular #vlcsofting18#angular #vlcsofting18
Componente en angular
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
Componente en react
#angular #vlcsofting18#angular #vlcsofting18
Componente en vue
#angular #vlcsofting18#angular #vlcsofting18
Pero la industria fue por otro camino…
12 de junio de 2018 www.vlcsofting.es
• En lugar de abrazar el estándar, cada provider tiró por su
camino
• Todos nos vendieron que nuestro código de front-end sería
reutilizable
• Dejaríamos de copiar y pegar código
• Solo implementaríamos las cosas una vez
#angular #vlcsofting18#angular #vlcsofting18
#angular #vlcsofting18#angular #vlcsofting18
Pero la industria fue por otro camino…
12 de junio de 2018 www.vlcsofting.es
• En lugar de abrazar el estándar, cada provider tiró por su
camino
• Todos nos vendieron que nuestro código de frontend sería
reutilizable
• Dejaríamos de copiar y pegar código
• Solo implementaríamos las cosas una vez
• Invirtieron esfuerzo y recursos en que todos los
desarrolladores de mundo abrazáramos el cambio
• Pero los que más esfuerzo y recursos invertimos en el cambio, en
realidad, fuimos nosotros
#angular #vlcsofting18#angular #vlcsofting18
El ser humano es el único animal…
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
El ser humano es el único animal…
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
la rebelión!
12 de junio de 2018 www.vlcsofting.es
• La industria es poderosa
• Pero no es el origen del poder
• El origen del poder es de los developers
• La industria tiene el dinero
• Nosotros tenemos todo lo demás
• Angular, React, Vue o quien venga no son nadie sin nuestro
consentimiento
#angular #vlcsofting18#angular #vlcsofting18
#angular #vlcsofting18#angular #vlcsofting18
#angular #vlcsofting18#angular #vlcsofting18
Si los developers estornudamos…
12 de junio de 2018 www.vlcsofting.es
• Si los desarrolladores estornudamos, la industria se resfría
• Y los desarrolladores teníamos un problema…
• Los frameworks de front-end evolucionan muy rápidamente
• Muchos de ellos terminan por morir… y si nos pilla dentro tenemos un
problema
• Así que empezamos a buscar alternativas basadas en estándares
• La solución es siempre tender a los estándares
• Y la comunidad empezó a desarrollar librerías basadas en Web
Components, con bastante éxito
• Tanto, que ha obligado a los grandes players a ofrecernos sus propias
soluciones
#angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Angular elements
12 de junio de 2018 www.vlcsofting.es
• Angular Elements son componentes de Angular normales, pero
empaquetados como Custom Elements (Web Components)
• Esta aproximación nos permite desarrollar componentes reusables de
verdad con CERO esfuerzo
• No tengo que hacer nada más que seguir desarrollando como hasta ahora
• Y puedo insertar ese componente donde me de la gana
• ¿Que he apostado por Vue y dentro de 1 año muere? No problemo, ¡mis
componentes los puedo utilizar en cualquier sitio!
#angular #vlcsofting18#angular #vlcsofting18
Angular elements
12 de junio de 2018 www.vlcsofting.es
• Angular Elements se ha liberado con la versión 6 de Angular
• Para poder utilizarlo solo tengo que instalarlo como un paquete así
• Si quiero que mi componente funcione en todas partes, tengo que
instalar también el polyfill adecuado, ya que los Custom Elements no
son soportados por todos los navegadores
#angular #vlcsofting18#angular #vlcsofting18
Custom elements v1 browser support
12 de junio de 2018 www.vlcsofting.es
https://caniuse.com/#feat=custom-elementsv1
#angular #vlcsofting18#angular #vlcsofting18
Angular elements
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Angular elements
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Angular elements
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Angular elements
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Angular elements – step by step
12 de junio de 2018 www.vlcsofting.es
• Primero creamos una aplicación Angular corriente y moliente, con el
CLI de toda la vida
• Después de entrar en el directorio recién creado, instalamos vía npm la
dependencia de @angular/elements y de webcomponents
• Programamos nuestro componente como siempre pero ya que
estamos resolveremos algunas dudas…
• ¿Puedo usar servicios? ¿Y atacar a REST? ¿Configuración externa?
#angular #vlcsofting18#angular #vlcsofting18
Angular elements – step by step
12 de junio de 2018 www.vlcsofting.es
• Generamos un componente nuevo, que será aquel que usaremos con
Angular Elements
• Picamos código…
#angular #vlcsofting18#angular #vlcsofting18
Angular elements – step by step
12 de junio de 2018 www.vlcsofting.es
• Recordad que los componentes que van a
ser ”exportados” con Angular Elements
deben ir en el apartado de
entryComponents del módulo, e
implementar la función ngDoBootstrap()
• Un entryCom
#angular #vlcsofting18#angular #vlcsofting18
Angular elements – step by step
12 de junio de 2018 www.vlcsofting.es
• Ya no estamos desarrollando una aplicación, por tanto el Bootstraping
debe cambiar
#angular #vlcsofting18#angular #vlcsofting18
Angular elements – step by step
12 de junio de 2018 www.vlcsofting.es
• Creamos un fichero index.ts con este código
• Es casi idéntico al clásico main.ts, simplemente le hemos añadido el
polyfills de custom-elements para soportar navegadores como
Internet Explorer, Edge o Firefox
#angular #vlcsofting18#angular #vlcsofting18
Angular elements – step by step
12 de junio de 2018 www.vlcsofting.es
• Ya solo nos queda lo peor resuelto… el empaquetado
• Angular CLI todavía no empaqueta los componentes basados en
Angular Elements, así que tenemos que hacerlo nosotros…
• Podéis usar Gulp, Grunt o lo que vosotros prefiráis. Nosotros
usaremos webpack
• Para ello, lo primero es instalar webpack
• Y crear nuestro propio fichero de configuración del empaquetado de
webpack
• webpack.config.js
#angular #vlcsofting18#angular #vlcsofting18
Angular elements – step by step
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Angular elements – step by step
12 de junio de 2018 www.vlcsofting.es
• Para empaquetar nuestro componente, simplemente escribimos en
línea de comandos el comando webpack
• Si se produce algún error, aparecerá un mensaje como este:
• Si todo va bien, no mostrará nada de nada... Pero generará un fichero
main.js en la carpeta /dist del proyecto
#angular #vlcsofting18#angular #vlcsofting18
Feel like a mage…
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Feel like a mage…
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
conclusiones
12 de junio de 2018 www.vlcsofting.es
• Angular Elements nos permite generar componentes reutilizables en
cualquier plataforma, no solo en la propia Angular
• Podemos utilizar cualquier servicio, módulo o característica que nos
ofrece Angular
• Podemos incluso conseguir que un WebComponent haga una llamada
a una API REST
• Lamentablemente, el empaquetado tenemos que “currárnoslo”
nosotros
• De ese empaquetado dependen algunas cosas, como por ejemplo que
podamos utilizar ficheros separados HTML en lugar de una inline-template
como hemos visto en el ejemplo
#angular #vlcsofting18#angular #vlcsofting18
conclusiones
12 de junio de 2018 www.vlcsofting.es
• También es responsabilidad nuestra minificar y uglificar los
empaquetados para que ocupen menos espacio
• La reducción es muy significativa, hasta de un 70%
• Angular Elements es una mirada hacia el futuro, pero hoy, ahora; en
este momento… aún está de manera incipiente
• Es usable
• Razonablemente estable
• Pero creo que todavía no está production-ready
• Parece que el camino de Angular Elements es firme. Después de todo,
no es la única que lo hace…
#angular #vlcsofting18#angular #vlcsofting18
conclusiones
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Angular elements en la versión 7
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Angular elements en la versión 7
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Y esto da pie…
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Al próximo hype… los micro-frontends
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
Y esto da pie…
12 de junio de 2018 www.vlcsofting.es
#angular #vlcsofting18#angular #vlcsofting18
referencias
12 de junio de 2018 www.vlcsofting.es
• https://nitayneeman.com/posts/a-practical-guide-to-angular-elements/
• https://nitayneeman.com/posts/building-a-custom-element-using-angular-elements/
• https://www.softwarearchitekt.at/post/2018/05/04/microservice-clients-with-web-
components-using-angular-elements-dreams-of-the-near-future.aspx
• https://pascalprecht.github.io/slides/angular-elements/#/
• https://moduscreate.com/blog/angular-elements-ngcomponents-everywhere/
• https://webpack.js.org/guides/installation/
• https://medium.com/codingthesmartway-com-blog/angular-elements-a-practical-
introduction-to-web-components-with-angular-6-52c0b3076c2c
• https://medium.com/@tomsu/wanna-create-an-angular-element-heres-how-
73e2ea85bd28
• https://angular.io/
• https://medium.com/vincent-ogloblinsky/export-angular-components-as-custom-
elements-with-angular-elements-a2a0bfcd7f8a
• https://itnext.io/building-micro-frontend-applications-with-angular-elements-
34483da08bcb
#angular #vlcsofting18#angular #vlcsofting18
Post-vlcsofting18
12 de junio de 2018 www.vlcsofting.es
Al final ganamos la guerra de Twitts! Muchas gracias a todos!

Más contenido relacionado

Similar a Angular Elements: Write once, run anywhere

Realidad aumentada para el aprendizaje de la electricidad
Realidad aumentada para el aprendizaje de la electricidadRealidad aumentada para el aprendizaje de la electricidad
Realidad aumentada para el aprendizaje de la electricidadjaviertecteos
 
Miguel López Congreso Web Zaragoza 2013 #cw13
Miguel López Congreso Web Zaragoza 2013 #cw13Miguel López Congreso Web Zaragoza 2013 #cw13
Miguel López Congreso Web Zaragoza 2013 #cw13Marketing Online Valencia
 
Machine Learning ¿A TODO GAS? con GraalVM
Machine Learning ¿A TODO GAS? con GraalVMMachine Learning ¿A TODO GAS? con GraalVM
Machine Learning ¿A TODO GAS? con GraalVMFrancisco Javier Barrena
 
¿Cómo Publicar desde la API? Y no morir en el intento
¿Cómo Publicar desde la API? Y no morir en el intento¿Cómo Publicar desde la API? Y no morir en el intento
¿Cómo Publicar desde la API? Y no morir en el intentomelidevelopers
 
Introducción del Visual Commerce Day #VCD18
Introducción del Visual Commerce Day #VCD18Introducción del Visual Commerce Day #VCD18
Introducción del Visual Commerce Day #VCD18Jose Carlos Cortizo Perez
 
Tapete beebot piratas
Tapete beebot piratasTapete beebot piratas
Tapete beebot piratassilcari
 
Cómo usar la Wikipedia para análisis SEO
Cómo usar la Wikipedia para análisis SEOCómo usar la Wikipedia para análisis SEO
Cómo usar la Wikipedia para análisis SEOSiteGround España
 
Vender UX, consejos y ejemplos de la vida diaria - Serguei Orozco
Vender UX, consejos y ejemplos de la vida diaria - Serguei OrozcoVender UX, consejos y ejemplos de la vida diaria - Serguei Orozco
Vender UX, consejos y ejemplos de la vida diaria - Serguei OrozcoUX Nights
 
Oportunidades SEO: El Musical - #seoplus2018 #elmusicalseo
Oportunidades SEO: El Musical - #seoplus2018 #elmusicalseoOportunidades SEO: El Musical - #seoplus2018 #elmusicalseo
Oportunidades SEO: El Musical - #seoplus2018 #elmusicalseoMJ Cachón Yáñez
 
ITSmf Astur18 La agilidad como motor de cambio en las organizaciones
ITSmf Astur18 La agilidad como motor de cambio en las organizacionesITSmf Astur18 La agilidad como motor de cambio en las organizaciones
ITSmf Astur18 La agilidad como motor de cambio en las organizacionesAntonio de la Torre Fernández
 
Cómo saber lo que hacen los usuarios en mi web: Realmente, ¿está bien diseñ...
Cómo saber lo que hacen  los usuarios en mi web:  Realmente, ¿está bien diseñ...Cómo saber lo que hacen  los usuarios en mi web:  Realmente, ¿está bien diseñ...
Cómo saber lo que hacen los usuarios en mi web: Realmente, ¿está bien diseñ...Jacob Celso Rodríguez Torres
 
Estrategias SEO en Gestion de Stocks para Ecommerce #CEMD2020
Estrategias SEO en Gestion de Stocks para Ecommerce  #CEMD2020Estrategias SEO en Gestion de Stocks para Ecommerce  #CEMD2020
Estrategias SEO en Gestion de Stocks para Ecommerce #CEMD2020MJ Cachón Yáñez
 
Hackeando Hackathones - CampusInWatch
Hackeando Hackathones - CampusInWatchHackeando Hackathones - CampusInWatch
Hackeando Hackathones - CampusInWatchAdolfo Sanz De Diego
 
Tendencias SEO actuales (Junio 2018) - Webminar en Siteground
Tendencias SEO actuales (Junio 2018) - Webminar en SitegroundTendencias SEO actuales (Junio 2018) - Webminar en Siteground
Tendencias SEO actuales (Junio 2018) - Webminar en SitegroundIñaki Huerta (ikhuerta)
 
Tendencias SEO actuales: a que deberías estar dedicando tus proyectos
Tendencias SEO actuales: a que deberías estar dedicando tus proyectosTendencias SEO actuales: a que deberías estar dedicando tus proyectos
Tendencias SEO actuales: a que deberías estar dedicando tus proyectosSiteGround España
 

Similar a Angular Elements: Write once, run anywhere (20)

Machine learning automatizado
Machine learning automatizadoMachine learning automatizado
Machine learning automatizado
 
Realidad aumentada para el aprendizaje de la electricidad
Realidad aumentada para el aprendizaje de la electricidadRealidad aumentada para el aprendizaje de la electricidad
Realidad aumentada para el aprendizaje de la electricidad
 
Miguel López Congreso Web Zaragoza 2013 #cw13
Miguel López Congreso Web Zaragoza 2013 #cw13Miguel López Congreso Web Zaragoza 2013 #cw13
Miguel López Congreso Web Zaragoza 2013 #cw13
 
Machine Learning ¿A TODO GAS? con GraalVM
Machine Learning ¿A TODO GAS? con GraalVMMachine Learning ¿A TODO GAS? con GraalVM
Machine Learning ¿A TODO GAS? con GraalVM
 
Presentacion de NETConf.UY 2018
Presentacion de NETConf.UY 2018Presentacion de NETConf.UY 2018
Presentacion de NETConf.UY 2018
 
¿Cómo Publicar desde la API? Y no morir en el intento
¿Cómo Publicar desde la API? Y no morir en el intento¿Cómo Publicar desde la API? Y no morir en el intento
¿Cómo Publicar desde la API? Y no morir en el intento
 
Introducción del Visual Commerce Day #VCD18
Introducción del Visual Commerce Day #VCD18Introducción del Visual Commerce Day #VCD18
Introducción del Visual Commerce Day #VCD18
 
Tapete beebot piratas
Tapete beebot piratasTapete beebot piratas
Tapete beebot piratas
 
Cómo usar la Wikipedia para análisis SEO
Cómo usar la Wikipedia para análisis SEOCómo usar la Wikipedia para análisis SEO
Cómo usar la Wikipedia para análisis SEO
 
#eSuccessBCN by Metricool
#eSuccessBCN by Metricool #eSuccessBCN by Metricool
#eSuccessBCN by Metricool
 
Vender UX, consejos y ejemplos de la vida diaria - Serguei Orozco
Vender UX, consejos y ejemplos de la vida diaria - Serguei OrozcoVender UX, consejos y ejemplos de la vida diaria - Serguei Orozco
Vender UX, consejos y ejemplos de la vida diaria - Serguei Orozco
 
Oportunidades SEO: El Musical - #seoplus2018 #elmusicalseo
Oportunidades SEO: El Musical - #seoplus2018 #elmusicalseoOportunidades SEO: El Musical - #seoplus2018 #elmusicalseo
Oportunidades SEO: El Musical - #seoplus2018 #elmusicalseo
 
ITSmf Astur18 La agilidad como motor de cambio en las organizaciones
ITSmf Astur18 La agilidad como motor de cambio en las organizacionesITSmf Astur18 La agilidad como motor de cambio en las organizaciones
ITSmf Astur18 La agilidad como motor de cambio en las organizaciones
 
Cómo saber lo que hacen los usuarios en mi web: Realmente, ¿está bien diseñ...
Cómo saber lo que hacen  los usuarios en mi web:  Realmente, ¿está bien diseñ...Cómo saber lo que hacen  los usuarios en mi web:  Realmente, ¿está bien diseñ...
Cómo saber lo que hacen los usuarios en mi web: Realmente, ¿está bien diseñ...
 
Estrategias SEO en Gestion de Stocks para Ecommerce #CEMD2020
Estrategias SEO en Gestion de Stocks para Ecommerce  #CEMD2020Estrategias SEO en Gestion de Stocks para Ecommerce  #CEMD2020
Estrategias SEO en Gestion de Stocks para Ecommerce #CEMD2020
 
Encuentro Linux 2011
Encuentro Linux 2011Encuentro Linux 2011
Encuentro Linux 2011
 
#5AnosLanzaderas by Metricool
#5AnosLanzaderas  by Metricool #5AnosLanzaderas  by Metricool
#5AnosLanzaderas by Metricool
 
Hackeando Hackathones - CampusInWatch
Hackeando Hackathones - CampusInWatchHackeando Hackathones - CampusInWatch
Hackeando Hackathones - CampusInWatch
 
Tendencias SEO actuales (Junio 2018) - Webminar en Siteground
Tendencias SEO actuales (Junio 2018) - Webminar en SitegroundTendencias SEO actuales (Junio 2018) - Webminar en Siteground
Tendencias SEO actuales (Junio 2018) - Webminar en Siteground
 
Tendencias SEO actuales: a que deberías estar dedicando tus proyectos
Tendencias SEO actuales: a que deberías estar dedicando tus proyectosTendencias SEO actuales: a que deberías estar dedicando tus proyectos
Tendencias SEO actuales: a que deberías estar dedicando tus proyectos
 

Más de Francisco Javier Barrena

¡Cookiegeddon! Bye a las cookies de terceros y cómo afectará a tu software
¡Cookiegeddon! Bye a las cookies de terceros y cómo afectará a tu software¡Cookiegeddon! Bye a las cookies de terceros y cómo afectará a tu software
¡Cookiegeddon! Bye a las cookies de terceros y cómo afectará a tu softwareFrancisco Javier Barrena
 
Codemotion 2022 - API Security Workshop.pdf
Codemotion 2022 - API Security Workshop.pdfCodemotion 2022 - API Security Workshop.pdf
Codemotion 2022 - API Security Workshop.pdfFrancisco Javier Barrena
 
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...Francisco Javier Barrena
 
Welcome to Gotham - Nuevas formas ingeniosas y terroríficas de ciberataques
Welcome to Gotham - Nuevas formas ingeniosas y terroríficas de ciberataquesWelcome to Gotham - Nuevas formas ingeniosas y terroríficas de ciberataques
Welcome to Gotham - Nuevas formas ingeniosas y terroríficas de ciberataquesFrancisco Javier Barrena
 
Codemotion 2021 - The Rustalorian: Este es el camino
Codemotion 2021 - The Rustalorian: Este es el caminoCodemotion 2021 - The Rustalorian: Este es el camino
Codemotion 2021 - The Rustalorian: Este es el caminoFrancisco Javier Barrena
 
Deja de ser el rival más débil con DevSecOps
Deja de ser el rival más débil con DevSecOpsDeja de ser el rival más débil con DevSecOps
Deja de ser el rival más débil con DevSecOpsFrancisco Javier Barrena
 
Codemotion 2020 - Big Data en Ciberseguridad: mejor morir de pie que vivir ar...
Codemotion 2020 - Big Data en Ciberseguridad: mejor morir de pie que vivir ar...Codemotion 2020 - Big Data en Ciberseguridad: mejor morir de pie que vivir ar...
Codemotion 2020 - Big Data en Ciberseguridad: mejor morir de pie que vivir ar...Francisco Javier Barrena
 
Webinar Codemotion 2020 - Piratas del Cloud
Webinar Codemotion 2020 - Piratas del CloudWebinar Codemotion 2020 - Piratas del Cloud
Webinar Codemotion 2020 - Piratas del CloudFrancisco Javier Barrena
 
TotoConf2020 - Técnicas OSINT que te dejarán con el PAPO torcido
TotoConf2020 - Técnicas OSINT que te dejarán con el PAPO torcidoTotoConf2020 - Técnicas OSINT que te dejarán con el PAPO torcido
TotoConf2020 - Técnicas OSINT que te dejarán con el PAPO torcidoFrancisco Javier Barrena
 
Ciberseguridad en el Cloud - ¿Y es que eso no puede hacerlo otro?
Ciberseguridad en el Cloud - ¿Y es que eso no puede hacerlo otro?Ciberseguridad en el Cloud - ¿Y es que eso no puede hacerlo otro?
Ciberseguridad en el Cloud - ¿Y es que eso no puede hacerlo otro?Francisco Javier Barrena
 
NestJS: Backends en Node para Javeros y Puntoneteros
NestJS: Backends en Node para Javeros y PuntoneterosNestJS: Backends en Node para Javeros y Puntoneteros
NestJS: Backends en Node para Javeros y PuntoneterosFrancisco Javier Barrena
 
Aplicaciones Absurdamente Rápidas con Quarkus.io
Aplicaciones Absurdamente Rápidas con Quarkus.ioAplicaciones Absurdamente Rápidas con Quarkus.io
Aplicaciones Absurdamente Rápidas con Quarkus.ioFrancisco Javier Barrena
 

Más de Francisco Javier Barrena (14)

¡Cookiegeddon! Bye a las cookies de terceros y cómo afectará a tu software
¡Cookiegeddon! Bye a las cookies de terceros y cómo afectará a tu software¡Cookiegeddon! Bye a las cookies de terceros y cómo afectará a tu software
¡Cookiegeddon! Bye a las cookies de terceros y cómo afectará a tu software
 
Codemotion 2022 - API Security Workshop.pdf
Codemotion 2022 - API Security Workshop.pdfCodemotion 2022 - API Security Workshop.pdf
Codemotion 2022 - API Security Workshop.pdf
 
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
 
Semana de la I+D - Proyecto OPOSSUM
Semana de la I+D - Proyecto OPOSSUMSemana de la I+D - Proyecto OPOSSUM
Semana de la I+D - Proyecto OPOSSUM
 
Welcome to Gotham - Nuevas formas ingeniosas y terroríficas de ciberataques
Welcome to Gotham - Nuevas formas ingeniosas y terroríficas de ciberataquesWelcome to Gotham - Nuevas formas ingeniosas y terroríficas de ciberataques
Welcome to Gotham - Nuevas formas ingeniosas y terroríficas de ciberataques
 
Codemotion 2021 - The Rustalorian: Este es el camino
Codemotion 2021 - The Rustalorian: Este es el caminoCodemotion 2021 - The Rustalorian: Este es el camino
Codemotion 2021 - The Rustalorian: Este es el camino
 
Deja de ser el rival más débil con DevSecOps
Deja de ser el rival más débil con DevSecOpsDeja de ser el rival más débil con DevSecOps
Deja de ser el rival más débil con DevSecOps
 
Codemotion 2020 - Big Data en Ciberseguridad: mejor morir de pie que vivir ar...
Codemotion 2020 - Big Data en Ciberseguridad: mejor morir de pie que vivir ar...Codemotion 2020 - Big Data en Ciberseguridad: mejor morir de pie que vivir ar...
Codemotion 2020 - Big Data en Ciberseguridad: mejor morir de pie que vivir ar...
 
Webinar Codemotion 2020 - Piratas del Cloud
Webinar Codemotion 2020 - Piratas del CloudWebinar Codemotion 2020 - Piratas del Cloud
Webinar Codemotion 2020 - Piratas del Cloud
 
TotoConf2020 - Técnicas OSINT que te dejarán con el PAPO torcido
TotoConf2020 - Técnicas OSINT que te dejarán con el PAPO torcidoTotoConf2020 - Técnicas OSINT que te dejarán con el PAPO torcido
TotoConf2020 - Técnicas OSINT que te dejarán con el PAPO torcido
 
Ciberseguridad en el Cloud - ¿Y es que eso no puede hacerlo otro?
Ciberseguridad en el Cloud - ¿Y es que eso no puede hacerlo otro?Ciberseguridad en el Cloud - ¿Y es que eso no puede hacerlo otro?
Ciberseguridad en el Cloud - ¿Y es que eso no puede hacerlo otro?
 
NestJS: Backends en Node para Javeros y Puntoneteros
NestJS: Backends en Node para Javeros y PuntoneterosNestJS: Backends en Node para Javeros y Puntoneteros
NestJS: Backends en Node para Javeros y Puntoneteros
 
Kubernetes - The Cloud King
Kubernetes - The Cloud KingKubernetes - The Cloud King
Kubernetes - The Cloud King
 
Aplicaciones Absurdamente Rápidas con Quarkus.io
Aplicaciones Absurdamente Rápidas con Quarkus.ioAplicaciones Absurdamente Rápidas con Quarkus.io
Aplicaciones Absurdamente Rápidas con Quarkus.io
 

Último

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
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
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
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
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 

Último (16)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.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
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
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
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 

Angular Elements: Write once, run anywhere

  • 2. #angular #vlcsofting18 Angular Elements: Write once, run anywhere #angular #vlcsofting18 Francisco Javier Barrena Castillo - @DogDeveloper Director Área Técnica I+D – Instituto Tecnológico de Informática 12 de junio de 2018 www.vlcsofting.es
  • 3. #angular #vlcsofting18#angular #vlcsofting18 Lo primero es lo primero… 12 de junio de 2018 www.vlcsofting.es
  • 4. #angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es La carrera de twitts
  • 5. #angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
  • 6. #angular #vlcsofting18#angular #vlcsofting18 Who’s that guy 12 de junio de 2018 www.vlcsofting.es
  • 7. #angular #vlcsofting18#angular #vlcsofting18 i+d en el iti 12 de junio de 2018 www.vlcsofting.es
  • 8. #angular #vlcsofting18#angular #vlcsofting18 Anteriormente, en vlcsofting 2015 12 de junio de 2018 www.vlcsofting.es
  • 9. #angular #vlcsofting18#angular #vlcsofting18 Anteriormente, en vlcsofting 2015 12 de junio de 2018 www.vlcsofting.es
  • 10. #angular #vlcsofting18#angular #vlcsofting18 Convierten esto… 12 de junio de 2018 www.vlcsofting.es http://codepen.io/MattiaAstorino/pen/zxRayG <!-- Card widget --> <div class="card"><!-- Face 2 --> <div class="card-face face-2"><!-- Back trigger --> <button data-card-back="data-card-back" class="card-face__back-button"><img src="http://imgh.us/arrow_1.svg" width="19" height="19" draggable="false"/></button><img src="http://imgh.us/Likes.png" width="100" height="100" draggable="false" class="card- face__stats"/><img src="http://imgh.us/Followers.png" width="100" height="100" draggable="false" class="card-face__stats"/><img src="http://imgh.us/Views.png" width="100" height="100" draggable="false" class="card-face__stats"/><!-- Settings Button --><img src="http://imgh.us/cog.svg" width="17" height="17" draggable="false" class="card-face__settings-button"/> </div><!-- Face 1 --> <div class="card-face face-1"><!-- Menu trigger --> <button data-card-menu="data-card-menu" class="card-face__menu-button"><img src="http://imgh.us/dots_1.svg" width="5" height="23" draggable="false"/></button><!-- Avatar --> <div class="card-face__avatar"><!-- Bullet notification --><span class="card-face__bullet">2</span><!-- User avatar --><img src="http://i.imgur.com/gGdWosb.png" width="110" height="110" draggable="false"/></div><!-- Name --> <h2 class="card-face__name">Mattia Astorino</h2><!-- Title --><span class="card-face__title">Graphic & Web Designer</span><!-- Cart Footer --> <div class="card-face-footer"><a href="https://dribbble.com/astorino_mattia" target="_blank" class="card-face__social"><img src="http://imgh.us/dribbble.svg" width="36" height="36" draggable="false"/></a><a href="https://www.behance.net/mattia_astorino" target="_blank" class="card- face__social"><img src="http://imgh.us/beh.svg" width="36" height="36" draggable="false"/></a><a href="https://plus.google.com/u/0/+MattiaAstorino/posts" target="_blank" class="card- face__social"><img src="http://imgh.us/plus_5.svg" width="36" height="36" draggable="false"/></a></div> </div> </div>
  • 11. #angular #vlcsofting18#angular #vlcsofting18 Y esto… http://codepen.io/MattiaAstorino/pen/zxRayG @import url(http://fonts.googleapis.com/css?family=Roboto:400,300);body{height:100vh;background- color:#f44336;-webkit-transition:background-color 300ms;transition:background-color 300ms;font- family:Roboto,sans-serif}@media screen and (min-width:30em){body{display:-webkit-box;display:-webkit- flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align- items:center;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify- content:center}}body.show-menu{background-color:#00ACC1}.card{background- color:#FFF;position:relative;overflow:hidden;width:100%;height:100%;min-height:405px;-webkit-transition:all 300ms;transition:all 300ms;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user- select:none;box-shadow:0 5px 43px rgba(0,0,0,.18);-webkit-animation-timing-function:cubic- bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}@media screen and (min- width:30em){.card{width:290px;height:405px;border-radius:3px}.card:hover{cursor:pointer}}.card- face{width:100%;height:100%;position:absolute;border-radius:3px;display:-webkit-box;display:-webkit-flex;display:- ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align- items:center;-webkit-box-pack:start;-webkit-justify-content:flex-start;-ms-flex-pack:start;justify-content:flex-start;- webkit-transition:all 400ms cubic-bezier(.215,.61,.355,1);transition:all 400ms cubic-bezier(.215,.61,.355,1);-webkit- box-orient:vertical;-webkit-box-direction:normal;-webkit-flex-direction:column;-ms-flex-direction:column;flex- direction:column}.card-face__bullet{background-color:#f44336;color:#FFF;display:block;padding:4px 0;border- radius:50%;width:23px;height:23px;box-sizing:border-box;line-height:1.2;text-align:center;font- size:12px;position:absolute;top:10px;right:0;box-shadow:0 1px 5px rgba(0,0,0,.27);-webkit-animation:bullet 500ms;animation:bullet 500ms;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation- delay:1.5s;animation-delay:1.5s;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing- function:cubic-bezier(.23,1,.32,1);font-weight:700}.card-face.face-1{-webkit-transform:translateX(0);-ms- transform:translateX(0);transform:translateX(0)}.show-menu .card-face.face-1{-webkit-transform:translateX(- 100%);-ms-transform:translateX(-100%);transform:translateX(-100%)}.card-face.face-2{-webkit-box-pack:center;- webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;-webkit-transform:translateX(100%);-ms- transform:translateX(100%);transform:translateX(100%)}.show-menu .card-face.face-2{-webkit- transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.card-face__menu- button{position:absolute;top:10px;right:5px;background:0 0;border:none;outline:0;padding:5px 15px;-webkit- transform:translateX(150%);-ms-transform:translateX(150%);transform:translateX(150%); (+500 líneas, que me colgaban el PowerPoint!!) 12 de junio de 2018 www.vlcsofting.es
  • 12. #angular #vlcsofting18#angular #vlcsofting18 Y esto otro… http://codepen.io/MattiaAstorino/pen/zxRayG (function() { var menu_trigger = $("[data-card-menu]"); var back_trigger = $("[data-card-back]"); menu_trigger.click(function() { $(".card, body").toggleClass("show-menu"); }); back_trigger.click(function() { $(".card, body").toggleClass("show-menu"); }); })(); 12 de junio de 2018 www.vlcsofting.es
  • 13. #angular #vlcsofting18#angular #vlcsofting18 En esto 12 de junio de 2018 www.vlcsofting.es
  • 14. #angular #vlcsofting18#angular #vlcsofting18 En resumen 12 de junio de 2018 www.vlcsofting.es http://avenuecode.com/web-components-101/
  • 15. #angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
  • 16. #angular #vlcsofting18#angular #vlcsofting18 Pero la industria fue por otro camino… 12 de junio de 2018 www.vlcsofting.es • En lugar de abrazar el estándar, cada provider tiró por su camino
  • 17. #angular #vlcsofting18#angular #vlcsofting18 Componente en angular 12 de junio de 2018 www.vlcsofting.es
  • 18. #angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es Componente en react
  • 20. #angular #vlcsofting18#angular #vlcsofting18 Pero la industria fue por otro camino… 12 de junio de 2018 www.vlcsofting.es • En lugar de abrazar el estándar, cada provider tiró por su camino • Todos nos vendieron que nuestro código de front-end sería reutilizable • Dejaríamos de copiar y pegar código • Solo implementaríamos las cosas una vez
  • 22. #angular #vlcsofting18#angular #vlcsofting18 Pero la industria fue por otro camino… 12 de junio de 2018 www.vlcsofting.es • En lugar de abrazar el estándar, cada provider tiró por su camino • Todos nos vendieron que nuestro código de frontend sería reutilizable • Dejaríamos de copiar y pegar código • Solo implementaríamos las cosas una vez • Invirtieron esfuerzo y recursos en que todos los desarrolladores de mundo abrazáramos el cambio • Pero los que más esfuerzo y recursos invertimos en el cambio, en realidad, fuimos nosotros
  • 23. #angular #vlcsofting18#angular #vlcsofting18 El ser humano es el único animal… 12 de junio de 2018 www.vlcsofting.es
  • 24. #angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
  • 25. #angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
  • 26. #angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
  • 27. #angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
  • 28. #angular #vlcsofting18#angular #vlcsofting18 El ser humano es el único animal… 12 de junio de 2018 www.vlcsofting.es
  • 29. #angular #vlcsofting18#angular #vlcsofting18 la rebelión! 12 de junio de 2018 www.vlcsofting.es • La industria es poderosa • Pero no es el origen del poder • El origen del poder es de los developers • La industria tiene el dinero • Nosotros tenemos todo lo demás • Angular, React, Vue o quien venga no son nadie sin nuestro consentimiento
  • 32. #angular #vlcsofting18#angular #vlcsofting18 Si los developers estornudamos… 12 de junio de 2018 www.vlcsofting.es • Si los desarrolladores estornudamos, la industria se resfría • Y los desarrolladores teníamos un problema… • Los frameworks de front-end evolucionan muy rápidamente • Muchos de ellos terminan por morir… y si nos pilla dentro tenemos un problema • Así que empezamos a buscar alternativas basadas en estándares • La solución es siempre tender a los estándares • Y la comunidad empezó a desarrollar librerías basadas en Web Components, con bastante éxito • Tanto, que ha obligado a los grandes players a ofrecernos sus propias soluciones
  • 33. #angular #vlcsofting18#angular #vlcsofting1812 de junio de 2018 www.vlcsofting.es
  • 34. #angular #vlcsofting18#angular #vlcsofting18 Angular elements 12 de junio de 2018 www.vlcsofting.es • Angular Elements son componentes de Angular normales, pero empaquetados como Custom Elements (Web Components) • Esta aproximación nos permite desarrollar componentes reusables de verdad con CERO esfuerzo • No tengo que hacer nada más que seguir desarrollando como hasta ahora • Y puedo insertar ese componente donde me de la gana • ¿Que he apostado por Vue y dentro de 1 año muere? No problemo, ¡mis componentes los puedo utilizar en cualquier sitio!
  • 35. #angular #vlcsofting18#angular #vlcsofting18 Angular elements 12 de junio de 2018 www.vlcsofting.es • Angular Elements se ha liberado con la versión 6 de Angular • Para poder utilizarlo solo tengo que instalarlo como un paquete así • Si quiero que mi componente funcione en todas partes, tengo que instalar también el polyfill adecuado, ya que los Custom Elements no son soportados por todos los navegadores
  • 36. #angular #vlcsofting18#angular #vlcsofting18 Custom elements v1 browser support 12 de junio de 2018 www.vlcsofting.es https://caniuse.com/#feat=custom-elementsv1
  • 37. #angular #vlcsofting18#angular #vlcsofting18 Angular elements 12 de junio de 2018 www.vlcsofting.es
  • 38. #angular #vlcsofting18#angular #vlcsofting18 Angular elements 12 de junio de 2018 www.vlcsofting.es
  • 39. #angular #vlcsofting18#angular #vlcsofting18 Angular elements 12 de junio de 2018 www.vlcsofting.es
  • 40. #angular #vlcsofting18#angular #vlcsofting18 Angular elements 12 de junio de 2018 www.vlcsofting.es
  • 41. #angular #vlcsofting18#angular #vlcsofting18 Angular elements – step by step 12 de junio de 2018 www.vlcsofting.es • Primero creamos una aplicación Angular corriente y moliente, con el CLI de toda la vida • Después de entrar en el directorio recién creado, instalamos vía npm la dependencia de @angular/elements y de webcomponents • Programamos nuestro componente como siempre pero ya que estamos resolveremos algunas dudas… • ¿Puedo usar servicios? ¿Y atacar a REST? ¿Configuración externa?
  • 42. #angular #vlcsofting18#angular #vlcsofting18 Angular elements – step by step 12 de junio de 2018 www.vlcsofting.es • Generamos un componente nuevo, que será aquel que usaremos con Angular Elements • Picamos código…
  • 43. #angular #vlcsofting18#angular #vlcsofting18 Angular elements – step by step 12 de junio de 2018 www.vlcsofting.es • Recordad que los componentes que van a ser ”exportados” con Angular Elements deben ir en el apartado de entryComponents del módulo, e implementar la función ngDoBootstrap() • Un entryCom
  • 44. #angular #vlcsofting18#angular #vlcsofting18 Angular elements – step by step 12 de junio de 2018 www.vlcsofting.es • Ya no estamos desarrollando una aplicación, por tanto el Bootstraping debe cambiar
  • 45. #angular #vlcsofting18#angular #vlcsofting18 Angular elements – step by step 12 de junio de 2018 www.vlcsofting.es • Creamos un fichero index.ts con este código • Es casi idéntico al clásico main.ts, simplemente le hemos añadido el polyfills de custom-elements para soportar navegadores como Internet Explorer, Edge o Firefox
  • 46. #angular #vlcsofting18#angular #vlcsofting18 Angular elements – step by step 12 de junio de 2018 www.vlcsofting.es • Ya solo nos queda lo peor resuelto… el empaquetado • Angular CLI todavía no empaqueta los componentes basados en Angular Elements, así que tenemos que hacerlo nosotros… • Podéis usar Gulp, Grunt o lo que vosotros prefiráis. Nosotros usaremos webpack • Para ello, lo primero es instalar webpack • Y crear nuestro propio fichero de configuración del empaquetado de webpack • webpack.config.js
  • 47. #angular #vlcsofting18#angular #vlcsofting18 Angular elements – step by step 12 de junio de 2018 www.vlcsofting.es
  • 48. #angular #vlcsofting18#angular #vlcsofting18 Angular elements – step by step 12 de junio de 2018 www.vlcsofting.es • Para empaquetar nuestro componente, simplemente escribimos en línea de comandos el comando webpack • Si se produce algún error, aparecerá un mensaje como este: • Si todo va bien, no mostrará nada de nada... Pero generará un fichero main.js en la carpeta /dist del proyecto
  • 49. #angular #vlcsofting18#angular #vlcsofting18 Feel like a mage… 12 de junio de 2018 www.vlcsofting.es
  • 50. #angular #vlcsofting18#angular #vlcsofting18 Feel like a mage… 12 de junio de 2018 www.vlcsofting.es
  • 51. #angular #vlcsofting18#angular #vlcsofting18 conclusiones 12 de junio de 2018 www.vlcsofting.es • Angular Elements nos permite generar componentes reutilizables en cualquier plataforma, no solo en la propia Angular • Podemos utilizar cualquier servicio, módulo o característica que nos ofrece Angular • Podemos incluso conseguir que un WebComponent haga una llamada a una API REST • Lamentablemente, el empaquetado tenemos que “currárnoslo” nosotros • De ese empaquetado dependen algunas cosas, como por ejemplo que podamos utilizar ficheros separados HTML en lugar de una inline-template como hemos visto en el ejemplo
  • 52. #angular #vlcsofting18#angular #vlcsofting18 conclusiones 12 de junio de 2018 www.vlcsofting.es • También es responsabilidad nuestra minificar y uglificar los empaquetados para que ocupen menos espacio • La reducción es muy significativa, hasta de un 70% • Angular Elements es una mirada hacia el futuro, pero hoy, ahora; en este momento… aún está de manera incipiente • Es usable • Razonablemente estable • Pero creo que todavía no está production-ready • Parece que el camino de Angular Elements es firme. Después de todo, no es la única que lo hace…
  • 54. #angular #vlcsofting18#angular #vlcsofting18 Angular elements en la versión 7 12 de junio de 2018 www.vlcsofting.es
  • 55. #angular #vlcsofting18#angular #vlcsofting18 Angular elements en la versión 7 12 de junio de 2018 www.vlcsofting.es
  • 56. #angular #vlcsofting18#angular #vlcsofting18 Y esto da pie… 12 de junio de 2018 www.vlcsofting.es
  • 57. #angular #vlcsofting18#angular #vlcsofting18 Al próximo hype… los micro-frontends 12 de junio de 2018 www.vlcsofting.es
  • 58. #angular #vlcsofting18#angular #vlcsofting18 Y esto da pie… 12 de junio de 2018 www.vlcsofting.es
  • 59. #angular #vlcsofting18#angular #vlcsofting18 referencias 12 de junio de 2018 www.vlcsofting.es • https://nitayneeman.com/posts/a-practical-guide-to-angular-elements/ • https://nitayneeman.com/posts/building-a-custom-element-using-angular-elements/ • https://www.softwarearchitekt.at/post/2018/05/04/microservice-clients-with-web- components-using-angular-elements-dreams-of-the-near-future.aspx • https://pascalprecht.github.io/slides/angular-elements/#/ • https://moduscreate.com/blog/angular-elements-ngcomponents-everywhere/ • https://webpack.js.org/guides/installation/ • https://medium.com/codingthesmartway-com-blog/angular-elements-a-practical- introduction-to-web-components-with-angular-6-52c0b3076c2c • https://medium.com/@tomsu/wanna-create-an-angular-element-heres-how- 73e2ea85bd28 • https://angular.io/ • https://medium.com/vincent-ogloblinsky/export-angular-components-as-custom- elements-with-angular-elements-a2a0bfcd7f8a • https://itnext.io/building-micro-frontend-applications-with-angular-elements- 34483da08bcb
  • 60. #angular #vlcsofting18#angular #vlcsofting18 Post-vlcsofting18 12 de junio de 2018 www.vlcsofting.es Al final ganamos la guerra de Twitts! Muchas gracias a todos!