{"id":7662,"date":"2018-09-07T11:40:38","date_gmt":"2018-09-07T09:40:38","guid":{"rendered":"https:\/\/www.espai.es\/blog\/?p=7662"},"modified":"2021-09-14T16:27:51","modified_gmt":"2021-09-14T14:27:51","slug":"aplicaciones-web-progresivas-y-service-workers","status":"publish","type":"post","link":"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/","title":{"rendered":"Aplicaciones Web Progresivas y Service Workers"},"content":{"rendered":"<p>Las <strong>Aplicaciones Web Progresivas\u00a0(PWA)<\/strong> buscan hacer realidad la eterna promesa de tener <strong>aplicaciones Web similares a las aplicaciones convencionales que usamos en nuestros tel\u00e9fonos m\u00f3viles<\/strong>.<\/p>\n<p>A fin de cumplir esta promesa, se busca que estas aplicaciones Web sean; <strong>r\u00e1pidas<\/strong>, tengan un<strong> interfaz similar a la de cualquier aplicaci\u00f3n nativa para m\u00f3vil<\/strong>, puedan realizar <strong>notificaciones<\/strong> como cualquier otra App, y sobretodo, <strong>que puedan funcionar (mas o menos) sin conexi\u00f3n a Internet<\/strong>.<\/p>\n<h2>\u00bfC\u00f3mo convertir Webs en Aplicaciones Web Progresivas?<\/h2>\n<p>Para lograr este objetivo, hay varios aspectos involucrados que hay que contemplar. Algunos son bien conocidos como los que nos permiten que una Web sea <em>responsive<\/em>. Sin embargo, otros menos conocidos son:<\/p>\n<h3>Single Page Application<\/h3>\n<p>Lo que se conoce como una <strong>SPA (Single Page Application)<\/strong>. La idea de las SPA es <strong>tener \u00abtoda la aplicaci\u00f3n Web\u00bb en una \u00ab\u00fanica p\u00e1gina\u00bb<\/strong>, de forma similar a lo que sucede cuando, por ejemplo, entramos a nuestro correo electr\u00f3nico de gmail. La SPA ser\u00eda b\u00e1sicamente la aplicaci\u00f3n Web, y <strong>tendr\u00eda todo lo necesario para trabajar (aunque sea de forma limitada) incluso sin conexi\u00f3n<\/strong>. As\u00ed, siguiendo con el ejemplo, deber\u00edamos de ser capaces de, por ejemplo, redactar un email aunque no tuvi\u00e9ramos conexi\u00f3n. Obviamente, tarde o temprano es muy probable que la aplicaci\u00f3n Web necesite tener conexi\u00f3n a Internet, pero la filosofia que hay detr\u00e1s de las Aplicaciones Web Progresivas es <strong>que puedan \u00abfuncionar\u00bb sin una conexi\u00f3n continua y estable a Internet<\/strong>. Para poder crear una p\u00e1gina Web tipo SPA, pod\u00e9is echarle un vistazo a frameworks como <a href=\"https:\/\/reactjs.org\/\" target=\"_blank\" rel=\"noopener\">React<\/a>,\u00a0<a href=\"https:\/\/angular.io\/\" target=\"_blank\" rel=\"noopener\">Angular<\/a> o <a href=\"https:\/\/www.espai.es\/blog\/tag\/vue-js\/\" target=\"_blank\" rel=\"noopener\">Vue<\/a>. No es un tema f\u00e1cil, y de hecho, t\u00e9cnicamente <strong>no es un requisito imprescindible<\/strong>, pero si es algo muy interesante y recomendable si vamos a hacer una PWA.<\/p>\n<h3>T\u00edtulo e iconos<\/h3>\n<p>Otro aspecto para hacer pasar una Web por una aplicaci\u00f3n nativa m\u00f3vil, tiene que ver con <strong>aspectos m\u00e1s est\u00e9ticos<\/strong>, como por ejemplo<strong>, el icono y el t\u00edtulo<\/strong> que tendr\u00e1 dicha aplicaci\u00f3n Web en el escritorio de nuestro m\u00f3vil. Para este tipo de detalles, desafortunadamente, a\u00fan <strong>no hay una forma estandarizada y en cada sistema operativo es diferente<\/strong>. En iOS, por ejemplo, se hace simplemente con unos elementos meta en el head de nuestra p\u00e1gina Web. Mientras que en el caso de Android (y Chrome), se hace a trav\u00e9s de un archivo llamado manifest.json. Al igual que sucede en iOS, deberemos de indicar este archivo usando un meta en el head de nuestra p\u00e1gina; con un atributo rel=\u00bbmanifest\u00bb y otro atributo href indicando la localizaci\u00f3n de nuestro archivo json.<\/p>\n<p>En el siguiente <a href=\"https:\/\/www.favicon-generator.org\/\" target=\"_blank\" rel=\"noopener\">enlace<\/a> pod\u00e9is crear un favicon todos los iconos necesarios para diferentes sistemas operativos y un archivo manifest.json b\u00e1sico (que deber\u00edais de mejorar a\u00f1adiendo lo que le falte);<\/p>\n<pre>\r\nhttps:\/\/www.favicon-generator.org\/\r\n<\/pre>\n<p>Para <a href=\"https:\/\/developers.google.com\/web\/fundamentals\/web-app-manifest\/\" target=\"_blank\" rel=\"noopener\">m\u00e1s detalles sobre el manifest.json<\/a>;<\/p>\n<pre>\r\nhttps:\/\/developers.google.com\/web\/fundamentals\/web-app-manifest\/\r\n<\/pre>\n<h3>Service Worker<\/h3>\n<p>Finalmente, otro aspecto que si que es fundamental para lograr crear Aplicaciones Web Progresivas, es que la aplicaci\u00f3n pueda hacer cosas como <strong>enviar notificaciones o funcionar sin conexi\u00f3n<\/strong>; y para ello, necesitamos un Service Worker.<\/p>\n<h2>\u00bfQu\u00e9 son los Service Workers?<\/h2>\n<p>Lo primero de todo es <strong>no confundir los Service Workers con los Web Workers<\/strong>. Los segundos sirven simplemente para ejecutar en un hilo secundario tareas pesadas de nuestra p\u00e1gina y de este modo evitar que dichas tareas pesadas puedan bloquear el hilo de ejecuci\u00f3n principal. Con esto se logra que la p\u00e1gina Web no se quede \u00abcomo bloqueada\u00bb mientras esta haciendo \u00abcosas complicadas\u00bb con JavaScript.<\/p>\n<p>Un Service Worker, por otro lado, ser\u00eda <strong>algo en cierto modo similar a los servicios de Windows, o los <em>dameons<\/em> de Linux<\/strong>. Con la diferencia de que en lugar de instalarse en nuestro sistema operativo, <strong>podr\u00edamos decir que se instalan en el navegador<\/strong>.<\/p>\n<p>Si quer\u00e9is ver los Service Workers que ten\u00e9is instalados en Chrome, pod\u00e9is <a href=\"\/\/serviceworker-internals\/\" target=\"_blank\" rel=\"noopener\">abrir esta direcci\u00f3n<\/a> en vuestro navegador.<\/p>\n<pre>\r\nchrome:\/\/serviceworker-internals\/\r\n<\/pre>\n<p>Al igual que sucede con los servicios de Windows o los <em>daemons<\/em> de Linux, <strong>no son programas dise\u00f1ados para que un usuario interact\u00fae directamente con ellos, ya que no disponen de una interfaz de usuario<\/strong>. Es decir, no son \u00abinteractivos\u00bb.<\/p>\n<p>As\u00ed, <strong>la comunicaci\u00f3n con estos programas, se realiza a trav\u00e9s de las p\u00e1ginas Web de nuestro sitio<\/strong> (concretamente a trav\u00e9s de la\u00a0<strong>interfaz postMessage<\/strong>). Estos programas pueden estar realizando tareas en un segundo plano, sin intervenci\u00f3n directa del usuario. Un aspecto importante es que a diferencia del resto de scripts de nuestra p\u00e1gina Web, <strong>los Service Workers no se detienen ni se reinician cuando dentro de nuestro sitio Web cambiamos de una p\u00e1gina a otra<\/strong>. De hecho, pueden seguir ejecut\u00e1ndose aunque no tengamos ninguna p\u00e1gina abierta de nuestro sitio Web. Ahora bien,<strong> no vamos a tener control sobre cu\u00e1ndo se ejecuta o no nuestro Service Worker<\/strong>, por lo que si queremos almacenar algo de informaci\u00f3n para poder usarla entre ejecuciones, deberemos guardar dicha informaci\u00f3n en el servidor Web, o bien en el navegador del usuario (por ejemplo, usando el API IndexedDB).<\/p>\n<p>Espero que este tema os haya resultado de inter\u00e9s. En un pr\u00f3ximo art\u00edculo pasaremos de la teor\u00eda a la pr\u00e1ctica y veremos en detalle c\u00f3mo implementar un Service Worker para lograr que nuestra Web se aproxime al concepto de Aplicaciones Web Progresivas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Las Aplicaciones Web Progresivas\u00a0(PWA) buscan hacer realidad la eterna promesa de tener aplicaciones Web similares a las aplicaciones convencionales que usamos en nuestros tel\u00e9fonos m\u00f3viles. A fin de cumplir esta promesa, se busca que estas aplicaciones Web sean; r\u00e1pidas, tengan un interfaz similar a la&#8230;<\/p>\n","protected":false},"author":23,"featured_media":7719,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_ef_editorial_meta_date_first-draft-date":"","_ef_editorial_meta_paragraph_assignment":"","_ef_editorial_meta_checkbox_needs-photo":"","_ef_editorial_meta_number_word-count":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[7,5],"tags":[651,652,653],"class_list":["post-7662","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-diseno-web","category-programacion","tag-aplicaciones-web-progresivas","tag-pwa","tag-service-workers"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Aplicaciones Web Progresivas y Service Workers - Blog Escola Espai<\/title>\n<meta name=\"description\" content=\"En este art\u00edculo veremos que son las Aplicaciones Web Progresivas\u00a0(PWA), y nos centraremos en el papel que realizan los Service Workers en una PWA.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Aplicaciones Web Progresivas y Service Workers - Blog Escola Espai\" \/>\n<meta property=\"og:description\" content=\"En este art\u00edculo veremos que son las Aplicaciones Web Progresivas\u00a0(PWA), y nos centraremos en el papel que realizan los Service Workers en una PWA.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Escola Espai\" \/>\n<meta property=\"article:published_time\" content=\"2018-09-07T09:40:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-09-14T14:27:51+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2018\/07\/pwa.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Abel Camarena\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Abel Camarena\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/\"},\"author\":{\"name\":\"Abel Camarena\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897\"},\"headline\":\"Aplicaciones Web Progresivas y Service Workers\",\"datePublished\":\"2018-09-07T09:40:38+00:00\",\"dateModified\":\"2021-09-14T14:27:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/\"},\"wordCount\":925,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2018\/07\/pwa.jpg\",\"keywords\":[\"Aplicaciones Web Progresivas\",\"PWA\",\"Service Workers\"],\"articleSection\":[\"Dise\u00f1o Web\",\"Programaci\u00f3n\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/\",\"url\":\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/\",\"name\":\"Aplicaciones Web Progresivas y Service Workers - Blog Escola Espai\",\"isPartOf\":{\"@id\":\"https:\/\/www.espai.es\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2018\/07\/pwa.jpg\",\"datePublished\":\"2018-09-07T09:40:38+00:00\",\"dateModified\":\"2021-09-14T14:27:51+00:00\",\"author\":{\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897\"},\"description\":\"En este art\u00edculo veremos que son las Aplicaciones Web Progresivas\u00a0(PWA), y nos centraremos en el papel que realizan los Service Workers en una PWA.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#primaryimage\",\"url\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2018\/07\/pwa.jpg\",\"contentUrl\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2018\/07\/pwa.jpg\",\"width\":1000,\"height\":500,\"caption\":\"Aplicaciones Web Progresivas\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.espai.es\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Aplicaciones Web Progresivas y Service Workers\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.espai.es\/blog\/#website\",\"url\":\"https:\/\/www.espai.es\/blog\/\",\"name\":\"Blog Escola Espai\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.espai.es\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897\",\"name\":\"Abel Camarena\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/035501b0f14e120b1a49121758e2056b8d589fc43b9d3c3ad3670a197a90dddf?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/035501b0f14e120b1a49121758e2056b8d589fc43b9d3c3ad3670a197a90dddf?s=96&d=mm&r=g\",\"caption\":\"Abel Camarena\"},\"sameAs\":[\"http:\/\/www.espai.es\"],\"url\":\"https:\/\/www.espai.es\/blog\/author\/abel\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Aplicaciones Web Progresivas y Service Workers - Blog Escola Espai","description":"En este art\u00edculo veremos que son las Aplicaciones Web Progresivas\u00a0(PWA), y nos centraremos en el papel que realizan los Service Workers en una PWA.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/","og_locale":"es_ES","og_type":"article","og_title":"Aplicaciones Web Progresivas y Service Workers - Blog Escola Espai","og_description":"En este art\u00edculo veremos que son las Aplicaciones Web Progresivas\u00a0(PWA), y nos centraremos en el papel que realizan los Service Workers en una PWA.","og_url":"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/","og_site_name":"Blog Escola Espai","article_published_time":"2018-09-07T09:40:38+00:00","article_modified_time":"2021-09-14T14:27:51+00:00","og_image":[{"width":1000,"height":500,"url":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2018\/07\/pwa.jpg","type":"image\/jpeg"}],"author":"Abel Camarena","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Abel Camarena","Tiempo de lectura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#article","isPartOf":{"@id":"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/"},"author":{"name":"Abel Camarena","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897"},"headline":"Aplicaciones Web Progresivas y Service Workers","datePublished":"2018-09-07T09:40:38+00:00","dateModified":"2021-09-14T14:27:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/"},"wordCount":925,"commentCount":0,"image":{"@id":"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2018\/07\/pwa.jpg","keywords":["Aplicaciones Web Progresivas","PWA","Service Workers"],"articleSection":["Dise\u00f1o Web","Programaci\u00f3n"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/","url":"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/","name":"Aplicaciones Web Progresivas y Service Workers - Blog Escola Espai","isPartOf":{"@id":"https:\/\/www.espai.es\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#primaryimage"},"image":{"@id":"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#primaryimage"},"thumbnailUrl":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2018\/07\/pwa.jpg","datePublished":"2018-09-07T09:40:38+00:00","dateModified":"2021-09-14T14:27:51+00:00","author":{"@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897"},"description":"En este art\u00edculo veremos que son las Aplicaciones Web Progresivas\u00a0(PWA), y nos centraremos en el papel que realizan los Service Workers en una PWA.","breadcrumb":{"@id":"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#primaryimage","url":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2018\/07\/pwa.jpg","contentUrl":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2018\/07\/pwa.jpg","width":1000,"height":500,"caption":"Aplicaciones Web Progresivas"},{"@type":"BreadcrumbList","@id":"https:\/\/www.espai.es\/blog\/2018\/09\/aplicaciones-web-progresivas-y-service-workers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.espai.es\/blog\/"},{"@type":"ListItem","position":2,"name":"Aplicaciones Web Progresivas y Service Workers"}]},{"@type":"WebSite","@id":"https:\/\/www.espai.es\/blog\/#website","url":"https:\/\/www.espai.es\/blog\/","name":"Blog Escola Espai","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.espai.es\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/b2d40404b9d987e3586e186c021ef897","name":"Abel Camarena","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/035501b0f14e120b1a49121758e2056b8d589fc43b9d3c3ad3670a197a90dddf?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/035501b0f14e120b1a49121758e2056b8d589fc43b9d3c3ad3670a197a90dddf?s=96&d=mm&r=g","caption":"Abel Camarena"},"sameAs":["http:\/\/www.espai.es"],"url":"https:\/\/www.espai.es\/blog\/author\/abel\/"}]}},"jetpack_featured_media_url":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2018\/07\/pwa.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/7662","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/users\/23"}],"replies":[{"embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/comments?post=7662"}],"version-history":[{"count":23,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/7662\/revisions"}],"predecessor-version":[{"id":12289,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/7662\/revisions\/12289"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/media\/7719"}],"wp:attachment":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/media?parent=7662"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/categories?post=7662"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/tags?post=7662"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}