¿Cuáles son los principales desafíos para entregar aplicaciones móviles de calidad?

Trabajando para varios clientes desde los últimos 5 años, los siguientes son los desafíos clave en la entrega de aplicaciones de calidad:

Rendimiento de la aplicación:

Dado que la aplicación móvil se ejecuta con recursos limitados, presenta desafíos de rendimiento únicos de las aplicaciones web. Nadie puede negar el papel del código limpio, claro y altamente optimizado, pero el equipo de desarrollo de aplicaciones debe ser consciente y respetuoso de los recursos limitados. El rendimiento de la aplicación móvil se mide por la capacidad de respuesta a las acciones del usuario, como:

  • qué tan rápido comienza
  • qué tan bien usa la memoria del dispositivo
  • qué tan bien usa la energía del dispositivo (batería)

y, en el caso de una animación o juego,

qué tan alta es su velocidad de fotogramas o

  • qué tan suave se comporta la animación o el juego.

Los usuarios de aplicaciones móviles ya han establecido un conjunto de expectativas que debes cumplir o simplemente te encontrarás con una crítica negativa de la App Store.

Por lo tanto, el desarrollo de aplicaciones móviles debe tener la experiencia del usuario como foco principal. Todas las llamadas de red y los cálculos complejos deben realizarse en un hilo de fondo y, mientras espera una respuesta del servidor, muestra un indicador de ocupado para informar al usuario que la aplicación está funcionando. Además de esto, intente cargar los datos suficientes para dibujar una pantalla en su aplicación y permitir que el usuario comience a trabajar mientras los datos restantes se cargan en segundo plano.

Es un acto de equilibrio raro entre el tiempo de inicio, el almacenamiento de memoria del dispositivo y el uso de la memoria, pero necesita tener recursos básicos disponibles y cargados en la memoria cuando se inicia la aplicación. La clave es mostrarle al usuario algo lo más rápido posible y luego hacer que su aplicación sea interactiva.

Uso de memoria:

Dado que los dispositivos móviles tienen recursos de memoria limitados en comparación con las aplicaciones de computadoras portátiles y de escritorio, el equipo de la aplicación debe considerar el uso de la memoria desde el principio al diseñar su aplicación. La clave para administrar la memoria es mantener el estado del usuario en la memoria. Cargar datos del almacenamiento en cada interacción dañará la experiencia del usuario, por lo que debe usar memoria cuando sea necesario. Es una buena idea tener un estado de usuario requerido para construir la pantalla en la memoria, pero al mismo tiempo debe tener en cuenta que la memoria es un recurso limitado y valioso para la aplicación móvil y cargar todo lo que una aplicación requiere en la memoria puede provocar un bloqueo frecuente de la aplicación. .

Uso de energía (consumo de batería):

Las principales causas del agotamiento de la batería son:

  • Llamadas intensivas de CPU y renderizado de video complejo
  • Llamadas de red

Es posible que un desarrollador de aplicaciones no tenga mucho control sobre la complejidad de su interfaz de usuario y los algoritmos necesarios para construir sus pantallas, como con los videojuegos. Esto lleva a escribir código menos eficiente y aún lograr resultados adecuados, pero a costa del uso de la CPU. Si el código se optimiza con los algoritmos de mejor rendimiento, minimizará el uso de la CPU del dispositivo móvil y, por lo tanto, mejorará la vida útil de la batería. La otra causa principal del consumo de energía es el uso de la red. El costo de realizar llamadas de red es alto, y de hecho puede agotar la batería en unas pocas horas.

Estabilidad:

Obtener una mala revisión de la tienda de aplicaciones es la peor pesadilla que puede tener un equipo de desarrollo. ¿Cómo podemos evitar la revisión, ya que la aplicación no funciona bien en ciertos dispositivos o se bloquea en ciertas circunstancias? La respuesta es que no hay nada que pueda hacer a menos que sepa lo que está sucediendo en su aplicación móvil. Es esencial evaluar el rendimiento de la aplicación móvil, capturar informes de errores y fallas y correlacionar el rendimiento de la aplicación móvil con el rendimiento del servidor. Sería útil capturar la siguiente información del tiempo de ejecución

  • Informes de errores y fallas
  • Rendimiento del dispositivo (uso de CPU, uso de memoria, etc.)
  • Tiempo de respuesta de la aplicación
  • Tiempo de respuesta del servidor
  • Datos demográficos (sistema operativo, tipo de dispositivo, operador, etc.)

Cada vez que una aplicación falla, se genera un informe de bloqueo o error y la aplicación tiene acceso a él. La aplicación debe capturar este informe y enviarlo al servidor con datos demográficos relevantes, como

  • el sistema operativo del dispositivo
  • tipo de dispositivo
  • tipo de conección
  • Portador etc.

Esta información puede ser útil para saber qué sucedió durante el bloqueo y la correlación con otros bloqueos determina si existe o no una causa raíz específica del dispositivo o sistema operativo.

Fragmentación de dispositivos, varios sistemas operativos y multitud de dispositivos:

Según este informe de opensignal y este panel de control, la fragmentación es la razón principal del dolor de cabeza para el equipo de desarrollo de aplicaciones. Los dispositivos con diferentes formas y tamaños, diferentes niveles de rendimiento y tamaños de pantalla, diferentes versiones del sistema operativo que están simultáneamente activos en cualquier momento, agregan otro nivel de fragmentación. Esto hace que el desarrollo de aplicaciones que funcionen en toda la gama de dispositivos pueda ser extremadamente desafiante y llevar mucho tiempo. He descubierto que los clientes informan que problemas como la aplicación es lenta o no funciona en los dispositivos que no se usan para las pruebas. La matriz de dispositivos con la lista de dispositivos bajo los cuales se debe probar una aplicación es una forma efectiva de cubrir la mayoría de la base de usuarios de la aplicación.

Las aplicaciones se están volviendo más sofisticadas y complejas:

El éxito de la aplicación móvil depende en gran medida de la rica interfaz de usuario que ofrece. El retraso de más de un par de segundos es inaceptable y el usuario puede cambiar la preferencia sobre la aplicación en función de esto. Las experiencias sofisticadas del usuario con el tacto, los gestos, la ubicación GPS, el audio, los sensores, las acciones físicas (NFC) pueden requerir pruebas personalizadas en dispositivos reales.

A medida que las aplicaciones se vuelven más complejas, las pruebas en dispositivos reales son mucho más importantes que los emuladores o dispositivos remotos. Los errores pequeños y los casos extremos se pierden sin probar en los dispositivos reales. Problemas contextuales como

  • si el texto en pantalla es legible
  • si los botones de pantalla y los hipervínculos están lo suficientemente separados, etc.

Crea un desafío único. Esto restringe el uso de la automatización en las pruebas de aplicaciones y depende de los humanos para los resultados.

Gran número de operadores de redes móviles:

Diferentes operadores de redes móviles utilizan diferentes estándares de red y diferentes tipos de infraestructura de red. Exhiben amplias variaciones en la latencia y confiabilidad del ancho de banda.

La conexión lenta puede verse como un problema para el equipo de la aplicación, ya que el usuario requiere una conexión a Internet para obtener datos del back-end que sirve al usuario con actualizaciones e información.

Uno de los escenarios importantes a considerar es el comportamiento de la aplicación a diferentes velocidades de conexión a Internet (ya sea que funcione o se bloquee).

Conclusión:

La entrega de calidad de las aplicaciones móviles es diferente de las aplicaciones tradicionales de escritorio o basadas en la web. Los dispositivos móviles debido a la diversidad de dispositivos, sistema operativo, CPU de menor potencia y menor memoria, requieren pensar de manera diferente sobre el desarrollo de aplicaciones.

Mi experiencia ha sido que puede diseñar y codificar todo perfectamente, pero al final del día, aún verá ocasionales bloqueos relacionados con la memoria en el seguimiento de errores con un gran grupo de usuarios.

El hecho es que los dispositivos móviles tienen memoria limitada y si un usuario tiene muchas aplicaciones abiertas, puede quedar muy poca para su aplicación. Hay muchas cosas que puede hacer para manejar las condiciones de poca memoria, pero no hay una forma segura de detectarlas. Ese es el mayor desafío.

En Android, existe el desafío adicional de cientos de diferentes combinaciones de tamaño / densidad / hardware / rendimiento de pantalla para tener en cuenta. En nuestras aplicaciones de entretenimiento de video Toon Goggles, tenemos más de 50 configuraciones de recursos diferentes para admitir varios dispositivos. En nuestro caso, pudimos obtener casi 100 dispositivos diferentes para llegar a este punto. Sin embargo, normalmente no tendrá este lujo y se limitará a uno o dos dispositivos de prueba y usará simuladores.

Los usuarios esperan que la aplicación funcione independientemente de su dispositivo extraño. Es muy difícil y cuando llegan las quejas, a veces es desalentador, ya que sientes que has acertado con todas las combinaciones posibles hasta que llegue la siguiente.

dejando atrás el diseño, la interfaz de usuario y la personalización, otra cosa importante es cuán compatible es su aplicación a medida que cambia de Android a Windows o viceversa. Esto es algo que realmente trae algunas complicaciones para los usuarios e indirectamente para su aplicación.

De vez en cuando, aparecerá algo que revolucionará una industria por completo. Un negocio inteligente no solo sabe cómo subir a la cima, sino también cómo mantenerse en la cima, la segunda parte es más difícil la mayoría de las veces.

La industria de las aplicaciones móviles ha explotado y continúa alcanzando nuevas alturas todos los días. Esto ha llamado la atención de las principales empresas y empresas que siempre buscan mejorar y mantener la relevancia en el mundo empresarial en constante cambio. Es un movimiento inteligente invertir en algo, ya sea una idea, un concepto o un producto, cuando hace calor y en este momento las aplicaciones móviles son súper calientes.

Si su empresa desea crear una aplicación móvil, estos son los principales desafíos que enfrentan las empresas cuando se aventuran en el mundo de las aplicaciones móviles.