{"id":20357,"date":"2022-02-05T14:46:44","date_gmt":"2022-02-05T12:46:44","guid":{"rendered":"https:\/\/www.hiberus.com\/crecemos-contigo\/?p=20357"},"modified":"2024-01-17T09:33:04","modified_gmt":"2024-01-17T08:33:04","slug":"que-tal-funciona-app-modo-offline","status":"publish","type":"post","link":"https:\/\/www.hiberus.com\/crecemos-contigo\/que-tal-funciona-app-modo-offline\/","title":{"rendered":"\u00bfQu\u00e9 tal funciona tu app en modo offline?"},"content":{"rendered":"<h2 style=\"text-align: left;\"><strong>\u00bfQu\u00e9 es el modo offline y por qu\u00e9 es importante?\u00a0<\/strong><\/h2>\n<p><strong>Internet<\/strong> est\u00e1 cada vez m\u00e1s presente en nuestras vidas y gracias a los smartphones estamos conectados en todo momento. Pese a todo, hay a veces en las que nos podemos quedar sin conexi\u00f3n: si estamos en un parking subterr\u00e1neo, en el monte o hemos viajado a otro pa\u00eds y no tenemos tarifa de datos, por ejemplo.<\/p>\n<p>Los usuarios de nuestras <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/mejores-herramientas-de-desarrollo-de-apps-movil\/\">apps<\/a> est\u00e1n acostumbrados a utilizarlas sin preocuparse. Enviamos Whatsapps o correos aunque no tengamos <strong>Internet<\/strong> porque sabemos que cuando volvamos a estar conectados la aplicaci\u00f3n se encargar\u00e1 de enviar esa informaci\u00f3n.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-20366 aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/02\/Imagen1.png\" alt=\"\" width=\"270\" height=\"285\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2><strong>\u00bfC\u00f3mo puede ayudarnos que nuestras aplicacion<\/strong><strong>es funcionen si<\/strong><strong>n conexi\u00f3n?<\/strong><\/h2>\n<p>En una aplicaci\u00f3n en la que los t\u00e9cnicos registran incidencias ser\u00eda muy recomendable que la informaci\u00f3n de los partes se pudiera rellenar a\u00fan si estamos sin se\u00f1al. As\u00ed, aunque estuvieran trabajando en el s\u00f3tano, podr\u00edan terminar todas sus tareas con la seguridad de que la informaci\u00f3n no se perder\u00eda.<\/p>\n<p>Podemos ver otro ejemplo en una aplicaci\u00f3n para aprender idiomas. \u00bfRealmente necesitamos conexi\u00f3n cada vez que queremos dar una lecci\u00f3n? Si mantenemos actualizada la base de datos en el dispositivo del usuario, \u00e9ste podr\u00e1 aprender sin tener que estar <strong>online<\/strong>.<\/p>\n<p>Tambi\u00e9n podemos <strong>usar el modo offline<\/strong> como una \u00abfuncionalidad premium\u00bb. En \u00abYoutube\u00bb no podemos ver videos sin conexi\u00f3n, al contrario de lo que pasa con \u00abYoutube Premium\u00bb . Es una funcionalidad tan interesante que muchos usuarios est\u00e1n dispuestos a pagar por ella.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-20368 aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/02\/Imagen2.png\" alt=\"\" width=\"270\" height=\"259\" \/><\/p>\n<h3><strong>Informando al usuario <\/strong><\/h3>\n<p>Nuestros usuarios deben saber en todo momento qu\u00e9 est\u00e1 pasando en la app, debemos informarles si se pierde la conexi\u00f3n, qu\u00e9 pasar\u00e1 con ese mensaje que acaban de <strong>enviar offline<\/strong> o cu\u00e1ndo se actualizaron por \u00faltima vez los datos que est\u00e1n viendo. Pongamos un ejemplo: entramos a la app de nuestra tienda de ropa favorita, vemos una prenda que nos gusta y hacemos un <strong>pedido offline<\/strong> de nuestra talla, que en ese momento est\u00e1 en stock. Horas despu\u00e9s recuperamos la conexi\u00f3n y se intenta completar el pedido, pero ya se han vendido todas las existencias de nuestra talla. Tenemos que avisar al respecto al usuario.<\/p>\n<h3><strong>Sincronizando datos offline <\/strong><\/h3>\n<p>Dotar a nuestras <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/desarrollar-funcionalidades-offline-app-movil-mejora\/\"><strong>apps de funcionalidades offline<\/strong><\/a> es muy beneficioso, pero tambi\u00e9n nos plantea algunos retos. Nuestro objetivo es identificar los usos offline de nuestra aplicaci\u00f3n y decidir qu\u00e9 haremos con datos antiguos o que presentan conflictos. Vamos a verlo mejor con ejemplos:<\/p>\n<p>Si estamos haciendo un chat en el que tenemos varias conversaciones, \u00bfQu\u00e9 pasa si enviamos un mensaje offline a una conversaci\u00f3n que cuando volvemos a tener conexi\u00f3n ya no existe? \u00bfC\u00f3mo funciona la app si el mismo usuario utiliza varios dispositivos?<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-20369 aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/02\/Imagen3-230x300.png\" alt=\"\" width=\"230\" height=\"300\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/02\/Imagen3-230x300.png 230w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/02\/Imagen3.png 268w\" sizes=\"auto, (max-width: 230px) 100vw, 230px\" \/><\/p>\n<p>\u00bfQu\u00e9 pasa si un t\u00e9cnico indica a las 14:00 que una tarea esta \u00abcompletada\u00bb pero otro t\u00e9cnico la hab\u00eda \u00abcompletado\u00bb a las 13:30? \u00bfDescartamos esa \u00faltima informaci\u00f3n? \u00bfQu\u00e9 fecha mostramos como \u00abfecha completada\u00bb, las 13:30 o las 14:00?<\/p>\n<p>Si tenemos una aplicaci\u00f3n como <a href=\"https:\/\/docs.google.com\/document\/u\/0\/\"><strong>Google Docs<\/strong><\/a> y alguien borra un p\u00e1rrafo pero luego nosotros lo subrayamos (ya que en nuestra \u00faltima versi\u00f3n offline todav\u00eda no estaba borrado), \u00bfQu\u00e9 pasa? \u00bfSe queda el p\u00e1rrafo borrado, sin subrayar o subrayado?<\/p>\n<p>Estas son decisiones que tenemos que tomar en base a nuestro negocio y nuestros intereses.<\/p>\n<h3><strong>A\u00f1adiendo soporte offline a nuestras webs: PWAs <\/strong><\/h3>\n<p>La principal tecnolog\u00eda que podemos utilizar son las <a href=\"https:\/\/www.hiberus.com\/crecemos-contigo\/aplicaciones-web-progresivas-se-define-una-pwa\/\">PWAs<\/a> de las que hemos hablado en otras ocasiones. La filosof\u00eda de las <strong>Progressive Web Applications<\/strong> gira entorno a la idea de construir una app b\u00e1sica que va utilizando progresivamente las funcionalidades disponibles, pero tambi\u00e9n funciona si \u00e9stas no est\u00e1n. Por ejemplo, en un marketplace podemos dejar que el usuario escriba su direcci\u00f3n y, adem\u00e1s, dar la opci\u00f3n de usar la geolocalizaci\u00f3n.<\/p>\n<p>Si el usuario tiene la ubicaci\u00f3n activada y nos da permisos para leerla, perfecto. Cargamos esa direcci\u00f3n directamente. Si el usuario no tiene ubicaci\u00f3n o no nos da permisos no pasa nada, sigue pudiendo utilizar el campo de texto para indicar la direcci\u00f3n.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-20371 aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/02\/Imagen4.png\" alt=\"\" width=\"268\" height=\"284\" \/><\/p>\n<p>Con el <strong>modo offline<\/strong> pasa lo mismo. Si el usuario no tiene internet podr\u00e1 guardar este mensaje reci\u00e9n \u00abenviado\u00bb en una cola y cuando vuelva a tener conexi\u00f3n se procesa\u00a0 y se env\u00eda. Si el usuario tiene Internet el mensaje se enviar\u00e1 directamente.<\/p>\n<h3><strong>Desarrollo de aplicaciones<\/strong><\/h3>\n<p>Los usuarios se vuelven cada d\u00eda m\u00e1s exigentes y no ven el <strong>modo offline<\/strong> como algo opcional, es una funcionalidad que esperan que est\u00e9 disponible en sus apps.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-20372 aligncenter\" src=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/02\/Imagen5-300x200.jpg\" alt=\"\" width=\"300\" height=\"200\" srcset=\"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/02\/Imagen5-300x200.jpg 300w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/02\/Imagen5-360x240.jpg 360w, https:\/\/www.hiberus.com\/crecemos-contigo\/wp-content\/uploads\/2022\/02\/Imagen5.jpg 480w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>Hiberus Mobile es el departamento espec\u00edfico dedicado al <a href=\"https:\/\/www.hiberus.com\/mobile\">desarrollo de aplicaciones para dispositivos m\u00f3viles<\/a>. Ofrecemos soluciones a medida para todo tipo de plataformas: Android, iOS, aplicaciones h\u00edbridas, desarrollo multiplataforma, aplicaciones web, quioscos digitales, desarrollo de sistemas IOT, desarrollos en Alexa\/Google&#8230; y creamos equipos dedicados para nuestros clientes a trav\u00e9s de nuestros Agile Centers. Cont\u00e1ctanos para m\u00e1s informaci\u00f3n.<\/p>\n        <div class=\"row\">\n            <div class=\"block-cta-form\" style=\"background-color: #003664;\">\n                <div class=\"content-cta-form\">\n                    <div class=\"text-cta-form\">\n                        <p class=\"title-cta-form\">\u00bfQuieres m\u00e1s informaci\u00f3n sobre nuestros servicios de desarrollo de aplicaciones m\u00f3viles?<\/p>\n                        <p>Contacta con nuestro equipo de Mobile<\/p>\n                    <\/div>\n                    <div class=\"form-fields\">\n                        \n<div class=\"wpcf7 no-js\" id=\"wpcf7-f33973-o1\" lang=\"es-ES\" dir=\"ltr\" data-wpcf7-id=\"33973\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/20357#wpcf7-f33973-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Formulario de contacto\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"33973\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.5\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"es_ES\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f33973-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/><input type=\"hidden\" name=\"_wpcf7_recaptcha_response\" value=\"\" \/>\n<\/fieldset>\n<div id=\"responsive-form\" class=\"clearfix\">\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"nombre\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Nombre *\" value=\"\" type=\"text\" name=\"nombre\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"apellido\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Apellido *\" value=\"\" type=\"text\" name=\"apellido\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"correo\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Correo corporativo *\" value=\"\" type=\"email\" name=\"correo\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"telf-contacto\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-tel wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-tel\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Tel\u00e9fono *\" value=\"\" type=\"tel\" name=\"telf-contacto\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"compania\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Compa\u00f1ia *\" value=\"\" type=\"text\" name=\"compania\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"mensaje\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea wpcf7-validates-as-required\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Mensaje *\" name=\"mensaje\"><\/textarea><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full color-acceptance\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"politica\"><span class=\"wpcf7-form-control wpcf7-acceptance\"><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"politica\" value=\"1\" aria-invalid=\"false\" \/><span class=\"wpcf7-list-item-label\">He le\u00eddo y acepto la <a href=\"https:\/\/www.hiberus.com\/politica\" target=\"_blank\"><u>Pol\u00edtica de privacidad<\/u><\/a><\/span><\/label><\/span><\/span><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-full color-acceptance\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"marketing\"><span class=\"wpcf7-form-control wpcf7-acceptance optional\"><span class=\"wpcf7-list-item\"><label><input type=\"checkbox\" name=\"marketing\" value=\"1\" aria-invalid=\"false\" \/><span class=\"wpcf7-list-item-label\">Me gustar\u00eda recibir comunicaciones de marketing de Hiberus y sobre sus productos, servicios y eventos.<\/span><\/label><\/span><\/span><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div class=\"column-half\">\n\t\t\t<p><input class=\"wpcf7-form-control wpcf7-submit has-spinner\" type=\"submit\" value=\"Contacta con nosotros\" \/>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n\t<div class=\"form-row\">\n\t\t<div id=\"campos_ocultos\" class=\"hidden\">\n\t\t\t<p><span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new1\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new1\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new1\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new2\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new2\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new2\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new3\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new3\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new3\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new4\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new4\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new4\" \/><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"oculto_analitica_new_p\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"oculto_analitica_new_p\" aria-invalid=\"false\" value=\"\" type=\"text\" name=\"oculto_analitica_new_p\" \/><\/span>\n\t\t\t<\/p>\n\t\t<\/div>\n\t<\/div>\n<\/div>\n\n<!--end responsive-form--><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n        \n","protected":false},"excerpt":{"rendered":"<p>\u00bfQu\u00e9 es el modo offline y por qu\u00e9 es importante?\u00a0 Internet est\u00e1 cada vez m\u00e1s presente en nuestras vidas y gracias a&#8230;<\/p>\n","protected":false},"author":241,"featured_media":20389,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_ayudawp_aiss_exclude":false,"footnotes":""},"categories":[234,3],"tags":[30],"class_list":{"0":"post-20357","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-aplicaciones-moviles","8":"category-negocio-electronico","9":"tag-desarrollo-de-aplicaciones-moviles"},"acf":[],"_links":{"self":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/20357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/users\/241"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/comments?post=20357"}],"version-history":[{"count":13,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/20357\/revisions"}],"predecessor-version":[{"id":39653,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/posts\/20357\/revisions\/39653"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media\/20389"}],"wp:attachment":[{"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/media?parent=20357"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/categories?post=20357"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hiberus.com\/crecemos-contigo\/wp-json\/wp\/v2\/tags?post=20357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}