PWA & Magento 2 - Deity, otro punto de vista.

Rubén Rodríguez
Rubén RodríguezFront-End Developer at Interactiv4
PWA & Magento 2
RUBÉN RODRÍGUEZ
Deity, otro punto de vista
Rubén Rodríguez
INTERACTIV4
@_rubenR rubenRP @_rubenR
Lead Magento Front-End Architect
¿Qué es Deity?
¿Qué es Deity?
• App web basada en NodeJS
• SPA en React
• Redux para manejo de estados
• Apollo GraphQL
Headless
¿Qué es Deity?
FRONT-
END
API
BACK-END
¿Qué es Deity?
FRONT-
END
API
BACK-END
Headless
¿Qué es Deity?
FRONT-
END
API
BACK-END
Headless
¿De qué está formado
Deity?
¿Qué es Deity?
Módulo para Magento 2
- 19 nuevos endpoints
- 6 endpoints sobreescritos
Funcionalidades relativas al usuario y
direcciones
Deity Magento Api
Generador de boilerplate con
Yeoman
- Crea la estructura básica de la app
- Añade las dependencias (deity-core)
- Genera el package.json y el
development.json
Deity Generator
Implementa las funcionalidades a
nivel de front
- Webpack 4
- React 16
- Redux
- GraphQL
- Babel
- ESlint
- React i18 Next
- MultipleCSS modules
- Bootstrap 3/4
Deity Core
Ventajas
Ventajas
• Documentación
• Comunidad
• Fast Development
Fast Development
VENTAJAS
Arquitectura
Estructura de ficheros
ARQUITECTURA
Flujo de la aplicación
CLIENT.JS
ARQUITECTURA
CLIENT.JS ROUTES.JS
Flujo de la aplicación
ARQUITECTURA
CLIENT.JS APP.JSROUTES.JS
Flujo de la aplicación
ARQUITECTURA
CLIENT.JS APP.JSROUTES.JS
CONTAINER.JS
COMPONENT.JS
Flujo de la aplicación
ARQUITECTURA
CLIENT.JS APP.JSROUTES.JS
CONTAINER.JS
COMPONENT.JS
STYLES.SAS
S
Flujo de la aplicación
ARQUITECTURA
CLIENT.JS APP.JSROUTES.JS
CONTAINER.JS
COMPONENT.JS
STYLES.SAS
S
SERVER.JS
Flujo de la aplicación
ARQUITECTURA
CLIENT.JS APP.JSROUTES.JS
CONTAINER.JS
COMPONENT.JS
STYLES.SAS
S
REDUCER.JSSERVER.JS
Flujo de la aplicación
ARQUITECTURA
CLIENT.JS APP.JSROUTES.JS
CONTAINER.JS
COMPONENT.JS
STYLES.SAS
S
REDUCER.JS QUERY.JSSERVER.JS
Flujo de la aplicación
ARQUITECTURA
CLIENT.JS APP.JSROUTES.JS
CONTAINER.JS
COMPONENT.JS
STYLES.SAS
S
REDUCER.JS QUERY.JS
RESOLVER.J
S
SERVER.JS
Flujo de la aplicación
ARQUITECTURA
CLIENT.JS APP.JSROUTES.JS
CONTAINER.JS
COMPONENT.JS
STYLES.SAS
S
REDUCER.JS QUERY.JS
RESOLVER.J
S
API.JSSERVER.JS
Flujo de la aplicación
ARQUITECTURA
Resumen
Consideraciones
• Deity Moses OSL - Octubre 2018
• Funcionalidades cubiertas >= 70%
• Listo para proyectos simples
• Deity mirror client:
https://bitbucket.org/deity-core/deity-mirror-client/
MADRID - BARCELONA - NEW YORK - SANTO DOMINGO
¡Gracias!
@_rubenR rubenRP @_rubenR
1 of 25

Recommended

Daniel Rabinovich by
Daniel RabinovichDaniel Rabinovich
Daniel Rabinovichfsolari
199 views6 slides
Netcoreconf2020 vlc by
Netcoreconf2020 vlcNetcoreconf2020 vlc
Netcoreconf2020 vlcRobert Bermejo Blasco
126 views23 slides
Github - Herramienta colaborativa by
Github - Herramienta colaborativaGithub - Herramienta colaborativa
Github - Herramienta colaborativatoteman514
347 views4 slides
Drupal mas que un cms by
Drupal mas que un cmsDrupal mas que un cms
Drupal mas que un cmsFernando Paredes García
1.2K views22 slides
Desarrollo Móvil con Android (...y Firebase) by
Desarrollo Móvil con Android (...y Firebase)Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)Armando Picón Z.
283 views40 slides
Cv dennys-jose-marquez-reyes-desarrollador-web by
Cv dennys-jose-marquez-reyes-desarrollador-webCv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-webDennys José Márquez Reyes
15 views4 slides

More Related Content

Similar to PWA & Magento 2 - Deity, otro punto de vista.

Implementando un sitio con Drupal 9 by
Implementando un sitio con Drupal 9 Implementando un sitio con Drupal 9
Implementando un sitio con Drupal 9 Krysla Marcano
164 views22 slides
CrossDvlpu - REACT para desarrolladores de ASP.NET by
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETAlberto Diaz Martin
297 views37 slides
Cross development - React para desarrolladores de asp.net by
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
67 views37 slides
Meetup app-moviles by
Meetup app-movilesMeetup app-moviles
Meetup app-movilesmiguelcarrascoq
724 views45 slides
Web 2.0 by
Web 2.0Web 2.0
Web 2.0Arandavid
38 views6 slides
Web 2.0 by
Web 2.0Web 2.0
Web 2.0Arandavid
44 views6 slides

Similar to PWA & Magento 2 - Deity, otro punto de vista.(20)

Implementando un sitio con Drupal 9 by Krysla Marcano
Implementando un sitio con Drupal 9 Implementando un sitio con Drupal 9
Implementando un sitio con Drupal 9
Krysla Marcano164 views
CrossDvlpu - REACT para desarrolladores de ASP.NET by Alberto Diaz Martin
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
Cross development - React para desarrolladores de asp.net by Alberto Diaz Martin
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
Programacion php con symfony by csalazart
Programacion php con symfonyProgramacion php con symfony
Programacion php con symfony
csalazart2.6K views
Optimización de aplicaciones web con base de datos NoSQL In-Memory by Gonzalo Chacaltana
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Gonzalo Chacaltana2.3K views
Grails: Aumenta tu productividad en tus aplicaciones web Java by Dani Latorre
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web Java
Dani Latorre648 views

Recently uploaded

Seguridad de Windows 11 by
Seguridad de Windows 11Seguridad de Windows 11
Seguridad de Windows 11cesardani28128
5 views7 slides
MDE en la industria by
MDE en la industriaMDE en la industria
MDE en la industriaPedro J. Molina
18 views55 slides
Qué es el rodamiento hacia adelante.docx by
Qué es el rodamiento hacia adelante.docxQué es el rodamiento hacia adelante.docx
Qué es el rodamiento hacia adelante.docxFabianCarrillo31
7 views1 slide
Tecnologia (1).pdf by
Tecnologia (1).pdfTecnologia (1).pdf
Tecnologia (1).pdfnosi6702
9 views13 slides
Operations & Data Graph by
Operations & Data GraphOperations & Data Graph
Operations & Data GraphNeo4j
43 views25 slides
MasterMind.pdf by
MasterMind.pdfMasterMind.pdf
MasterMind.pdfrtovarfernandez
18 views5 slides

Recently uploaded(9)

Tecnologia (1).pdf by nosi6702
Tecnologia (1).pdfTecnologia (1).pdf
Tecnologia (1).pdf
nosi67029 views
Operations & Data Graph by Neo4j
Operations & Data GraphOperations & Data Graph
Operations & Data Graph
Neo4j43 views
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1 by Angel Borroy López
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
Tecnologia (3).pdf by nosi6702
Tecnologia (3).pdfTecnologia (3).pdf
Tecnologia (3).pdf
nosi67027 views

PWA & Magento 2 - Deity, otro punto de vista.

Editor's Notes

  1. HOLA!
  2. Antes de echar un vistazo al código y a la estructura lo primero…¿Qué es Deity?
  3. Más allá de temas comerciales y como resumen Deity es una aplicación web basada en NodeJS que implementa un front con React en una sola página. Incorpora Redux para el manejo de estados y Apollo GraphQL como implementación de GraphQL.
  4. Deity pretende y permite con su aplicación implementar una arquitectura headless para Magento 2. Pero no es el objetivo único. Con un frontend único se puede conectar a diferentes de entrada, como Wordpress para la gestión de páginas estáticas y blog, Algolia para nutrir los resultados de búsqueda, Paypal para los pagos, o cualquier plataforma que tenga una API sobre la que se pueda operar. Esto permite, y sobre todo con la integración de Apollo Client intercambiar un servicio por otro a nivel de backend con mínimos cambios en el frontend. De modo que la plataforma o app del cliente esté viva y se pueda manejar un roadmap diferente para back y front.
  5. Deity pretende y permite con su aplicación implementar una arquitectura headless para Magento 2. Pero no es el objetivo único. Con un frontend único se puede conectar a diferentes de entrada, como Wordpress para la gestión de páginas estáticas y blog, Algolia para nutrir los resultados de búsqueda, Paypal para los pagos, o cualquier plataforma que tenga una API sobre la que se pueda operar. Esto permite, y sobre todo con la integración de Apollo Client intercambiar un servicio por otro a nivel de backend con mínimos cambios en el frontend. De modo que la plataforma o app del cliente esté viva y se pueda manejar un roadmap diferente para back y front.
  6. Deity pretende y permite con su aplicación implementar una arquitectura headless para Magento 2. Pero no es el objetivo único. Con un frontend único se puede conectar a diferentes de entrada, como Wordpress para la gestión de páginas estáticas y blog, Algolia para nutrir los resultados de búsqueda, Paypal para los pagos, o cualquier plataforma que tenga una API sobre la que se pueda operar. Esto permite, y sobre todo con la integración de Apollo Client intercambiar un servicio por otro a nivel de backend con mínimos cambios en el frontend. De modo que la plataforma o app del cliente esté viva y se pueda manejar un roadmap diferente para back y front.
  7. Deity ha dividido el proyecto en varios elementos para poder conectar la aplicación en JavaScript con Magento2 o Wordpress. Estos son: Deity Magento Api (Deity Wordpress Api) Deity Generator Deity Core Deity Magento Api Módulo para Magento 2. Este módulo básicamente implementa 19 nuevos endpoints y sobreescribe 6. Sobre todo completa la parte de “mi cuenta” y gestión de usuarios, direcciones, del cliente, etc… Deity Generator App basada en Yeoman para generar aplicaciones PWA basadas en Deity (deity-core). Yeoman genera la estructura de una app en Node, genera el servidor, cliente, el fichero para trabajar con el service worker. Todo ello basado en un boilerplate guarda los valores de configuración mediante preguntas en el terminal, etc… Esto no quiere decir que sea el único modo de levantar Deity. Puedes generar o utilizar tu propio boilerplate e importar deity como un módulo de npm, pero seguramente tendrías que retocarlo para hacerlo funcionar. No sería tan transparente, pero en cualquier caso una de las cosas buenas de trabajar con JavaScript es que puedes cambiar módulos y funcionalidades del proyecto como si fueran partes intercambiables. Deity Core Este es el módulo clave de todo Deity, la madre del cordero. El módulo que implementa todas las funcionalidades necesarias en un ecommerce. Para ello utiliza las siguientes tecnologías (a día de hoy): - Webpack 4, para generar los assets y las acciones a nivel de ejecución. - React 16 - Redux, para controlar el estado de la aplicación de modo consistente y sin tener que propagar los estados entre componentes, lo cual sería un jaleo. - GraphQL para interactuar con las APIs. - Babel para compilar el código de ES6 a Javascript que entiendan todos los navegadores. - ESlint para la validación de estilos y código. - React i18 Next para las traducciones. De cara a la maquetación usa. - MultipleCSS Modules, para poder aislar los estilos a nivel de componente, pero a su vez poder compartirlos. - Bootstrap 3/4, mediante bootstrap-loader.
  8. Documentación y comunidad. Las librerías que utiliza Son bastante comunes y tienen mucha documentación. Deity no deja de ser un proyecto basado en React en el que trabajan miles de desarrolladores. Puede que no encuentres la respuesta exacta a tu problema en Deity, pero es muy probable que haya respuestas a preguntas similares. Fast Development
  9. El flujo de ejecución de Deity es similar a la de cualquier app en nodeJS, con un servidor y un cliente. Pongamos como punto de partida el cliente y la llamada a la home de la tienda X (por ejemplo la demo). Una vez cargado el cliente y reconocida una petición pasamos al router.
  10. Lanzamiento oficial de Deity como Open Source -> Reacticon, octubre de este año. Opinión personal: 70% de funcionalidades cubiertas, de las cuales no todas son relevantes…muchas son crear endpoints para configuraciones sencillas en system config (lo típico que se guarda en core_config_data). Así que Un buen modo de comenzar a tocar código en PWA es usar Deity Mirror Client. Es una aplicación muy sencillita hecha con react-create-app que muestra un par de listados de productos. Se conecta directamente con el Magento que Deity usa de demostración demo.deity.io así que no es necesario ni instalar el módulo en ningún magento.