{"id":30117,"date":"2024-10-15T14:28:36","date_gmt":"2024-10-15T12:28:36","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=30117"},"modified":"2024-10-15T14:30:39","modified_gmt":"2024-10-15T12:30:39","slug":"el-viaje-del-iot-del-prototipo-a-la-aplicacion","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/","title":{"rendered":"El viaje del IoT: Del prototipo a la aplicaci\u00f3n"},"content":{"rendered":"\n<p>\u00bfConoces esas famosas cenas familiares de Navidad?<\/p>\n\n\n\n<p>Las que parecen sacadas de una pel\u00edcula, llenas de parientes que quiz\u00e1 hayas visto solo una vez en todo el a\u00f1o, tal vez por casualidad en un centro comercial. T\u00edos y t\u00edas que se sientan a tu lado y tratan de entender a qu\u00e9 te dedicas con los &#8220;ordenadores&#8221; (y que inevitablemente te piden que les arregles algo en su tel\u00e9fono o port\u00e1til tambi\u00e9n).<\/p>\n\n\n\n<p>S\u00ed, lo s\u00e9, es un clich\u00e9 de los 2000 y tal vez no signifique mucho para las generaciones m\u00e1s j\u00f3venes, pero para quienes han pasado por eso, bueno, es una mezcla emocional inconfundible. Estamos en 2024, es cierto, y parece que ahora todo el mundo es &#8220;experto en ordenadores&#8221; (\u00a1incluso ese t\u00edo o t\u00eda!), pero todav\u00eda hay un momento en que ese viejo sentimiento de &#8220;\u00bfpor qu\u00e9 yo?&#8221; reaparece. Es cuando tengo que explicar qu\u00e9 significa trabajar en el desarrollo de IoT.<\/p>\n\n\n\n<p>El acr\u00f3nimo ya es familiar: el famoso <strong>Internet de las cosas.<\/strong><\/p>\n\n\n\n<p>Pero a menudo, la palabra m\u00e1gica <strong><em>smart<\/em> <\/strong>se a\u00f1ade al nombre de un dispositivo, transformando un objeto pasivo y silencioso en algo vivo y capaz de comunicarse. Es como darle un alma digital a los objetos que nos rodean.<\/p>\n\n\n\n<p>As\u00ed que, con la Navidad a la vuelta de la esquina y todos los familiares prepar\u00e1ndose para preguntarme de nuevo qu\u00e9 es lo que realmente hago con los &#8220;ordenadores&#8221;, pens\u00e9 en practicar un poco y compartir mi experiencia con la comunidad de Codemotion, explicando qu\u00e9 significa desarrollar para IoT. O al menos intentarlo&#8230;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-algunos-ejemplos\">Algunos ejemplos<\/h2>\n\n\n\n<p>Quiz\u00e1 la forma m\u00e1s sencilla de introducir el tema es definir mejor su alcance. El IoT puede parecer un campo de nicho, y de alguna manera lo es, pero tiene facetas infinitas. Es un sistema vasto, que recuerda a la \u201clong tail\u201d en el mundo del SEO: empiezas con una simple maceta y terminas con una notificaci\u00f3n en tu tel\u00e9fono que dice: \u201c\u00a1Oye, acu\u00e9rdate de regarme!\u201d<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"768\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/Leonardo_Lightning_XL_a_cactus_with_a_smart_water_sensor_on_it_2.jpg\" alt=\"water sensor IoT\" class=\"wp-image-30069\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/Leonardo_Lightning_XL_a_cactus_with_a_smart_water_sensor_on_it_2.jpg 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/Leonardo_Lightning_XL_a_cactus_with_a_smart_water_sensor_on_it_2-300x225.jpg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/Leonardo_Lightning_XL_a_cactus_with_a_smart_water_sensor_on_it_2-768x576.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>El proceso cubre todo tipo de objetos: cualquier cosa puede volverse \u201cinteligente\u201d y empezar a proporcionar datos de todo tipo. Un reloj, adem\u00e1s de dar la hora, podr\u00eda monitorear nuestros niveles de ox\u00edgeno, la temperatura corporal y la cantidad de pasos que damos cada d\u00eda. Un frigor\u00edfico podr\u00eda informarnos sobre la temperatura interna, el estado de los alimentos, e incluso recordarnos cu\u00e1ndo es hora de tirar la leche.<\/p>\n\n\n\n<p>Un sensor al lado de un racimo de uvas podr\u00eda recopilar datos detallados para producir el Prosecco perfecto, mientras que una bicicleta de un servicio de ride-sharing podr\u00eda tener tanta telemetr\u00eda que har\u00eda envidiar a un equipo de F\u00f3rmula 1\u2014\u00a1quiz\u00e1s incluso con comunicaci\u00f3n bidireccional!<\/p>\n\n\n\n<p>Como dec\u00eda, existen infinitos dominios y perspectivas en las que un objeto puede volverse inteligente. En este mar de posibilidades, mi trabajo es guiarte por lo que significa desarrollar un dispositivo IoT, pasando por todas las fases: desde el prototipo hasta la integraci\u00f3n, y finalmente, la gesti\u00f3n de los datos que, al final, son el verdadero alma de cada objeto conectado.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-del-prototipo-a-la-produccion\"><strong>Del prototipo a la producci\u00f3n<\/strong><\/h2>\n\n\n\n<p>La creaci\u00f3n de un dispositivo IoT, o &#8220;dispositivo inteligente,&#8221; comienza destilando los requisitos y definiendo los datos finales que deber\u00e1 proporcionar. Este an\u00e1lisis preliminar ayuda a identificar, a grandes rasgos, los sensores necesarios, los puertos f\u00edsicos requeridos, y si el dispositivo funcionar\u00e1 con una toma de corriente o una bater\u00eda.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/electronic-circuit-board-with-processor-wires-1024x683.jpg\" alt=\"iot product prototype\" class=\"wp-image-30071\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/electronic-circuit-board-with-processor-wires-1024x683.jpg 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/electronic-circuit-board-with-processor-wires-300x200.jpg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/electronic-circuit-board-with-processor-wires-768x512.jpg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/electronic-circuit-board-with-processor-wires-1536x1024.jpg 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/electronic-circuit-board-with-processor-wires-600x400.jpg 600w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/electronic-circuit-board-with-processor-wires.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Electronic circuit board with processor and wires, close view<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-lista-de-materiales-bom\"><strong>Lista de materiales (BOM)<\/strong><\/h3>\n\n\n<div class=\"gb-container gb-container-51e97bf8\">\n\n<p>Esta fase inicial nos permite definir la Lista de Materiales (BOM), que es el listado de componentes necesarios para crear el producto final. Elegir los componentes adecuados es crucial: hay que considerar la disponibilidad en el mercado, la compatibilidad, las especificaciones t\u00e9cnicas y el coste. La gesti\u00f3n eficiente del BOM es esencial para optimizar los costes de producci\u00f3n y asegurar que el dispositivo se pueda fabricar a gran escala sin problemas. Por ejemplo, un microcontrolador con m\u00faltiples opciones de conectividad integrada (Wi-Fi, Bluetooth, etc.) puede simplificar el desarrollo, pero aumentar el coste por unidad.<\/p>\n\n<\/div>\n\n\n<h3 class=\"wp-block-heading\" id=\"h-el-prototipo\"><strong>El prototipo<\/strong><\/h3>\n\n\n\n<p>A menudo, una primera iteraci\u00f3n implica crear un prototipo de hardware para validar f\u00edsicamente el proyecto e identificar posibles l\u00edmites o problemas antes de pasar a la optimizaci\u00f3n y escalado. Plataformas de prototipado r\u00e1pido como <a href=\"https:\/\/www.arduino.cc\/\">Arduino<\/a>, <a href=\"https:\/\/www.espressif.com\/en\/products\/socs\/esp32\">ESP32<\/a> o <a href=\"https:\/\/www.raspberrypi.com\/\">Raspberry Pi <\/a>se usan com\u00fanmente para reducir el tiempo y costes iniciales, permiti\u00e9ndonos probar y validar conceptos antes de pasar a soluciones m\u00e1s espec\u00edficas y personalizadas.<\/p>\n\n\n\n<p>Otro aspecto cr\u00edtico es el dise\u00f1o de la carcasa o envoltorio del dispositivo. Este debe ser no solo est\u00e9ticamente agradable, sino tambi\u00e9n funcional y resistente a las condiciones de uso esperadas. Por ejemplo, un dispositivo destinado a uso submarino requerir\u00e1 impermeabilizaci\u00f3n certificada (por ejemplo, est\u00e1ndar IP68), mientras que uno para deportes de invierno debe soportar temperaturas extremas y golpes. En esta etapa, entran en juego estudios de dise\u00f1o ergon\u00f3mico e industrial, considerando incluso la interfaz de usuario del dispositivo (pantalla, botones, retroalimentaci\u00f3n visual o auditiva, etc.).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-estudios-de-coste\"><strong>Estudios de coste<\/strong><\/h3>\n\n\n\n<p>En paralelo, realizamos estudios de costes y an\u00e1lisis de mercado. Es crucial estimar con precisi\u00f3n los costes de producci\u00f3n y desarrollo para establecer un precio final y evaluar la viabilidad econ\u00f3mica del producto. Esta fase a menudo requiere evaluar los vol\u00famenes de producci\u00f3n esperados y las econom\u00edas de escala. El an\u00e1lisis tambi\u00e9n debe considerar diferentes escenarios de producci\u00f3n, incluidos los costes de certificaci\u00f3n, especialmente para productos destinados a industrias reguladas como los sectores m\u00e9dico o automotriz.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-arquitectura\"><strong>Arquitectura<\/strong><\/h3>\n\n\n\n<p>En cuanto a los m\u00e9todos de comunicaci\u00f3n, los dispositivos IoT pueden utilizar diferentes tecnolog\u00edas, cada una con ventajas y limitaciones espec\u00edficas:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>USB<\/strong>: para conexiones por cable y suministro de energ\u00eda;<\/li>\n\n\n\n<li><strong>Bluetooth Low Energy (<a href=\"https:\/\/github.com\/dotintent\/awesome-ble\">BLE<\/a>)<\/strong>: ideal para dispositivos de bajo consumo y comunicaci\u00f3n de corto alcance;<\/li>\n\n\n\n<li><strong>Wi-Fi:<\/strong> para conexiones de alta velocidad y cobertura local;<\/li>\n\n\n\n<li><strong>LoRaWAN:<\/strong> para dispositivos que requieren largo alcance y bajo consumo, como sensores en entornos agr\u00edcolas o remotos;<\/li>\n\n\n\n<li><strong>Infrarrojos (IR):<\/strong> en algunos contextos, para transmitir informaci\u00f3n a lectores \u00f3pticos dedicados (por ejemplo, medidores de energ\u00eda).<\/li>\n<\/ul>\n\n\n\n<p>La elecci\u00f3n de la tecnolog\u00eda depende del caso de uso, el tipo de datos que el dispositivo necesita transmitir y el m\u00e9todo de alimentaci\u00f3n. Dise\u00f1ar correctamente la arquitectura de comunicaci\u00f3n es esencial para garantizar la fiabilidad del dispositivo y su capacidad para integrarse en una red IoT existente. Adem\u00e1s, es importante considerar la posibilidad de actualizaciones OTA (Over-The-Air) para garantizar la longevidad y el mantenimiento, permitiendo actualizaciones de software y correcci\u00f3n de errores de forma remota.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-comunicacion-y-datos\"><strong>Comunicaci\u00f3n y datos<\/strong><\/h2>\n\n\n\n<p>Una vez que mis compa\u00f1eros han completado el prototipo y el hardware ha sido probado, es mi turno: desarrollo de aplicaciones m\u00f3viles. Para decirlo de manera simple (\u00a1y tal vez explic\u00e1rselo a mi t\u00edo!), aqu\u00ed es donde conectamos el mundo f\u00edsico con el digital, traduciendo los datos en bruto del dispositivo en una experiencia de usuario tangible e intuitiva.<\/p>\n\n\n\n<p>Despu\u00e9s de validar el primer prototipo (aunque el hardware a\u00fan no est\u00e9 completamente disponible en esta etapa), comenzamos a verificar que lo discutido durante la fase de planificaci\u00f3n se est\u00e9 siguiendo. Sin embargo, la verificaci\u00f3n no es un proceso final; sucede de manera continua, en cada sprint, con demostraciones peri\u00f3dicas del equipo de firmware. Este es un momento crucial: es el equivalente a un \u201cshake down\u201d en la F\u00f3rmula 1, donde probamos el sistema completo para asegurarnos de que todo funcione correctamente e identificar posibles problemas antes de que se vuelvan cr\u00edticos.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/man-controlling-robot-vacuum-with-his-phone-1024x683.jpg\" alt=\"iot app prototype\" class=\"wp-image-30072\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/man-controlling-robot-vacuum-with-his-phone-1024x683.jpg 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/man-controlling-robot-vacuum-with-his-phone-300x200.jpg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/man-controlling-robot-vacuum-with-his-phone-768x512.jpg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/man-controlling-robot-vacuum-with-his-phone-1536x1024.jpg 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/man-controlling-robot-vacuum-with-his-phone-600x400.jpg 600w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/man-controlling-robot-vacuum-with-his-phone.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-desarrollo-movil\"><strong>Desarrollo m\u00f3vil<\/strong><\/h2>\n\n\n\n<p>Nuestro rol como desarrolladores m\u00f3viles para dispositivos inteligentes es servir de puente entre el mundo f\u00edsico (el dispositivo y sus sensores) y la experiencia digital (la aplicaci\u00f3n). Para lograrlo, colaboramos con una amplia gama de profesionales: ingenieros de firmware y sistemas embebidos, especialistas en<strong> UI\/UX, i<\/strong>ngenieros de backend, expertos en<strong> IA\/ML,<\/strong> ingenieros m\u00f3viles y equipos de <strong>QA<\/strong>. Este equipo multidisciplinario trabaja en sinergia para crear una experiencia coherente e integrada que conecte perfectamente el mundo real con el digital.<\/p>\n\n\n\n<p>A menudo, la interacci\u00f3n entre la app y el dispositivo no se realiza a trav\u00e9s de una API RESTful cl\u00e1sica, sino mediante protocolos de comunicaci\u00f3n dedicados que establecen una conexi\u00f3n directa y uno a uno entre el smartphone y el dispositivo perif\u00e9rico. La sinergia del equipo es esencial, y el uso de metodolog\u00edas como <strong><em>fail-fast<\/em> (FF)<\/strong> nos permite identificar y resolver r\u00e1pidamente los puntos cr\u00edticos de manera eficiente. Por ejemplo, si notamos que los datos no llegan con la granularidad requerida, puede ser necesario realizar modificaciones en el hardware, lo que impactar\u00eda en los plazos de producci\u00f3n y los costes del BOM, requiriendo una nueva planificaci\u00f3n.<\/p>\n\n\n\n<p>Nuestra tarea como equipo m\u00f3vil es conectar el <strong><em>QU\u00c9<\/em> <\/strong>(los datos proporcionados por firmware, backend o calculados mediante IA\/ML) con el <em><strong>C\u00d3MO<\/strong><\/em> (la experiencia de usuario dise\u00f1ada por los equipos de UX\/UI). Aunque algunos aspectos del desarrollo pueden parecerse a los de una app tradicional que se conecta a un backend, hay aspectos \u00fanicos y desafiantes. Por ejemplo, la activaci\u00f3n (<em><strong>onboarding<\/strong><\/em>) de un dispositivo IoT va mucho m\u00e1s all\u00e1 del cl\u00e1sico carrusel informativo; requiere una interacci\u00f3n intensa por parte del usuario mediante un proceso llamado <em>provisioning<\/em>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/man-holding-smartphone-while-using-smart-speaker-1024x683.jpg\" alt=\"iot app prototype\" class=\"wp-image-30073\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/man-holding-smartphone-while-using-smart-speaker-1024x683.jpg 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/man-holding-smartphone-while-using-smart-speaker-300x200.jpg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/man-holding-smartphone-while-using-smart-speaker-768x512.jpg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/man-holding-smartphone-while-using-smart-speaker-1536x1024.jpg 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/man-holding-smartphone-while-using-smart-speaker-600x400.jpg 600w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/man-holding-smartphone-while-using-smart-speaker.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-provisionamiento\"><strong>Provisionamiento<\/strong><\/h2>\n\n\n\n<p>Durante el proceso de provisionamiento, el dispositivo inteligente pasa a formar parte del ecosistema del usuario. Para esta integraci\u00f3n se utilizan varios modos operativos, entre los cuales se incluyen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Selecci\u00f3n de un dispositivo BLE (Bluetooth Low Energy) desde una lista detectada por el smartphone, donde el usuario elige el dispositivo correcto;<\/li>\n\n\n\n<li>Conexi\u00f3n temporal a un Punto de Acceso Wi-Fi (AP) para transmitir las credenciales de la red y configurar el dispositivo;<\/li>\n\n\n\n<li>Uso de un golpe NFC para iniciar el proceso de emparejamiento.<\/li>\n<\/ul>\n\n\n\n<p>En algunos casos, estos m\u00e9todos se pueden combinar para asegurar una conexi\u00f3n segura y estable. Una vez que el provisionamiento est\u00e1 completo, el dispositivo est\u00e1 listo para transmitir sus datos. Si la conexi\u00f3n es a trav\u00e9s de Wi-Fi, los datos a menudo se env\u00edan a un backend que los recopila, analiza y los pone a disposici\u00f3n a trav\u00e9s de la aplicaci\u00f3n. Por el contrario, si la comunicaci\u00f3n ocurre mediante BLE o NFC, gran parte del trabajo de gesti\u00f3n de datos lo realiza el smartphone, actuando como un puente directo entre el dispositivo y la app.<\/p>\n\n\n\n<p>Esta fase es particularmente delicada porque la sincronizaci\u00f3n y actualizaci\u00f3n de datos, especialmente con protocolos de bajo consumo como BLE, requiere especial atenci\u00f3n a la velocidad de transmisi\u00f3n (MTU) y la cantidad de datos a transferir. Por eso, a menudo vemos pantallas de &#8220;sincronizaci\u00f3n&#8221; en las aplicaciones, cuya duraci\u00f3n depende de estos factores.<\/p>\n\n\n\n<p>No hay una regla fija sobre c\u00f3mo gestionar los datos: en algunos casos, los datos se guardan directamente en los servicios nativos del smartphone, como HealthKit para iOS o servicios equivalentes en Android. En otros casos, se necesita un backend para procesar y analizar los datos, especialmente cuando la cantidad de datos recopilados es significativa o requiere procesamiento adicional.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-actualizaciones-ota-over-the-air\"><strong>Actualizaciones OTA (Over-The-Air)<\/strong><\/h2>\n\n\n\n<p>Un aspecto crucial del desarrollo de IoT es la gesti\u00f3n de las actualizaciones OTA, esenciales para corregir errores, mejorar funcionalidades y asegurar la longevidad del producto. Sin embargo, tambi\u00e9n representa una de las fases m\u00e1s cr\u00edticas, ya que si algo sale mal, existe el riesgo de \u201cbrickear\u201d el dispositivo, dej\u00e1ndolo inutilizable. Por ello, es fundamental dise\u00f1ar una infraestructura segura y confiable para distribuir actualizaciones, minimizando los riesgos asociados.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"683\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/top-view-patient-with-pulse-oximeter-1024x683.jpg\" alt=\"IoT app prototype\" class=\"wp-image-30074\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/top-view-patient-with-pulse-oximeter-1024x683.jpg 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/top-view-patient-with-pulse-oximeter-300x200.jpg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/top-view-patient-with-pulse-oximeter-768x512.jpg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/top-view-patient-with-pulse-oximeter-1536x1024.jpg 1536w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/top-view-patient-with-pulse-oximeter-600x400.jpg 600w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/top-view-patient-with-pulse-oximeter.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Para reducir el riesgo de <em>bricking<\/em>, los dispositivos deben contar con mecanismos de reversi\u00f3n que permitan volver al firmware anterior en caso de error durante una actualizaci\u00f3n. Adem\u00e1s, es crucial implementar un sistema de verificaci\u00f3n de integridad del firmware, utilizando certificados y claves criptogr\u00e1ficas, por ejemplo, para asegurar que solo se pueda instalar firmware autorizado y seguro.<\/p>\n\n\n\n<p>La coordinaci\u00f3n con el equipo de QA es vital en esta etapa, ya que un enfoque <strong><em>fail-fast<\/em> <\/strong>nos permite identificar r\u00e1pidamente problemas durante la distribuci\u00f3n de las actualizaciones e intervenir antes de que los dispositivos lleguen a los usuarios. Las t\u00e9cnicas de prueba incluyen simular actualizaciones en un gran n\u00famero de dispositivos, monitorear errores y proporcionar retroalimentaci\u00f3n inmediata en caso de fallos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-resumen\"><strong>Resumen<\/strong><\/h2>\n\n\n\n<p>El desarrollo m\u00f3vil para dispositivos IoT es un desaf\u00edo multidisciplinario que combina hardware, software, UI, UX y QA en un ecosistema complejo.<\/p>\n\n\n\n<p>Desde la configuraci\u00f3n inicial y el <em>provisioning<\/em> hasta la gesti\u00f3n de las actualizaciones OTA, cada paso requiere atenci\u00f3n al detalle, sincronizaci\u00f3n del equipo y un profundo entendimiento de las tecnolog\u00edas involucradas.<\/p>\n\n\n\n<p>Al final, ver c\u00f3mo un dispositivo cobra vida y funciona como se espera, integr\u00e1ndose sin problemas en la vida diaria del usuario, es la recompensa de un trabajo bien hecho.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfConoces esas famosas cenas familiares de Navidad? Las que parecen sacadas de una pel\u00edcula, llenas de parientes que quiz\u00e1 hayas visto solo una vez en todo el a\u00f1o, tal vez por casualidad en un centro comercial. T\u00edos y t\u00edas que se sientan a tu lado y tratan de entender a qu\u00e9 te dedicas con los&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/\">Read more<\/a><\/p>\n","protected":false},"author":297,"featured_media":30080,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[10604],"tags":[],"collections":[],"class_list":{"0":"post-30117","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-internet-de-las-cosas","8":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>El viaje del IoT: Del prototipo a la aplicaci\u00f3n<\/title>\n<meta name=\"description\" content=\"C\u00f3mo nace un producto IoT, desde la lista de materiales (BOM) y el prototipo inicial, pasando por el an\u00e1lisis de UX\/UI, hasta llegar a tu m\u00f3vil.\" \/>\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.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"El viaje del IoT: Del prototipo a la aplicaci\u00f3n\" \/>\n<meta property=\"og:description\" content=\"C\u00f3mo nace un producto IoT, desde la lista de materiales (BOM) y el prototipo inicial, pasando por el an\u00e1lisis de UX\/UI, hasta llegar a tu m\u00f3vil.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-10-15T12:28:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-10-15T12:30:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1792\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Matteo Crippa\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Matteo Crippa\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"11 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/\"},\"author\":{\"name\":\"Matteo Crippa\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/33b203724f28c3afc91db33645a50b30\"},\"headline\":\"El viaje del IoT: Del prototipo a la aplicaci\u00f3n\",\"datePublished\":\"2024-10-15T12:28:36+00:00\",\"dateModified\":\"2024-10-15T12:30:39+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/\"},\"wordCount\":2233,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT.webp\",\"articleSection\":[\"Internet de las cosas\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/\",\"name\":\"El viaje del IoT: Del prototipo a la aplicaci\u00f3n\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT.webp\",\"datePublished\":\"2024-10-15T12:28:36+00:00\",\"dateModified\":\"2024-10-15T12:30:39+00:00\",\"description\":\"C\u00f3mo nace un producto IoT, desde la lista de materiales (BOM) y el prototipo inicial, pasando por el an\u00e1lisis de UX\/UI, hasta llegar a tu m\u00f3vil.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT.webp\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT.webp\",\"width\":1792,\"height\":1024,\"caption\":\"IoT app\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Internet de las cosas\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"El viaje del IoT: Del prototipo a la aplicaci\u00f3n\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/33b203724f28c3afc91db33645a50b30\",\"name\":\"Matteo Crippa\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/1673371233293-100x100.jpeg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/1673371233293-100x100.jpeg\",\"caption\":\"Matteo Crippa\"},\"description\":\"Hi, I am Matteo, the Mobile Team Leader at \ud83d\udd34 intent. \ud83d\ude80 Creator of: Awesome Swift, Awsome BLE, LeafMiner \u2618\ufe0f\u26cf\ufe0f. \u270d\ufe0f Contributor in: Flutter, CareKit, ResearchKit, MapLibre, Fuel, Vapor. \ud83d\udd2c I usually develop using iOS - (Objective-C, Swift), Android - (Kotlin), Node.js - (Express.js, AWS Lambda), Deno, Flutter, Vue.js\",\"sameAs\":[\"https:\/\/withintent.com\",\"https:\/\/linkedin.com\/in\/matteocrippamc\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/ghego\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"El viaje del IoT: Del prototipo a la aplicaci\u00f3n","description":"C\u00f3mo nace un producto IoT, desde la lista de materiales (BOM) y el prototipo inicial, pasando por el an\u00e1lisis de UX\/UI, hasta llegar a tu m\u00f3vil.","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.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/","og_locale":"en_US","og_type":"article","og_title":"El viaje del IoT: Del prototipo a la aplicaci\u00f3n","og_description":"C\u00f3mo nace un producto IoT, desde la lista de materiales (BOM) y el prototipo inicial, pasando por el an\u00e1lisis de UX\/UI, hasta llegar a tu m\u00f3vil.","og_url":"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2024-10-15T12:28:36+00:00","article_modified_time":"2024-10-15T12:30:39+00:00","og_image":[{"width":1792,"height":1024,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT.webp","type":"image\/webp"}],"author":"Matteo Crippa","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Matteo Crippa","Est. reading time":"11 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/"},"author":{"name":"Matteo Crippa","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/33b203724f28c3afc91db33645a50b30"},"headline":"El viaje del IoT: Del prototipo a la aplicaci\u00f3n","datePublished":"2024-10-15T12:28:36+00:00","dateModified":"2024-10-15T12:30:39+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/"},"wordCount":2233,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT.webp","articleSection":["Internet de las cosas"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/","url":"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/","name":"El viaje del IoT: Del prototipo a la aplicaci\u00f3n","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT.webp","datePublished":"2024-10-15T12:28:36+00:00","dateModified":"2024-10-15T12:30:39+00:00","description":"C\u00f3mo nace un producto IoT, desde la lista de materiales (BOM) y el prototipo inicial, pasando por el an\u00e1lisis de UX\/UI, hasta llegar a tu m\u00f3vil.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT.webp","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT.webp","width":1792,"height":1024,"caption":"IoT app"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/el-viaje-del-iot-del-prototipo-a-la-aplicacion\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Internet de las cosas","item":"https:\/\/www.codemotion.com\/magazine\/es\/internet-de-las-cosas\/"},{"@type":"ListItem","position":3,"name":"El viaje del IoT: Del prototipo a la aplicaci\u00f3n"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/33b203724f28c3afc91db33645a50b30","name":"Matteo Crippa","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/1673371233293-100x100.jpeg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/1673371233293-100x100.jpeg","caption":"Matteo Crippa"},"description":"Hi, I am Matteo, the Mobile Team Leader at \ud83d\udd34 intent. \ud83d\ude80 Creator of: Awesome Swift, Awsome BLE, LeafMiner \u2618\ufe0f\u26cf\ufe0f. \u270d\ufe0f Contributor in: Flutter, CareKit, ResearchKit, MapLibre, Fuel, Vapor. \ud83d\udd2c I usually develop using iOS - (Objective-C, Swift), Android - (Kotlin), Node.js - (Express.js, AWS Lambda), Deno, Flutter, Vue.js","sameAs":["https:\/\/withintent.com","https:\/\/linkedin.com\/in\/matteocrippamc"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/ghego\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT-600x400.webp","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT-600x600.webp","author_info":{"display_name":"Matteo Crippa","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/ghego\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT.webp",1792,1024,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT-150x150.webp",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT-300x171.webp",300,171,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT-768x439.webp",768,439,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT-1024x585.webp",1024,585,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT-1536x878.webp",1536,878,true],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT.webp",1792,1024,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT-100x100.webp",100,100,true],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT-180x128.webp",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT-896x504.webp",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT-400x225.webp",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT-600x400.webp",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2024\/10\/IoT-600x600.webp",600,600,true]},"uagb_author_info":{"display_name":"Matteo Crippa","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/ghego\/"},"uagb_comment_info":0,"uagb_excerpt":"\u00bfConoces esas famosas cenas familiares de Navidad? Las que parecen sacadas de una pel\u00edcula, llenas de parientes que quiz\u00e1 hayas visto solo una vez en todo el a\u00f1o, tal vez por casualidad en un centro comercial. T\u00edos y t\u00edas que se sientan a tu lado y tratan de entender a qu\u00e9 te dedicas con los&#8230;&hellip;","lang":"es","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/30117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/297"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=30117"}],"version-history":[{"count":1,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/30117\/revisions"}],"predecessor-version":[{"id":30118,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/30117\/revisions\/30118"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/30080"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=30117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=30117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=30117"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=30117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}