Desarrollo de Aplicaciones Móviles iOS: Aspectos importantes

Aplicaciones móviles iOS
Aplicaciones móviles iOS

Las aplicaciones móviles iOS para dispositivos iPhone,  iPad, requieren especial atención gracias a la gran porción del mercado de dispositivos móviles que aun posee Apple.

Las Apps iOS se desarrollan bajo el IDE (Ambiente Integrado de Desarrollo)conocido como Xcode, que debe ser instalado en el sistema operativo MacOS.

Para el desarrollo de aplicaciones móviles iOS se requiere tener conocimientos de programación en el lenguaje Swift de Apple, que ahora es código abierto, bajo licencia de Apache. Swift se usa para crear aplicaciones para Mac, iOS, Apple TV o Apple Watch. Garantizando la integración con código en lenguaje Objective C.

Swift iOS
Swift iOS

Apple recomienda una serie de lineamientos, para construir aplicaciones móviles iOS que le entreguen una buena experiencia de usuario con su diseño, que respondan rápido a los comandos, que se adapten a diferentes tamaños de pantalla, y que consuman lo menos posible la batería de los dispositivos físicos.

Te puede interesar leer ¿Cuánto cuesta desarrollar una App o aplicación móvil?

A) Comportamiento esperado de las Aplicaciones Móviles iOS

Cuando vamos a publicar una aplicación móvil iOS en el AppStore, se requiere que la app contenga los siguientes datos adicionales:

  • Un archivo Info.plist que contiene información conocida como metadata de la aplicación. Creada automáticamente por Xcode.
  • Se deben declarar los requerimientos de hardware o características que la aplicación móvil iOS necesita para correr.
  • Se debe tener uno o más iconos para presentarlo en la ventana de aplicaciones del usuario.
  • También debe poseer una imágen de inicio de la app, que es la imagen que se nos muestra cuando la aplicación es apenas lanzada y se está apenas cargando.

B) Estados de ejecución bien definidos

Las aplicaciones pasan por varios estados de ejecución desde que se inicia hasta que se cierra finalmente. De este modo la aplicación sigue una serie de estados de ejecución, cuando se ejecuta en primer plano, o cuando está en segundo plano, y luego es retomada.

Las aplicaciones móviles iOS deben entonces manejar muy bien estos estados, con el propósito de tener el comportamiento esperado en cada uno de ellos, como por ejemplo hacer el menor uso posible de batería mienstra se encuentra en segudo plano.

C) Ejecución eficiente en la multitarea de iOS

La multitarea de iOS permite mantener una app en background, reduciendo su uso de batería, pero con la capacidad de regresar rápidamente a su estado previo, cuando el usuario regresa a la App. Es por eso que se necesita que la aplicación móvil haga un uso eficiente de los aspectos de multitarea de iOS, para resguardar un activo muy valioso para los usuarios, que es la carga de su batería.

D) Comunicación estándar entre Aplicaciones móviles iOS

iOS y Mac han desarrollado una tecnología de control de acceso conocida como Sandbox, que le permite a las apps tener una interacción limitada entre si. Así que si se requiere una comunicación entre apps, se deben manejar las interfaces especificadas por Sandbox.

E) Afinamiento del desempeño de las Aplicaciones móviles iOS

Apple recomienda realizar una serie de afinamientos a la App, con el fin de que haga un uso eficiente de los diferentes recursos de hardware.

Entre los tips que recomienda afinar para mejorar el desempeño tenemos:

1. Uso eficiente de la carga de la batería

Reducir el consumo de energía

  • Evitar hacerle polling a la CPU (requerimientos continuos a la CPU para que no se vaya a reposo).
  • Dejar que el sistema apague automáticamente la pantalla, sin forzarlo a que la mantenga encendida en alguna operación inatendida.
  • Evitar accesar muy frecuentemente al disco.
  • No dibujar muy rápido en la pantalla, lo que consume mucha energía.
  • Reunir tareas para ejecutarlas al mismo tiempo.
  • Hacer un uso efeciente del acelerómetro, sólo cuando es necesario.
  • Conectarse lo menos posible a servidores externos, sólo cuando sea necesario, y mucho menos estarles haciendo polling.
  • Se deben transmitir ráfagas grandes de datos en periodos cortos de tiempo, así se minimiza la radiación WiFi o Móvil 3G/4G, que consume mucha batería.
  • Se debe minimizar el uso de las funciones centrales de localización, para que usen lo menos posible el GPS, la red celular y el WiFi.
  • Encolar tareas juntas, para que el sistema se encargue de evacuarlas automáticamente.
  • Conectarse en lo posible a redes WiFi, las conexiones a la red celular consumen más energía.

También puedes leer Desarrollo de APLICACIONES MOVILES en BOGOTA y COLOMBIA

Uso eficiente de memoria

Se recomienda que las Apps usen la menor cantidad posible de memoria. De este modo el sistema tendrá más memoria disponible para las aplicaciones que están en primer plano, haciendo más rápida la respuesta de iOS a las tareas de las aplicaciones móviles que se están ejecutando.

Para este caso se recomienda:

  • Manejar las advertencias de baja memoria, con el fin de liberar memoria innecesaria.
  • Reducir las huellas de memoria de la app.
  • Imponer unos límites de memoria a los recursos, incluso a la carga parcial de recursos en memoria si es posible.
  • Evitar la resolución de problemas que requieran tamaños de memoria desconocidos, que en algún momento pueden desbordar la capacidad dada a la app.

Ajustar el código para Networking

Las aplicaciones móviles iOS usan muchas funciones para crear conexiones de red, para enviar y recibir datos.  Apple hace las siguientes recomendaciones al respecto:

  • Definir en los posible los formatos de datos de los protocolos usados.
  • Transmitir los paquetes en ráfagas si es posible.
  • Evitar protocolos que usen excesiva interacción.

Alertas del modo avión

La aplicación también debe considerar mostrar una alerta de conexión a la red WiFi, cuando el dispositivo se encuentra en modo avión.

Uso de WiFi

Si la app usa la red WiFi para conectarse, debe usar las claves de iOS para indicarle al sistema que muestre la ventana de selección de redes wifi disponibles, si no hay conexión a WiFi, y también se le debe indicar al sistema si puede o no apagar el hardware WiFi, mientra la App esté ejecutándose.

2. Mejorar la gestión de los archivos

Se recomienda minimizar la cantidad de escritura al disco.  Por esto se recomienda:

  • Agrupar contenido modificado, para minimizar el número de bloques de escritura a disco.
  • Escribir en disco sólo la porción del archivo que cambia.
  • Si los datos son estructurados, es mejor usar una base de datos interna, como Core Data o SQLite.
  • También se recomienda evitar escribir archivos de caché al disco.

También te puede interesar Desarrollo de Aplicaciones MOVILES Android : Una necesidad creciente para las empresas en Colombia

3. Ejecución de copias de respaldo

Se recomienda hacer de manera eficiente las copias de respaldo, con el fin de que grandes operaciones de backup sean muy demoradas, que incluso no se realicen con la frecuencia esperada. Por eso se recomienda alojar los archivos de acuerdo a sus características, en los directorios donde se almacena la app:

  • En el directorio <Aplication_Data>/Documents,  se deben guardar los datos críticos, que son aquellos que no pueden ser recreados por la app misma, como por ejemplo datos de usuario.
  • En el directorio <Aplication_Data>/Library/Application Support, se guardan los archivos que descarga la app, que la aplicación puede recrear por sí misma.
  • En el directorio <Aplication_Data>/Library/Caches, se deben guardar los archivos de caché.
  • En el directorio <Aplication_Data>/tmp, se deben guardar archivos temporales.

De este modo, cuando una app es sincronizada automáticamente a iCloud o por medio de iTunes, se tienen en cuenta los datos necesarios para que la aplicación móvil iOS pueda ser restaurada satisfactoriamente, sin necesidad de ocupar tanto espacio.

4. No llevar tareas complejas al flujo principal de ejecución

Cuando se realizan tareas largas que pueden tomar mucho tiempo, se debe garantizar que el usuario puede continuar trabajando, haciendo que las tareas se ejecuten en segudo plano o background.

Si el sistema detecta una aplicacíon que está bloqueando el flujo principal por mucho tiempo, detiene forzadamente la app, para evitar que ponga en riesgo la estabilidad del dispositivo.

Estas son una serie de recomendaciones que hace Apple para crear una aplicación que siga unos lineamientos que permitan ser ágil, responsiva y que use los recursos de memoria, CPU y batería de la mejor manera posible, para darle la mejor experiencia al usuario.

En posteriores artículos trataremos el tema del lineamiento de diseño para aplicaciones móviles iOS.

Este artículo hace parte del sistema de divulgación de conocimiento de ITSoftware SAS.

Si te gustó, por favor no olvides compartirlo en las redes sociales. 😉

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.