Está en la página 1de 12

Arquitectura de una aplicacin mvil

En aplicaciones mviles que muestran una determinada informacin, como lugares de


interes, un portfolio, servicios de una empresa, etc. el primer paso es decidir la
arquitectura de la informacin. Si la aplicacin es autocontenida (sin conexin) o si el
contenido se obtiene de una fuente externa.
Estas son algunas ideas bsicas que tengo que transmitir muy a menudo a las
personas que sin tener un contacto previo con el mundo de las aplicaciones y la Web,
quieren desarrollar algn tipo de aplicacin.
Tomemos por ejemplo una aplicacin que muestra los lugares tursticos de una
ciudad.

Aplicacin mvil autocontenida

El contenido es esttico, los lugares de la gua no cambian o cambiar muy raramente,


y lo mismo ocurre con las descripciones, textos, imgenes y dems informacin de
cada lugar.
En ese caso, la aplicacin sera autocontenida es decir, toda la informacin est en
la aplicacin y no se descarga de ningn lugar online.
Ventajas:
Son aplicaciones mviles sencillas de desarrollar
No hay costes aadido de contratacin de hosting, bases de datos, etc.
Desventajas:
Si algn da hay que aadir lugares o eliminarlos, o modificar la informacin de
alguno de ellos, es necesario compilar una nueva versin de la aplicacin con la
informacin actualizada y enviarla para publicacin.
Si la cantidad de informacin es elevada, el peso de la aplicacin puede hacer
esta opcin inviable.

Aplicacin mvil con conexin online

La informacin est online, en una base de datos


mySQL, en un XML alojado en un servidor web o
formula similar, de forma que la aplicacin se
conecta a un servidor web al iniciarse o al mostrar
una determinada pantalla y descarga la informacin
necesaria.
En ese caso tenemos nuevamente dos opciones:

Aplicacin mvil con descarga de


informacin esttica

Un XML o fichero esttico, que hay que modificar


manualmente editando el texto cada vez que se
quiere modificar alguna informacin.
Ventajas:
Ms flexible que una aplicacin autocontenida porque no hay que publicar una
versin de la aplicacin cada vez
Desventajas:
Editar los ficheros suele ser tedioso y es necesario un perfil tcnico para ello.
Es fcil cometer errores al editar la informacin.
No puede entregarse a un cliente que quiere autogestionar la informacin.
Costes de hosting Web para alojar los ficheros descargables.

Aplicacin con informacin dinmica

La informacin est en almacenada en una base de datos y la aplicacin accede a un


script PHP (u otro lenguaje de servidor) que se conecta a la base de datos y genera
una XML o archivo descargable que retorna a la aplicacin.
Ventajas:
Permite editar los datos de la base de datos con un CMS Web como
WordPress o Drupal, o generar el contenido con formularios web, o con conector de
base de datos (Access por ejemplo).
La modificacin de informacin es sencilla y rpida.
La modificacin de informacin puede hacerla cualquier persona con
conocimientos bsicos.
Desventajas:
Complejidad del desarrollo mayor.
Coste de desarrollo mayor ya que hay parte de desarrollo Web.
Costes de hosting Web para alojar scripts y base de datos.

Arquitecturas para desarrollo mvil Modelo Nativo


Como si fuera una aplicacin 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 caractersticas propias del
dispositivo mvil y poder as llegar a sacar el mximo potencial en
cuanto a rendiemiento y posibilidades que un mvil nos ofrece.

Arquitectur
a del modelo nativo
La arquitectura se basa en que en el dispositivo implementaremos toda
su interfaz, acceso a funcionalidades de la plataforma (cmara y dems)
y lgica (al menos la que necesite ser accedida de modo offline). Si
existe cierta informacin que no necesite ser accedidad de modo
constante y offline, sino que basta con recuperarla cada vez que haya
una conexin disponible, se podra implementar una aplicacin web o
servicio web que implementase parte de la lgica y recuperacin de
informacin.

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
programacin, por lo que no tenemos la opcin de compartir implementaciones de
funcionlidad comn. Esto puede hacer que pensemos en desechar esta alternativa
inmediatamente, pero para algunos escenarios, donde el rendiemiento y la
experiencia de usuario cobran especial relevancia, las aplicaciones nativas son
necesarias.

En
tornos 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.

Arquitecturas para desarrollo mvil - Modelo Web


En este modelo, las aplicaciones son codificadas en un lenguaje de programacin soportado por
los navegadores web y es ejecutado dentro del navegador del mvil.
A la hora de presentar la informacin (parte UI) se utilizan dos enfoques, uno en el que tanto la
lgica 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 podramos resumirlo en que aqu la clave es construer la aplicacin usando
tecnologas web estandar como HTML (para definer texto esttico e imagines), CSS (que define el
estilo y la presentacin) y JavaScript (nos servir para establecer las interacciones y animacin)
que nos permiten que su apariencia y comportamiento sea cercano al de las aplicaciones
nativas.Todos los frameworks que utilizan este modelo se basan en libreras javascript, que
combinadas con HTML 5 y CSS 3 renderizan la aplicacin web mvil en cualquier dispositivo,
y esto es possible a las posibilidades que nos ofrece HTML 5 y CSS 3, que incluyen bases de
datos SQL, almacenamiento local, animaciones, video, ejecucin offline

Arquitecturas para desarrollo mvil - Modelo Hbrido

Uno de los mayores inconvenientes del modelo web es las limitaciones que nos impone a la hora
de acceder a algunas caractersticas del hardware de la plataforma o dispositivo sobre la que se
ejecuta la aplicacin, ya que a pesar de que las ltimas versiones de los navegadores mviles
propagan informacin como la orientacin de la pantalla o geolocalizacin, esta es aun limitada y
todava no hay forma de obtener datos del acelermetro, la cmara o subir un video.
Aqu es donde el modelo hibrido entra en escena. En este, bsicamente tendremos una aplicacin
nativa que slo contendr la aplicacin web embebida, de tal manera que funcionar como un
wrapper que har de puente de comunicacin entre la aplicacin web embebida y las opciones
propias del dispositivo, eliminando as parte de las limitaciones del modelo web.
El usuario recibe una aplicacin nativa normal que muestra contenido web. La aplicacin web
interna ser cacheada localmente en el dispositivo durante la instalacin, eliminando as la
necesidad de una conexin activa a la red y mejorando su velocidad y sensibilidad.

Arquitectura del Modelo Hbrido


La comunicacin entre la aplicacin web y la aplicacin nativa, normalmente ocurre mediante
JavaScript APIs que nos dan la posibilidad de leer datos adicionales del mvil, y lanzar acciones
como la vibracin, el acelermetro o acceder a ficheros de un modo estndar a travs de diferentes
plataformas.

Componentes del Modelo Hbrido


Esta habilidad de combinar aplicaciones web estndar con las nativas, puede significar una
importante reduccin de tiempo y coste al minimizar el trabajo necesario de codificacin. Para el
usuario, una aplicacin hibrida bien diseada, se ver muy parecido a una nativa: Se la bajar de
un app store, la almacenar en el dispositivo mvil y la ejecutar como cualquier otra aplicacin
nativa. Sin embargo para los desarrolladores supone una gran diferencia, porque en vez de tener
que rescribir buena parte de la aplicacin para cada plataforma mvil, escribirn esa parte en
HTML, CSS y JavaCript, y reusarn ese cdigo a travs de las diferentes plataformas.
Ejemplos de este modelo seran la aplicacin android de la Wikipedia o la aplicacin iPhone de
LinkedIn.

Arquitecturas para desarrollo mvil - Modelo de Cdigo


Interpretado
Este modelo se basa en la existencia de un Intermediate Language Runtime (ILR) o entorno de
ejecucin de lenguaje intermedio que abstraiga al desarrollador los detalles de la plataforma en la
que se est ejecutando el cdigo. El desarrollador escibir el cdigo en un lenguaje de
programacin determinado (esto depende del framework), un compilador generar el mismo
programa en un lenguaje intermedio, y este cdigo intermedio es interpretado o compilado just-in
time por un por un interprete escrito para cada plataforma que interpreta o compila el cdigo en un
cdigo mquina entendible por el dispositivo objetivo.

Arquitectura del Modelo de Cdigo Interpretado

Como podemos ver en la arquitectura, el ILR ser por tanto un entorno de ejecucin que contendr
una capa de abstraccin multi plataforma que trabajar con cada una de las APIs de las distintas
plataformas. La implementacin de este interprete vara en tamao y complejidad segn la
herramienta elegida, incluso varan los mtodos de ejecucin, pudiendo usarse virtualizacin,
interpretacin, compilacin just-int time o una mezcla de varios tipos.

Un ejemplo muy conocido de este modelo en las aplicaciones de escritorio es la maquina virual de
java. Una mquina virtual es una implementacin software de una maquina (por ejemplo de un
dispositivo mvil) que ejecuta programas como si de una maquina fsifica real se tratase. Y ya en
su da se intent replicar este modelo en el mundo mvil con Java ME y su KVM (Kilo Virtual
Machine), pero no termino de triunfar ya que produca aplicaciones demasiado pesadas para el
momento, y la alta fragmentacin del mercado, haca que las aplicaciones desarrolladas para este
entorno de ejecucin no funcionase en muchas plataformas.

Componentes del Modelo de Cdigo Interpretado

As que con este modelo, la responsabilidad de soportar multiples plataformas, la pasamos del
desarrollador al creador de la mquina virtual o el ILR

Anngry Birds es un ejemplo de este modelo (usa Lua como lenguaje principal) .

Arquitecturas para desarrollo mvil - Modelo de Cdigo


Generado

Arquitectura del Modelo de Cdigo Generado


La idea base de este modelo es producir aplicaciones nativas para cada plataforma pero a partird
de un mismo cdigo y un mismo lenguaje de programacin.

Diagrama Modelo de Cdigo Generado


Un compilador multiplaforma permite separar el entorno de construccin o desarrollo del entorno
del dispositivo objetivo o de ejecucin. La idea es la siguiente: Habr una framework o herramienta
que nos ofrecer un API (en cualquier lenguaje de programacin) independiente de la plataforma
en la que se vaya a ejecutar. El desarrollador usar este API para construir la aplicacin mvil,
incluyendo el interfaz de usuario, la persistencia de datos y la lgica de negocio. Una vez hecho
esto, el cdigo es procesado por el compilador multiplaforma que transformar est cdigo en una

aplicacin nativa especifica para una plataforma objetivo. La aplicacin resultante de este proceso
puede ser desplegada y ejecutada de forma nativa en un dispositivo.

Seguridad en dispositivos Apple: iPhone, iPad y dems


familia
Los sistemas de Apple son muy cerrados y la publicacin de aplicaciones en la
AppStore es bastante restrictiva, ya que todas las aplicaciones son verificadas una
a una de forma manual.
Con esto, Apple, garantiza (o al menos eso dice), que su sistema es seguro y
que no hay virus para sus dispositivos. Eso era casi cierto, hasta hace poco
Era casi cierto, porque todos los dispositivos liberados (lo que en el mundillo se
conoce como jailbreak), podan instalar aplicaciones no validadas por Apple, y por
tanto, potencialmente inseguras.
Y hasta hace poco, porque recientemente se han dado a conocer algunos casos de
fallos notables de seguridad; por ejemplo, en la aplicacin de Skype para iPhone, se
ha reconocido que a travs del chat se poda obtener la lista de contactos completa
del telfono.
Dado que los dispositivos son seguros segn Apple, no se permite la publicacin
de Antivirus (que por otra parte seran complicados de desarrollar) y por tanto los
usuarios estn de alguna forma expuestos a este tipo de fallos de seguridad.
La nica recomendacin, en este sentido, es mantener las aplicaciones
actualizadas a su ltima versin.

Seguridad en dispositivos Android


Android es una plataforma abierta, en el que prcticamente no se limita la
publicacin de aplicaciones, y que por tanto es, a priori, mas vulnerable.
Pero por otro lado, tambin es cierto que Android permite la publicacin de
antivirus y que la mayora de las firmas de seguridad ya tienen su propia aplicacin
en este sentido.
En este caso, la seguridad es mucho ms parecida a lo que conocemos del
mundo del PC y adems de aplicar el sentido comn, ser recomendable instalar el
correspondiente antivirus.
En cualquier caso, aunque apliquemos todos estos consejos, hay que tener en cuenta
que los sistemas antivirus y las actualizaciones de seguridad de las
aplicaciones, siempre van por detrs de los desarrolladores de virus, y que
siempre habr una posibilidad de ser infectados. No obstante, habremos reducido
bastante nuestro riesgo.
tags:

También podría gustarte