Header Ads Widget

Ticker

6/recent/ticker-posts

Optimización de API para aplicaciones móviles

 

Optimización de API para aplicaciones móviles, API nórdicas, Doerrfeld

Junto con el límite de datos y el consumo de la batería, la velocidad es un problema de usabilidad principal para la mayoría de los usuarios de dispositivos móviles. Incluso con el último 4G LTE, las redes móviles tienen inherentemente latencias más altas que las DSL, y los dispositivos aún experimentan un ping más lento a través de WiFi.

El protocolo, la configuración del dispositivo o el diseño de la aplicación pueden contribuir a estos tiempos de carga lentos. Dado que todavía existen muchas limitaciones de rendimiento inherentes a los dispositivos móviles, el software y las integraciones deben construirse teniendo en cuenta estas limitaciones. Entonces, ¿cómo es diseñar API específicamente diseñadas para un entorno móvil? ¿Cómo pueden los proveedores optimizar su API para ayudar a los desarrolladores de aplicaciones a reducir la latencia y entregar datos personalizados?

En este artículo, aprenderemos cómo diseñar interfaces de programación de aplicaciones (API) de baja latencia optimizadas para aplicaciones móviles . Exploraremos la industria de las comunicaciones móviles, las expectativas del consumidor y ofreceremos métodos para optimizar una API para dispositivos móviles mediante la implementación de expansión, subconjuntos de datos, compresión, paginación y una fachada móvil.

Latencia

¿Qué es la latencia? La latencia es el tiempo entre el momento en que solicita datos hasta el momento en que realmente comienza a recibirlos.

Cuando solicita una gran cantidad de datos, como una solicitud de 50 MB, la cantidad de tiempo que lleva establecer una conexión (¡ping!) Puede ser insignificante en comparación con la transmisión del paquete de datos en sí. Sin embargo, por el contrario, la latencia inicial es mucho más significativa si se trata de solicitudes pequeñas, que en realidad representan la mayor parte del tiempo total de procesamiento.

Diagrama de latencia

Si observa diferentes conexiones móviles en el mercado y cómo funciona un solo ping, los KPI importantes a considerar son las desviaciones promedio y estándar entre diferentes protocolos. A continuación se muestran los tiempos de conexión promedio globales para varios protocolos, según los datos recopilados por CISCO.

Latencia-Diagrama-2-blanco

 

El mercado

Aunque las ventas de teléfonos inteligentes 4G alcanzaron el 58% de la participación de mercado en el primer trimestre de 2015, no deberíamos ignorar por completo el 3G, o incluso el 2G. El hecho es que el despliegue de las redes LTE está bastante avanzado, pero se espera que coexista con las redes 3G e incluso 2G ​​en los próximos años. Según otras proyecciones de CISCO, la cuota de mercado mundial de velocidad de conexión puede verse así en los próximos años:

Diagrama de latencia 3

Rendimiento

Una preocupación igualmente convincente en el desarrollo de aplicaciones móviles es el rendimiento : cuánto se puede procesar en un cierto período de tiempo. Eclipsadas por el procesamiento de Teraflops de supercomputadoras, las redes móviles deben operar en el nivel de Megabytes por segundo - Mbps .

Mapa de datos de Akamai

Aunque el ancho de banda de un dispositivo, la tasa de consumo máximo teórico, puede ser teóricamente alto, el rendimiento es la tasa de transferencia de datos exitosa . Esto puede depender significativamente de la geografía (como se ve a la derecha), así como de la distancia de las torres de telefonía celular, la congestión de la red y la interferencia debida al clima o los materiales de construcción.

Las dependencias como las API o los SDK de terceros también pueden tener un efecto significativo en la velocidad general. De acuerdo con las mejores prácticas de AT&T para el desarrollo de aplicaciones 3G y 4G :

“Un aspecto común del desarrollo de aplicaciones móviles modernas es el uso de componentes integrados como SDK de publicidad, SDKS de análisis y controles de mapas. Se ha observado que los controles de los anuncios publicitarios tienen un efecto significativo en el tráfico de red incontrolado; Los motores de análisis y los mapas pueden comunicarse con sus respectivos servicios de back-end fuera del control directo del desarrollador. Por lo tanto, puede resultar útil analizar y comprender los tipos de tráfico y los patrones de uso de datos que estos controles introducen en su aplicación ".

Métodos para optimizar una API para el consumo móvil

Si bien lo antiguo ciertamente está siendo reemplazado, todavía tenemos que desarrollarnos con la mente de estas velocidades lentas. Trabajar en un entorno móvil significa, siempre que sea posible, limitar el envío de datos al mínimo. Con el fin de circunnavegar escenarios de alta latencia y bajo rendimiento, y optimizar para casos de uso general de dispositivos móviles, hay varias cosas que los desarrolladores pueden hacer para modificar la forma en que se comporta su API.

Combinar respuestas

No proporcione entidades de la forma en que están estructuradas en el backend : céntrese en equilibrar la simplicidad y la complejidad , y escale la respuesta de su API solo a lo que el usuario pretende mostrar . En este caso, ayuda tener una relación cercana con los equipos que crean la aplicación móvil para que su API se pueda ampliar a sus necesidades específicas.


Vea a Wojtek Ebertowski de Polidea expandir este tema en un evento de APIs nórdicas

Expansión

Si no está trabajando en estrecha colaboración con los desarrolladores que crean la aplicación móvil, la expansión de recursos es un gran mecanismo para devolver campos personalizados. El uso de hipermedia, enlaces y expansión de recursos puede permitir respuestas personalizadas que pueden disminuir la latencia y los datos.

Deje que los desarrolladores decidan lo que quieren presentar. Esta teoría es aún más aplicable en grandes colecciones de datos, donde ir más allá de una GET /people/llamada para ofrecer consultas de campos específicos GET /people?fields={firstName, lastName}puede ser útil para ofrecer opciones detalladas y reducir el tamaño de devolución de datos. Un problema con la expansión que ve Erbetowski es que no hay buenas opciones de herramientas, no hay grandes marcos que lo admitan de forma inmediata, las consultas complejas para entidades anidadas deben codificarse de forma rígida.

Descubra por qué las claves de API ≠ Seguridad: las claves de API no son suficientes

Subconjunto de datos

Un escenario común es que esté proporcionando una única API para que funcione tanto dentro de un navegador como para admitir una aplicación móvil . Mientras que un navegador con baja latencia y alto rendimiento puede manejar grandes cantidades de datos fácilmente, es posible que no haya suficiente espacio para presentar los mismos datos dentro de una aplicación móvil. Lo más probable es que la experiencia del usuario se vea alterada por las limitaciones del dispositivo. Erbetowski recomienda proporcionar el subconjunto mínimo de datos para aplicaciones móviles. Con hipermedia , proporcione versiones recortadas de sus datos para imitar escenarios de casos de uso página por página. También use la paginación con el número de página de entrada y el tamaño para que los clientes puedan determinar mejor lo que necesitan.

Complete model

{
“person”: {
	“id”: 38385,
	“firstName”: “John”,
	“lastName”: “Doe”,
	“age”: 25,
	“country”: “US”,
	“phones”: {
		“home”: “800-123-2485”,
		“cell”: “800-159-1947”,
		“work”: “800-325-1851
	}
	“email” {
		“johndoe@example.com”,
		“johndoe@example.org”,
...

Trimmed model

{
	“firstName”: “John”,
	“lastName”: “Doe”,
	“age”: 25,
	“country”: “US”
}

Comprimir datos

Además de reducir el tamaño de la carga útil mediante JSON , optimice mediante la compresión de datos. Erbetowski recomienda utilizar gZIP para la compresión de archivos y la descompresión de mensajes grandes. La única razón por la que no querrá usar gZIP es cuando tiene muchos terminales pequeños que proporcionan cantidades muy pequeñas de datos: gZIP crecerá y le costará demasiada potencia computacional de lo que vale. Erbetowski cita estos ejemplos como evidencia y señala que puede reducir el tamaño de un mensaje grande hasta en un 90%.

Tamaño de archivo grandeTamaño de archivo pequeño
Lleno222910 octetos48 bytes
GZIP32128 bytes60 bytes
Porcentaje14%125%

Estudio de caso: Applause

Como estudio de caso, Erbetowski recuerda una API heredada utilizada por una aplicación móvil, Applause , que Polidea ayudó a hacer más eficiente para dispositivos móviles. Terminaron reconstruyendo toda la API, reduciendo 36 puntos finales a 20 puntos finales. Esto significa que 16 puntos finales incluyeron parámetros que se usaron en el mismo contexto que otra cosa. La aplicación completa solía hacer 86 llamadas y se redujo a 20, una llamada por punto final . En general, esto redujo los datos enviados al dispositivo en un 84%.

En una demostración, la aplicación heredada que usaba la API anterior tardó 21 segundos en cargar los datos solicitados, mientras que la nueva tardó solo 5 segundos en realizar la misma tarea. En lugar de agregar datos localmente, la aplicación ahora solo llama a los datos a medida que se muestran. Para un usuario final, este rediseño mejora drásticamente la experiencia.

Conclusión: diseñar en el mundo de las limitaciones

La optimización de una API para dispositivos móviles, el "mundo de las limitaciones", como lo llama Erbetowski, se puede lograr y no es necesario destruir su hermosa plataforma de API para hacerlo. Muchas instancias permiten la creación de una fachada de API adaptada a dispositivos móviles. Aunque LTE ofrece una calidad de servicio mejorada en general, mayor ancho de banda y menor latencia, la caja de herramientas en dispositivos móviles sigue siendo bastante primitiva. Ya sea que proporcione una API para que la consuman desarrolladores de aplicaciones de terceros o que desarrolle una aplicación interna con un backend de API , considere estos métodos para optimizar una API para una configuración móvil:

  • Fusionar parámetros similares para satisfacer las necesidades móviles
  • Ofrezca opciones detalladas para reducir el tamaño de devolución de datos
  • Proporcionar subconjuntos de datos mínimos
  • Comprimir datos usando gZIP
  • Limite el envío de datos solo a lo que se muestra
  • Configurar una fachada móvil

Publicar un comentario

0 Comentarios