Este artículo forma parte de una serie de artículos donde iré explicando las distintas arquitecturas que tenemos disponibles a la hora de desarrollar para móvil.
A la hora de elegir una arquitectura de desarrollo para
móvil es necesario tener en cuenta una serie de aspectos, como son:
conectividad, almacenamiento, limitaciones del procesador, estándares, opciones
de despliegue, usuarios potenciales… sin olvidar otros típicos como
escalabilidad, mantenibilidad o extensibilidad. Todos estos factores servirán
como punto de partida a la hora de tomar una decisión arquitectónica.
A continuación se comentan los aspectos más relevantes.
Conectividad
Aplicaciones móviles son por defeinición, móviles, es decir,
el usuario no está conectado a un punto de red fijo, sino que mientras se mueve
va cambiando y puede que en ciertos momentos se encuentre con una conexión nula
o inexistente.
A pesar de
que las tecnologías inalambricas han evolucionado mucho en los últimos años, no
se puede esperar que un usuario móvil vaya a estar “siempre conectado”, como
mucho se puede esperar que este “casi siempre conectado”.
Acceso
al dispositivo.
Con esto
nos referimos al echo de poder acceder desde nuestra aplicación a funciones
propias del smartphone o dispositivo, como son el GPS, acelerometro, agenda,
camara y demás.
Algunas
arquitecturas permitirán acceder a todas estas opciones, mientras que otras
solo permiten acceder a algunas o incluso a ninguna. Por eso es importante
tener siempre en mente como de importante es para nosotros y para nuestra
aplicación el acceso al dispositivo y a sus funciones.
Usabilidad
A la hora
de diseñar el interfaz de una aplicación para móvil, tenemos que ser mucho más
cuidadosos, si cabe, que cuando lo hacemos para una aplicación de escritorio o
web, ya que nos encontramos ante
pantallas de pequeño tamaño, multitáctiles, con métodos de entrada disitintos a
los tradiciones y en definitiva, unas limitaciones y posibilidades que pueden
llevar a nuestra aplicación al fracaso o al exito
Rendimiento
Un aspecto
muy a tener en cuenta es como de importante es para nuestro objetivo el
rendimiento que tenga la aplicación. Está claro que si queremos desarrollar un
juego de coches, el rendimiento es muy importante y por tanto seguramente
deberemos pensar en aquellar arquitecturas que permiten sacar el máximo
potencial de cada dispositivo.
Seguridad
Las
aplicaciones para móviles estan dejando de ser un simple entreteniemiento para
convertirse en una parte importante de nuestro día a día, llegando a tener
presencia en operaciones clave donde la seguridad es crucial, como emails,
bancos o simples aplicaciones de compra y venta donde tenemos almacenados datos
bancarios… Esto hace que en nuestra elección sea importante valorar hasta que
punto sera necesaria una seguridad robusta con características como
autenticación, encriptación o control de acceso.