Inicio > MAF / ADF Mobile > Desarrollo de aplicaciones móviles híbridas con ADF Mobile

Desarrollo de aplicaciones móviles híbridas con ADF Mobile

Como publicamos hace 2 meses, Oracle ha sacado al mercado ADF Mobile, su nuevo framework para el desarrollo de aplicaciones para tablets y smartphones, basado en una arquitectura híbrida y un conjunto de módulos y herramientas destinadas a producir aplicaciones seguras.

En próximos posts iremos hablando de distintos aspectos de este framework, pero primero: ¿Qué es una arquitectura híbrida? ¿Qué características tiene? ¿En qué se parecen y en qué se diferencian las aplicaciones desarrolladas con este framework de las aplicaciones nativas o de las aplicaciones web?

Intentemos clarificar los 3 tipos de enfoque a la hora de desarrollar aplicaciones mobile:

Aplicaciones nativas

Se desarrollan utilizando el SDK particular de cada sistema operativo. Se consigue un muy buen rendimiento y se aprovechan al máximo las características del dispositivo (cámara de fotos, gps, etc.) pero, a cambio de estas ventajas, la aplicación no podrá ejecutarse en otro sistema operativo. Por tanto, hacer una aplicación multidispositivo tiene un coste de desarrollo elevado ya que hay que hacer desarrollos distintos para cada sistema operativo, y en tecnologías dispares, con lo que o requerimos de un equipo de desarrolladores más numeroso o con unos conocimientos más amplios.

Aplicaciones web

Típicamente se ejecutan dentro de clientes WEB  (principalmente navegadores), en entornos cliente/servidor y utilizan tecnologías de la parte del cliente tales como HTML, CSS y Javascript. Estas aplicaciones residen en servidores web que atienden las solicitudes de los clientes transformando y enviando documentos HTML para que éstos los presenten al usuario.

Las aplicaciones web ofrecen un alto grado de reutilización de código, pero nos obligan a tener conexión en el dispositivo para acceder al servidor web. El coste de desarrollo para estas plataformas es notablemente inferior si lo comparamos con los costes de las aplicaciones nativas e híbridas.

Aplicaciones híbridas

Están construidas de tal manera que son capaces de ejecutar código nativo y también pueden interpretar contenido web, de tal manera que el usuario ve conjuntamente información de los dos tipos. Además, las páginas html (totalmente o en parte) pueden provenir de cualquier servidor web o residir en el propio dispositivo. De esta forma disponemos de lo mejor de cada arquitectura. Por ejemplo, una aplicación híbrida nos puede presentar en pantalla una página HTML5  sobre la que se muestra la posición actual proporcionada por el GPS. El coste de desarrollo es similar al de las aplicaciones web y nos permite preparar las aplicaciones para trabajar sin necesidad de estar conectadas al servidor, es decir offline.

Muy bien, ahora que ya sabemos distinguir las aplicaciones existentes en los dispositivos móviles ¿qué estrategias se han empleado a la hora de diseñar los frameworks destinados a producir aplicaciones híbridas?

Básicamente todos los proveedores de entornos para aplicaciones híbridas han seguido el siguiente modelo para diseñar el entorno de ejecución:

  1. En la capa inferior se encuentra un Contenedor de Dispositivo (DC o Device Container) escrito con el SDK (aplicación nativa). Éste proporciona a las capas superiores acceso a las funciones del dispositivo (cámara, acelerómetro, etc) y una interfaz común  (DII o device integration interfaces) para poder abstraer esta capa y hacer a las demás independientes del dispositivo . El creador del framework deberá construir este contenedor para cada sistema operativo al que desee dar soporte.
  2. Sobre el DC encontramos  el Web Container, que en esencia se trata de un Navegador Web con capacidades para renderizar HTML y ejecutar JavaScript. Aquí el acceso a los servicios que dé la cámara, gps, agenda, etc. los encontramos disponibles a través de funciones JS o lenguaje de marcas, dependiendo de las tecnologías ofrecidas por del framework.
  3. Estas dos primeras capas configuran la arquitectura mínima necesaria para ejecutar aplicaciones en los dispositivos móviles actuales, por tanto, éste debe ser el punto de partida cuando evaluemos que capacidades proporciona cada framework.

adfmobile_architecture

 

Extras de ADF Mobile

  1. Cada aplicación lleva embebida una máquina Virtual Java de tamaño super-reducido (~10 Mb). Con esto se consigue la ejecución de aplicaciones Java sobre cualquier dispositivo (actualmente están soportadas iOS y  Android).
  2. Se ha construido un entorno similar a ADF, estructurado en capas:
    1. ADF Controller, que nos va a permitir diseñar de forma gráfica y declarativa toda la lógica de navegación de nuestra aplicación.
    2. ADF Mobile XML View, el equivalente a ADF Faces, basado en un modelo de componentes (listas, checkbox, botones, gráficos, etc) que agiliza el desarrollo de interfaces de usuario y el enlazado con la capa de datos de forma visual (drag & drop).
    3. Componentes de datos para facilitar el uso de Web Services REST o SOAP.
    4. Almacenamiento local a través de una base de datos local SQLite, con la que podemos diseñar aplicaciones que trabajan offline y con facilidades de cifrado de datos.
    5. Integración de las herramientas de desarrollo con JDeveloper.
    6. Componentes de datos que envuelven PhoneGap para acceder al hardware del dispositivo.
    7. Seguridad integrada. Podemos integrar fácilmente las aplicaciones móviles con los mecanismos de autenticación y autorización corporativos.
Diagrama de la arquitectura de ADF Mobile

Diagrama de la arquitectura de ADF Mobile

En definitiva, si tenemos en cuenta todos los elementos y características de ADF mobile, posiblemente podamos afirmar que se trata de uno de los mejores entornos de desarrollo para aplicaciones móviles y uno de los más completos del mercado.

  1. Aún no hay comentarios.
  1. enero 30, 2013 en 13:44

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: