Arquitecturas Para Desarrollo En Moviles
Enviado por newdream • 24 de Febrero de 2014 • 1.770 Palabras (8 Páginas) • 510 Visitas
ARQUITECTURAS PARA EL DESARROLLO EN MOVILES
CONSIDERACIONES PREVIAS
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.
MODELO NATIVO
Como si fuera una aplicación de escritorio, las aplicaciones nativas se construyen pensando en un único sistema operativo o incluso un único dispositivo. La idea de este enfoque es aprovechar todo el potencial que nos da el entorno para acceder a las características propias del dispositivo móvil y poder así llegar a sacar el máximo potencial en cuanto a rendimiento y posibilidades que un móvil nos ofrece.
Arquitectura del modelo nativo
La arquitectura se basa en que en el dispositivo implementaremos toda su interfaz, acceso a funcionalidades de la plataforma (cámara y demás) y lógica (al menos la que necesite ser accedida de modo offline). Si existe cierta información que no necesite ser accedida de modo constante y offline, sino que basta con recuperarla cada vez que haya una conexión disponible, se podría implementar una aplicación web o servicio web que implementase parte de la lógica y recuperación de información.
En este enfoque, la misma funcionalidad (offline y UI) debe ser implementada desde cero para cada plataforma, ya que cada una de ellas usa su propio lenguaje de programación, por lo que no tenemos la opción de compartir implementaciones de funcionalidad común. Esto puede hacer que pensemos en desechar esta alternativa inmediatamente, pero para algunos escenarios, donde el rendimiento y la experiencia de usuario cobran especial relevancia, las aplicaciones nativas son necesarias.
Entornos de trabajo para el desarrollo de aplicaciones nativas
Tanto Android como iOS o Windows Phone proveen todos los mecanismos necesarios para crear este tipo de aplicaciones, ya sea un IDE, emuladores o un app store donde ponerla a la venta.
En resumen, puede ser interesante en aplicaciones donde hay un alto nivel gráfico y de procesamiento de imágenes, se requiere geo localización audio o video en tiempo real, se busca la realidad aumentada, integridad transaccional con datos offline del teléfono…
Instagram para iOS o Mint.com son ejemplos de este enfoque
MODELO WEB
En este modelo, las aplicaciones son codificadas en un lenguaje de programación soportado por los navegadores web y es ejecutado dentro del navegador del móvil.
A la hora de presentar la información (parte UI) se utilizan dos enfoques, uno en el que tanto la lógica como las vistas son procesadas, ejecutadas y preparadas en el servidor, y otro en el que la mayor parte de este trabajo es hecho en cliente.
Arquitectura del modelo Web (Procesamiento en Servidor)
Para el segundo enfoque, la base es javascript
Arquitectura del modelo web (Parte en Cliente)
Por lo tanto podríamos resumirlo en que aquí la clave es onstruer la aplicación usando tecnologías web estandar como HTML (para definer texto estático e imagines), CSS (que define el estilo y la presentación) y JavaScript (nos servirá para establecer las interacciones y animación) que nos permiten que su apariencia y comportamiento sea cercano al de las aplicaciones nativas.Todos los frameworks
...