Está lloviendo en la ciudad de Nueva York mientras Doron espera el autobús 525. En la parada, está probando una nueva aplicación de transporte que no parece cargarse sin conexión. El boleto que compró ayer no se muestra, e incluso cuando tenía servicio, las actualizaciones en tiempo real no se sincronizaban. Como desarrollador móvil, sabe exactamente por qué la aplicación apesta: no está diseñada para funcionar sin conexión. No sincroniza datos en tiempo real. Es un fracaso. Él sabe que la gente no lo usará. Éste es el verdadero desafío: la adopción. Está muy bien crear una aplicación, pero ¿cuántas personas realmente la usarán? Los usuarios esperan que las aplicaciones se ejecuten rápido, sean confiables y siempre hay una alternativa de la competencia si no lo hacen. Los desarrolladores confían en que todos tengamos una experiencia positiva. Con las principales aplicaciones de consumo (por ejemplo, Whatsapp, Instagram, Netflix) estableciendo nuevos estándares, es difícil para los nuevos jugadores (que tal vez no tengan el equipo de desarrollo y el dinero de Netflix) igualar las expectativas. Conferencia TNW 2024: oferta de entradas para grupos ¡Ahorre hasta un 40 % con nuestra oferta para grupos y únase al festival tecnológico líder en Europa en junio! Pero hay esperanza: aquí se explica cómo crear una gran aplicación sin un ejército de desarrolladores. Trabajar sin conexión Incluso 10 años después del auge de los teléfonos inteligentes, no podemos asumir que los dispositivos siempre estarán en línea. Los desarrolladores deben pensar primero fuera de línea al crear una aplicación. Los mejores aprovechan al máximo la conectividad cuando está disponible, pero entienden que es temporal. Sin conexión, las aplicaciones necesitan una forma de almacenar datos en el dispositivo. De esa manera, aún podrán funcionar cuando el servicio caiga. Desafortunadamente, la mayoría de las aplicaciones actuales utilizan almacenes de datos que no están diseñados para dispositivos móviles. Muchos utilizan marcos relacionales que no son intuitivos para los desarrolladores y ralentizan la implementación. Los desarrolladores tienen que escribir líneas tras líneas de código personalizado. Las filas y columnas de datos necesitan un código de mapeo personalizado que les permita ejecutarse con los objetos en los que están trabajando los desarrolladores. Todo esto afecta el rendimiento de la aplicación: las pantallas tardan más en cargarse y las funciones quedan inutilizables. Los almacenes de datos heredados hacen que su aplicación móvil sea lenta y sobrecargada. (Fuente: MongoDB) Sincronización de datos en tiempo real (o falta de ella) Estos almacenes de datos heredados también carecen de una solución nativa de sincronización en tiempo real. Significa que no pueden sincronizar datos entre un dispositivo y un servidor backend cuando un usuario está en línea. Los usuarios terminan viendo datos inexactos en su aplicación o la aplicación puede fallar por completo. La sincronización también potencia las funciones que los usuarios ahora esperan en las aplicaciones móviles. Piense en mensajería en tiempo real, colaboración y la capacidad de ver dónde está su taxi en ese momento. Sin estas funciones, la gente no lo utilizará. No siempre son fáciles de incluir porque: Los dispositivos móviles siempre alternan entre conexión y conexión. Los datos cambian a menudo en muchos lugares y pueden surgir conflictos entre ellos. Las aplicaciones móviles deben reflejar datos precisos, aunque los datos cambiarán entre muchos usuarios, dispositivos y el backend. A medida que los usuarios realizan acciones en un dispositivo fuera de línea, los cambios de datos permanecen en el dispositivo móvil. Una vez que el dispositivo está en línea, es necesario sincronizar los datos entre el dispositivo y el backend. Inevitablemente surgen conflictos de datos y, si no se manejan bien, los usuarios encontrarán datos desactualizados, inexactos o perdidos. La sincronización requiere mucho tiempo para desarrollarse debido a la cantidad y complejidad del código personalizado necesario. Los desarrolladores que crean una solución de sincronización tienen un conjunto de opciones no tan ideales: 1. Pueden optar por no sincronizar datos y, en su lugar, descargar todos los datos en un dispositivo: esto es almacenamiento en caché y tiene sus problemas. Los datos no se pueden actualizar fácilmente. Ocupa espacio en el teléfono móvil del usuario y agota la duración de la batería. 2. Cree una solución de sincronización, pero trate de que sea simple: las soluciones de sincronización simples rara vez brindan una buena experiencia de usuario. La resolución de conflictos es inherentemente compleja. Requiere redes personalizadas y código de resolución de conflictos. Intentar simplificarlo con una lógica simple hará que los usuarios vean datos desactualizados. 3. Cree una solución de sincronización trabajando con REST: A primera vista, trabajar con REST puede parecer sencillo. Pero la falta de una conexión garantizada lo complica. Cuando la conexión se interrumpe mientras se sincronizan datos, es necesario contar con una lógica para manejar los errores y volver a intentar enviar los datos. Escribir este código es complejo. Puede llevar semanas o meses de trabajo y miles de líneas de código. La simplicidad de REST resulta mucho más complicada en la realidad. Cómo se ve realmente la sincronización DIY… horrible. (Fuente: MongoDB) Construirlo “de la manera correcta” es difícil. Dado que los dispositivos pierden la señal de un bloque a otro, las aplicaciones necesitan un código personalizado para reintentar solicitudes y manejar errores al intentar sincronizar datos. Si en algún momento este código no funciona perfectamente, la aplicación podría fallar. Una aplicación mediocre conduce a una baja adopción y malas críticas Los almacenes de datos heredados y la sincronización de datos de bricolaje tienen consecuencias con las que todos estamos muy familiarizados: 1. Impacto negativo en el desarrollo de aplicaciones y la productividad de los desarrolladores: los desarrolladores dedican tiempo a escribir código adicional y complejo. Ralentiza el desarrollo de funciones clave que desean los usuarios. 2. Rendimiento deficiente de las aplicaciones: las aplicaciones con almacenes de datos heredados y una sincronización deficiente se ejecutan con lentitud y fallan. 3. Baja adopción y retención: una aplicación mediocre no se utilizará. Los usuarios lo desinstalarán, perdiendo tiempo y dinero. La solución Los desarrolladores hoy tienen una decisión difícil. Cree una aplicación rápidamente y comprometa el rendimiento, o constrúyala bien y pague el precio (de tiempo y dinero). Lo que necesitan es un enfoque simplificado que les funcione. Uno que sea flexible, intuitivo y móvil. MongoDB Realm es solo eso. Permite a los desarrolladores construir rápido y bien. Está impulsado por el almacén de datos multiplataforma de Realm Mobile y la solución de sincronización nativa. Le ayudará a iterar más rápido y ofrecer aplicaciones confiables. Lo utilizan muchos nombres conocidos, incluidos 7Eleven, CBT Nuggets y Acxiom. Así que prepárate para crear una aplicación de cinco estrellas, a diferencia de la de transporte. Únase a más de 100.000 desarrolladores que utilizan Realm Mobile Database y comience de forma gratuita con MongoDB Realm.

Source link