Adobe AIR for Flex Developers Pocketguide
Spanish, 0.85
Introducción a Adobe AIR
Adobe AIR es un runtime multi-plataforma para escritorio creado por Adobe el cual permite a los desarrollarores web usar tecnologías web para construir e implementar RIAs (Rich Internet Applications) y aplicaciones web para escritorio.
Durante su ciclo de desarrollo, Adobe AIR fue referido en público por su nombre clave "Apollo".
Para entender mejor lo que Adobe AIR permite y cuales problemas trata de abordar, es útil en primer lugar, echar un vistazo a la (relativamente corta) historia de las aplicaciones web.
Breve Historia de las Aplicaciones Web
En el último par de años, ha habido una tendencia acelerada de movimiento de las aplicaciones desde el escritorio al navegador web. Esto ha sido Esto ha sido impulsado por una serie de factores, que incluyen:
- Crecimiento de Internet como medio de comunicación
- Relativa facilidad de implementación de aplicaciones web
- Posibilidad de dirigirse a múltiples sistemas operativos a través del navegador
- Madurez de tecnologías de alto nivel, como el navegador, frameworks de JavaScript y el runtime de Flash Player
Al principio, las aplicaciones web, fueron construidas con HTML y JavaScript, que, en su mayor parte, se basó en gran medida en interacciones cliente/servidor y recarga de páginas. Este modelo de recarga de páginas consistía en la metáfora basada en documentos para la cual el navegador fue diseñado originalmente. Pero proporcionó una relativamente pobre experiencia de usuario al desplegar las aplicaciones.
Con la maduración del runtime de Flash Player, sin embargo, y más recientemente con la funcionalidad tipo Ajax en el navegador, fue posible para los desarrolladores empezar a romper los flujos de aplicaciones basados en páginas.
Los desarrolladores empezaron a ofrecer experiencias de aplicaciones más ricas a través del navegador. En un informe de Marzo del 2002, Macromedia acuñó el término rich internet application para describir estos nuevos tipos de aplicaciones en los navegadores, el cual "mezcla contenido, lógica de la aplicación y comunicaciones ... para hacer Internet más usable y disfrutable."
Estas aplicaciones proporcionaron experiencias más ricas y más de escritorio, mientras conservaban la naturaleza multi-plataforma de la Web:
Las Aplicaciones de Internet son enfocadas al alcance. La promesa de la web es de contenido y aplicaciones en cualquier lugar, a pesar de la plataforma o dispositivo. Los clientes Ricos deben incluir y soportar todos los sistemas operativos populares de escritorio, así como la gama más amplia de las nuevas plataformas de dispositivos emergentes como son los smart phones, PDAs, dispositivos utilizados sobre el televisor, consolas de juego y aparatos de Internet.
El documento enlista algunas de las características que definen a las RIAs:
- Proveen una runtime eficiente y de alto desempeño para ejecutar código, contenido y comunicaciones
- Integran contenido, comunicaciones e interfaces de aplicación dentro de un entorno común
- Proveen un modelo de objeto poderoso y extensible para la interactividad
- Permiten el rápido desarrollo de aplicaciones a través de componentes y reuso
- Permiten el uso de servicios web y de datos proporcionado por servidores de aplicación
- Acepta clientes conectados y desconectados
- Permite fácil implementación en múltiples plataformas y dispositivos
Este movimiento hacia proveer experiencias más ricas, más como de escritorio en el navegador (habilitado por el runtime de Flash Player y más recientemente por JavaScript y AJAX) ha conducido hacia una explosión de aplicaciones web.
Hoy en día, la web se ha establecido firmemente a sí misma como una plataforma de implementación de aplicaciones que ofrece beneficios tanto a desarrolladores como a usuarios finales. Algunos de estos beneficios incluyen la habilidad de:
- Enfocarse en múltiples plataformas y sistemas operativos
- Desarrollar con relativamente alto nivel de lenguaje de programación y diseño
- Permite al usuario final accesar sus aplicaciones y datos desde, virtualmente, cualquier computadora conectada a Internet
- Facilidad de aplicar actualizaciones a los usuarios
El crecimiento de las aplicaciones web puede ser visto tanto en la tendencia Web 2.0, la cual consiste casi completamente en aplicaciones basadas en web y APIs, como en la adopción de aplicaciones web como un modelo de negocio básico por grandes empresas y organizaciones.
Problemas con la Distribución de Aplicaciones a través del Navegador
A medida que las aplicaciones web se volvieron más complejas, empezaron a extender las fronteras tanto de capacidades del navegador como de la usabilidad de la aplicación. A medida que su popularidad creció, estos problemas se volvieron más aparentes e importantes y destacaron el hecho de que hay una cantidad importante de problemas tanto para desarrolladores como para usuarios finales cuando se implementan y se utilizan las aplicaciones dentro del navegador.
El navegador web fue diseñado originalmente para distribuir y desplegar documentos basados en HTML. Ciertamente, el diseño básico del navegador no ha cambiado significativamente a partir de este propósito. Este conflicto fundamental entre funcionalidades basadas en documento y en aplicación crean un número de problemas cuando se implementan aplicaciones a través del navegador.
Interfaces de Usuario Conflictivas
Las aplicaciones implementadas a través del navegador tienen su propia interfaz de usuario, las cuales regularmente tienen conflicto con la interfaz del navegador. Este modelo de aplicación dentro de otra aplicación a menudo resulta en interfaces de usuario que tienen conflicto y se contradicen el uno al otro. Esto puede llevar a confundir al usuario en el mejor de los casos y a fallas de la aplicación en el peor de los casos. El clásico ejemplo de esto es el botón Atrás del navegador. El botón Atrás tiene sentido cuando se navega entre documentos, pero no siempre tiene sentido en el contexto de una aplicación. Aunque una cantidad de soluciones intentan resolver este problema, se han aplicado inconsistentemente a las aplicaciones y los usuarios pueden no saber si una aplicación específica soporta el botón Atrás o si forzará a la aplicación a descargarse, causando la pérdida de su estado y datos.
Distancia desde el Escritorio
Debido en parte al modelo de seguridad web (el cual restringe el acceso al equipo del usuario), las aplicaciones ejecutadas en el navegador, a menudo no soportan los tipos de interacciones de usuario con los sistemas operativos que la gente espera de las aplicaciones. Por ejemplo, no puedes arrastrar un archivo a la aplicación basada en el navegador y esperar que la aplicación se comporte como un archivo. Tampoco puede la aplicación web, interactuar con otras aplicaciones en el ordenador del usuario.
Las RIAs han intentado mejorar esto haciendo posibles las interfaces más ricas y más como de escritorio en el navegador, pero no han sido capaces de superar las limitaciones fundamentales y la separación entre el navegador y el escritorio.
Si bien son proyectos en curso (como Google Gears, Yahoo Browser Plus) y nuevos APIs de navegador y adiciones de funcionalidades) que tienen por objeto disminuir la brecha que existe entre el navegador y el escritorio, ellos siguen en las primeras etapas, sin un ganador como estándar emergente. No solo No sólo puede la existencia de ese tipo de funcionalidad ser no dependiente (todavía), pero la disponibilidad de múltiples implementaciones y soluciones amenazan con fragmentar aún más el desarrollo de la experiencia para el navegador.
Experiencia en Línea en Primaria
Debido a que las aplicaciones web son distribuidas desde un servidor y no se encuentran en el equipo del usuario, las aplicaciones web son principalmente una experiencia en línea. A pesar de los intentos aún se encuentran en camino para hacer posibles las aplicaciones basadas en web si conexión (a través de plugins y HTML 5), estas no proveen un modelo de desarrollo consistente y fallan en el intento de trabajar a través de diferentes navegadores o requieren a los usuarios instalar extensiones adicionales para el navegador. Además, a menudo requieren a los usuarios interactuar y administrar sus aplicaciones y navegador de maneras complejas e inesperadas. Sin embargo, esta es un área en la que el navegador se espera que se produzcan progresos en los próximos dos años.
Mínimo común denominador
Finalmente, a medida que las aplicaciones se volvieron más ricas y más complejas y empezaron a extender las fronteras de JavaScript y DHTML, los desarrolladores se enfrentan crecientemente a las diferencias en la funcionalidad del navegador e implementaciones API. Aunque estos problemas a menudo pueden ser superados con código específico del navegador, ellos conducen a codificar algo que a) es más difícil de mantener y escalar; y b) toma mas tiempo desarrollar funcionalidades características basadas en funciones.
A pesar de que los frameworks JavaScript son una forma popular de abordar estas cuestiones, ellos pueden ofrecer solamente la funcionalidad proporcionada por el navegador, y con frecuencia recurren al mínimo común denominador entre las características de los navegadores para facilitar el modelo de desarrollo. El resultado para aplicaciones basadas en JavaScript-DHTML es un mínimo común denominador de experiencia del usuario y modelo de interacción, así como el fortalecimiento del desarrollo , pruebas y costos de implementación para el desarrollador.
A medida que el navegador continúe madurando, este mínimo común denominador de funcionalidad usable mejorará, pero esto es un proceso que puede tomar una cantidad significativa de tiempo (a menudo años) en la que nuevos navegadores son liberados y los viejos dejan de ser utilizados.
El hecho de que las aplicaciones web han florecido a pesar de estos inconvenientes es un testimonio del atractivo de tener una plataforma con un buen modelo de desarrollo que tiene la capacidad para ofrecer aplicaciones para diversos sistemas operativos. Una plataforma que ofrece el alcance y el modelo de desarrollo del navegador, proporcionando al mismo tiempo la funcionalidad y la riqueza de una aplicación de escritorio, daría lo mejor de ambos mundos. Esto es lo que Adobe AIR tiene por objeto proporcionar.
Introducción a Adobe AIR
¿Qué es Adobe AIR y cómo puede complementar el desarrollo e implementación web?
Adobe AIR es un runtime para diferentes sistemas operativos desarrollado por Adobe que permite a los desarrolladores web aprovechar sus habilidades de desarrollo actuales (como son Flash, Flex, HTML, JavaScript y PDF) para construir e implementar RIAs y contenido para el escritorio.
En esencia, Adobe AIR provee una plataforma entre el escritorio y el navegador, la cual combina y facilidad de desarrollo para el modelo web con la funcionalidad y riqueza del modelo de escritorio.
Es importante regresar por un segundo y señalar lo que Adobe AIR no es. Adobe AIR no es un runtime general de escritorio para competir con runtimes de aplicaciones de bajo nivel. Adobe AIR viene de la Web hacia el escritorio y esta enfocado en los desarrolladores web. Su uso primario es permitir a las aplicaciones web y las RIAs ser desarrolladas para el escritorio. Esta es una muy sutil pero importante distinción, que permite a las aplicaciones web y RIAs ser implementadas en el escritorio es el primer caso de uso que conduce al conjunto de características de Adobe AIR 1.0.
En su parte medular, Adobe AIR esta construido sobre tecnologías web, las cuales permiten a los desarrolladores web desarrollar e implementar para el escritorio usando las mismas tecnologías y modelos de desarrollo que usan hoy cuando implementan aplicaciones en la Web.
Tecnologías Adobe AIR Primarias
Tres tecnologías primarias están incluidas dentro de Adobe AIR y ellas se dividen en dos diferentes categorías: tecnologías de aplicación y tecnologías de documento.
Tecnologías de Aplicación Primarias
Las tecnologías de aplicación primarias son las tecnologías que pueden ser usadas como las bases de una aplicación dentro de Adobe AIR. Adobe AIR contiene dos tecnologías de aplicación primarias, HTML y FLASH, de las cuales ambas pueden ser usadas propiamente para construir e implementar aplicaciones Adobe AIR.
Adobe Flash
La primera tecnología de aplicación principal sobre la cual esta construido Adobe AIR es Adobe Flash Player. Específicamente, Adobe AIR esta construido en la parte superior de Adobe Flash Player 9, el cual incluye el lenguaje de script Actionscript 3 basado en ECMA-Script, así como la máquina virtual de código abierto Tamarin (la cual será usada para interpretar JavaScript en las versiones futuras de Firefox).
Puedes encontrar más información en el sitio web del proyecto de código abierto Tamarin en el sitio web de Mozilla, en http://www.mozilla.org/projects/tamarin/.
No solo están todos los APIs de Flash Player existentes disponibles dentro de Adobe AIR sino también algunos de esos APIs también han sido expandidos y/o mejorados. Algunas de las funcionalidades que Flash Player provee a Adobe AIR incluyen:
- Actionscript Interpretado en tiempo de ejecución para un desempeño más rápido en las aplicaciones
- Pila de red completa, incluyendo http Y RTMP así como sockets XML y Binarios
- Completo motor de renderizado basado en vectores y APIs de dibujo.
-
Extenso soporte multimedia incluyendo mapas de bits, vectores, audio y video
NOTA
Los APIs de Flash Player y ActionScript están disponibles también para JavaScript dentro de las aplicaciones Adobe AIR.
Por supuesto, el framework de Adobe Flex 3 está construido sobre Actionscript 3, lo cual significa que puedes tomar ventaja de todas las características y funcionalidades que Flex ofrece para construir aplicaciones Adobe AIR.
HTML/JavaScript
La segunda tecnología medular de aplicación dentro de Adobe AIR es HTML y JavaScript. Esto incluye un completo motor de renderizado, el cual tiene soporte para:
- HTML
- JavaScript
- CSS
- XHTML
- Modelo de Objetos de Documento (Document Object Model, DOM)
El mismo motor de renderizado WebKit es usado en todas las versiones de Adobe AIR, independientemente desde cual sistema operativo se esté ejecutando. Esto tiene ciertas implicaciones. Primero, significa que cuando se esté desarrollando contenido HTML y JavaScript y funcionalidades CSS disponibles dentro de WebKit, de nuevo, sin tener que preocuparse acerca de la funcionalidad estando presente en diferentes versiones de navegador. Si, has leído bien. No necesitas usar Flash para construir aplicaciones Adobe AIR. Puedes construir aplicaciones completamente funcionales usando solo HTML y JavaScript. Esto usualmente sorprende a algunos desarrolladores quienes esperan que Adobe AIR se enfoque solamente en Flash. Sin embargo, en su núcleo, Adobe AIR es un runtime enfocada en desarrolladores web usando tecnologías web y ¿qué mejor tecnología web que HTML y JavaScript?
El motor HTML usado dentro de Adobe AIR es el motor open source WebKit. Este es el motor detrás de varios navegadores, incluyendo KHTML en KDE y Safari en Mac OS X.
Puedes encontrar más información en el proyecto de código abierto WebKit en http://www.webkit.org.
¿Por qué WebKit?
Adobe destinó una cantidad considerable de tiempo investigando cual motor HTML usar dentro de Adobe AIR y usó varios criterios que finalmente condujeron a decidir/resolver por WebKit.
Proyecto Abierto
Adobe sabía desde el principio que no quería crear y mantener su propio motor de renderización de HTML. No solo sería una gran cantidad de trabajo, sino también sería difícil para los desarrolladores quienes tendrían que familiarizarse con todas las peculiaridades de otro motor HTML.
WebKit ofrece AIR con un completamente funcional motor HTML que se encuentra bajo continuo desarrollo por una robusta comunidad que incluye tanto a desarrolladores individuales como a grandes compañías como Nokia y Apple. Esto permite q Adobe enfocarse en corrección de errores y características y también significa que Adobe puede contribuir activamente con WebKit mientras también toma ventaja de las contribuciones hechas por miembros del proyecto WebKit.
Una tecnología que los desarrolladores web saben
Como se discutió anteriormente, uno de los grandes problemas con desarrollo web complejo es asegurar que el contenido trabaje consistentemente en diferentes navegadores. Mientra algo puede trabajar perfectamente en Firefox en Mac, este puede fallar completamente en Internet Explorer en Windows. Por esto, probar y depurar contenido basado en el web puede ser una pesadilla para los desarrolladores.
Adobe quiso asegurar que los desarrolladores estuvieran familiarizados con el motor HTML usado en Adobe AIR y que no tuvieran que aprender desde el inicio todos los errores y peculiaridades de un nuevo motor. Desde que Safari (el cual está construido sobre WebKit) es el navegador por defecto de Mac OS X, los desarrolladores deben estar familiarizados en desarrollar para este.
Efecto mínimo en el tamaño del runtime.
El código base de WebKit fue bien escrito y organizado y tiene un mínimo impacto en el tamaño final del runtime de Adobe AIR.
Demostrada capacidad para funcionar en dispositivos móviles
Mientras que la primera versión de Adobe AIR se puede ejecutar solo en computadoras personales, la visión a largo plazo es extender el runtime desde el escritorio a teléfonos celulares y otros dispositivos. WebKit tiene una comprobada habilidad de ejecutarse en tales dispositivos y ha sido portado a teléfonos celulares por Nokia y Apple.
Tecnologías de Documento Primarias
Las tecnologías de Documento dentro de Adobe AIR se refieren a tecnologías que pueden ser usadas para renderizar e interactuar con documentos electrónicos.
PDF y HTML son las tecnologías de documento primarias disponibles con Adobe AIR.
El Formato de Documento Portable (PDF, Portable Document Format) es el estándar web para distribuir y desplegar documentos electrónicos en la Web.
La funcionalidad PDF requiere tener instalado Adobe Reader Versión 8.1 en la computadora del usuario. Si Adobe Reader 8.1 está instalado, las aplicaciones Adobe AIR podrán tomar ventaja completa de todas las características que el lector también utiliza dentro de un navegador web.
HTML
HTML fue diseñado originalmente como una tecnología de documento y actualmente provee control rico y robusto sobre contenido y estilos de diseño de texto. HTML puede ser usado como una tecnología de documento dentro de Adobe AIR tanto dentro de una aplicación HTML existente así como dentro de una aplicación basada en Flash.
Qué Contiene Una Aplicación Adobe AIR?
Ahora sabemos qué tecnologías están disponibles para aplicaciones corriendo sobre Adobe AIR (ver Figura 1-1), veamos como estas tecnologías pueden ser combinadas para construir una aplicación Adobe AIR.
[IMAGE] Figura 1-1 Estructura de una Aplicación Adobe AIR
Las aplicaciones pueden consistir en las siguientes combinaciones de tecnologías:
- Flash solamente (incluyendo Flex)
- Basada en Flash con contenido HTML
- HTML/JavaScript solamente
- Basada en HTML/JavaScript con contenido Flash
- Todas las combinaciones pueden también hacer uso de contenido PDF
Integración de Tecnología y Puenteado de Script
Debido a que WebKit y Adobe Flash Player son incluidos dentro del runtime, ellos están integrados uno al otro en muy bajo nivel. Por ejemplo, cuando HTML es incluido dentro de contenido Flash, es renderizado a través de la segmentación del despliegue de Flash, el cual, entre otras cosas, significa que cualquier cosa que puedas hacer a un mapa de bits dentro de Flash Player (desenfoque, rotación, transformación, etc.) también lo puedes hacer para HTML.
Esta integración de bajo nivel también aplica a los motores de script dentro de Adobe AIR que ejecutan Actionscript y JavaScript. Adobe AIR permite puenteado de script entre los dos lenguajes y ambientes, lo cual hace posible lo siguiente:
- El código JavaScript puede llamar a los APIs de Adobe AIR, Flash Player y ActionScript.
- El código ActionScript puede llamar a los APIs JavaScript.
- El código ActionScript puede manipular directamente el HTML DOM.
- El registro de Eventos puede ocurrir en ambas direcciones entre JavaScript y Actionscript.
Nota que el puenteado de script es "pasado por referencia." Así que cuando se pasa una instancia de objeto desde JavaScript hacia Actionscript (o viceversa), los cambios a esa instancia en un ambiente afectarán a la instancia en el otro ambiente. Entre otras cosas, esto hace posible instanciar y usar los APIs de Flash Player directamente desde JavaScript, o registrar y escuchar eventos. Este puenteado de script de bajo nivel entre los dos ambientes hace muy fácil para los desarrolladores crear aplicaciones que son una combinación de HTML y Flash.
El Puenteado de Script es cubierto con más detalle en el Capítulo 4.
El resultado final de todo esto es que si eres un desarrollador web, entonces ya tienen todas las habilidades necesarias para construir aplicaciones AIR.
Funcionalidad de Adobe AIR
Si Adobe AIR no proveyera funcionalidad adicional y APIs y simplemente aplicaciones web ejecutándose en el escritorio, no sería tan apremiante. Afortunadamente, Adobe AIR provee un rico juego de APIs de programación, así como una integración estrecha con el escritorio que permite a los desarrolladores construir aplicaciones que tomen ventaja del hecho de estar ejecutándose en el escritorio del usuario.
APIs de Adobe AIR
Adicionalmente a toda la funcionalidad y APIs ya ofrecidos por el Flash Player y el motor WebKit, Adobe AIR provee funcionalidad adicional y APIs.
Los APIs de Adobe AIR están disponibles para ActionScript y JavaScript.
Algunas de las funcionalidades incluyen, pero no están limitadas a:
- API completo de I/O de archivos
- API completo de ventanas nativas
- API completo de menús nativos
- APIs Online/offline para detectar cuando la conectividad del servicio ha cambiado
- Control completo sobre la apariencia de la aplicación.
- APIs de almacenamiento/configuración
- APIs de actualización de aplicación
- Almacenamiento encriptado de datos
- Base de datos SQLite integrada
Nótese que la funcionalidad puede ser implementada directamente dentro del runtime o sobre la capa del framework (en Flex y JavaScript) o usando una combinación de ambos.
Integración de Adobe AIR al escritorio
Como ha sido discutido anteriormente, aplicaciones implementadas a través del navegador no siempre pueden soportar las mismas interacciones con el usuario como las aplicaciones de escritorio. Esto hace que las aplicaciones que pueden ser engorrosas para el usuario al interactuar con ellas así como estas no permiten los tipos de interacciones con las cuales el usuario esta familiarizado.
Debido a que una aplicación AIR es una aplicación de escritorio, esta permite proveer los tipos de interacciones de aplicación y experiencia que los usuarios esperan de una aplicación. Esta funcionalidad incluye, pero no está limitada a:
- Rituales apropiados de instalación/desinstalación
- Instalación de puntos de contacto en escritorio (como son accesos directos)
-
Soporte rico de drag-and-drop:
- Entre el sistema operativo y la aplicación AIR
- Entre aplicaciones AIR
- Entre aplicaciones nativas y aplicaciones AIR
- Soporte para portapapeles rico
- Notificaciones de sistema
- Íconos nativos
- Habilidad de capturar argumentos de línea de comandos
Una vez instalada una aplicación AIR es solo otra aplicación nativa, lo cual significa que el sistema operativo y usuarios pueden interactuar con esta en la misma forma en que lo hacen con cualquier otra aplicación. Por ejemplo, cosas como precarga de una aplicación a nivel de sistema operativo e intercambio de aplicación trabajan de la misma forma con las aplicaciones Adobe AIR que con las aplicaciones nativas.
El objetivo es que los usuarios finales no necesiten saber que están ejecutando una aplicación AIR para poder usarla. Ellos deben poder interactuar con la aplicación en la misma forma en la que ellos interactúan con otras aplicaciones ejecutándose en el escritorio.
Modelo de seguridad
Toda esta plática de APIs y funcionalidad de escritorio propicia una pregunta importante: ¿qué hay acerca de la seguridad? Debido a que las aplicaciones Adobe AIR tienen acceso a recursos locales, ¿no pueden estas, teóricamente, hacer algo dañino?
Primero, es importante notar que Adobe AIR se ejecuta sobre la capa del sistema operativo. Esto no prevé ninguna forma de eludir o subvertir esta seguridad. Esto es importante porque significa que las aplicaciones Adobe AIR pueden trabajar solamente con los permisos otorgados a estas por el sistema operativo y estarán sujetas a todas capacidades actuales y nuevas que el sistema operativo implemente.
Para ejecutar aplicaciones Adobe AIR un usuario debe descargar la aplicación sobre el escritorio hacer el ritual de instalación y entonces lanzar la aplicación. Esta es una experiencia similar a descargar e instalar una aplicación de escritorio. La similitud no es un accidente. Las aplicaciones Adobe AIR se ejecutan en un, fundamentalmente, diferente contenido de seguridad que una aplicación web. Es un contexto de seguridad más cercano al de una aplicación nativa que a una aplicación web.
Descripción del Modelo de Seguridad del Navegador
Para habilitar una navegación segura, el modelo de seguridad del navegador limita las capacidades de I/O (entrada/salida) de las aplicaciones web. Esto incluye restringir sus habilidades de trabajar con recursos locales limitando a lo que los recursos de red están accesibles y limitando su interfaz de usuario. El navegador solamente permite a las aplicaciones conectarse con datos que están asociados con (usualmente provistos por) un servidor ubicado en un dominio web único. Además, el navegador proporciona una interfaz de usuario de confianza para los usuarios para entender el origen de la aplicación y controlar el estado de la aplicación. Este modelo es suficiente para aplicaciones que están conectadas a un proveedor de servicio único y confiar en el servicio de sincronización de datos y almacenamiento.
Algunos desarrolladores web también han estirado el modelo de seguridad integrando datos desde múltiples fuentes y/o experimentando con interfaces de usuario que son inconsistentes con la apariencia del navegador. Algunas de estas aplicaciones requieren extras del navegador con capacidades que no son actualmente provistas por los navegadores. Otros toman ventaja de las características del navegador como la notificación al usuario o configuraciones de seguridad personalizadas para permitir mayor o menor seguridad para aplicaciones desde dominios específicos. Estos mecanismos permiten a los desarrolladores web construir aplicaciones más poderosas, pero reduciendo también el modelo de seguridad del navegador.
Implicaciones para el Modelo de Seguridad de AIR
En lugar de tratar de extender el navegador web para que pueda actuar como un navegador y un runtime de aplicación flexible, Adobe AIR provee un runtime flexible para construir aplicaciones usando tecnologías web. Adobe AIR permite a los desarrolladores web construir aplicaciones que incorporen data desde múltiples fuentes, provee a los usuarios control sobre donde y como son almacenados sus datos y produce experiencias de usuario que no son posibles dentro de la interfase del navegador. Debido a que las aplicaciones Adobe AIR deben ser instaladas en el escritorio y requieren a los usuarios aceptarlas específicamente, las aplicaciones AIR pueden seguramente ejercer estas capacidades. Las aplicaciones basadas en el navegador no pueden permitir estas capacidades si el navegador si el navegador continua ejerciendo su rol como una aplicación para navegar con seguridad cualquier sitio web en Internet.
El modelo de seguridad de Adobe AIR tiene una cantidad de implicaciones para desarrolladores de aplicaciones y usuarios. Para desarrolladores de aplicaciones, significa que el contenido dentro de una aplicación AID instalada tiene capacidades que no deberían estar expuestas en ningún contenido no permitido, incluyendo archivos de la Web. El runtime tiene varias características que han sido diseñadas para reforzar esa distinción y para ayudar a los desarrolladores a construir aplicaciones usando las mejores prácticas de seguridad.
Esto también significa que los usuarios no deben instalar aplicaciones de fuentes no confiadas. Estos es muy similar a las prácticas actuales para aplicaciones nativas de escritorio y para extras de los navegadores. Muchas aplicaciones y contenidos web requieren que un extra del navegador (como Flash Player o Apple Quicktime) sean instalados para funcionar. El navegador Firefox tiene una capa de extensibilidad muy accesible que esencialmente permite a cualquier desarrollador extender el navegador. Estas aplicaciones, extras y extensiones pueden hacer cosas potencialmente dañinas y por lo tanto, requieren que el usuario confiar en la fuente del contenido.
Finalmente, una de las capacidades incluidas en Adobe AIR es la habilidad de la runtime de verificar la identidad del publicador de una aplicación que ha sido digitalmente firmada por un certificado expedido por una Autoridad Certificadora (Certificate Authority, CA) de confianza. Los usuarios debe considerar cuidadosamente cuando ellos quieran confiar en el publicador de una aplicación así como si desean instalar una aplicación cuyo origen no puede ser verificada por la runtime.
Conjunto de Herramientas de Desarrollo de Adobe AIR
Una de las razones por las que las aplicaciones web han sido exitosas es que permiten a los desarrolladores implementar fácilmente aplicaciones que los usuarios pueden ejecutar sin importar en cual sistema operativo se encuentren. Ya sea Mac, Windows, Linux, Solaris o teléfonos celulares las aplicaciones web ofrecen cobertura.
Sin embargo, el éxito no está basado solo en la implementación multi-plataforma, sino que también en la naturaleza multi-plataforma del entorno de desarrollo. Esto asegura que cualquier desarrollador pueda desarrollar desde y para la tecnología. Ni la runtime ni las herramientas de desarrollo están vinculadas a un determinado sistema operativo.
Lo mismo puede decirse de Adobe AIR. No solo proporciona el alcance de las aplicaciones web, sino que, igualmente importante, las aplicaciones Adobe AIR pueden ser desarrolladas y empaquetadas virtualmente sobre cualquier sistema operativo.
Debido a que las aplicaciones Adobe AIR son construidas con tecnologías web existentes como HTML y Flash puedes usar las mismas herramientas que usas para crear contenido basado en el web para crear aplicaciones Adobe AIR. El SDK de Adobe AIR provee dos herramientas de línea de comandos que hacen posible probar, depurar y empaquetar aplicaciones Adobe AIR con, virtualmente, cualquier herramienta de diseño y desarrollo web.
| ADL | Permite a las aplicaciones Adobe AIR ser ejecutadas sin tener que instalarlas previamente. |
| ADR | Empaqueta aplicaciones Adobe AIR en paquetes de instalación distribuibles. |
Aunque Adobe ha añadido soporte a su propias herramientas de diseño y desarrollo web para autoría de contenido Adobe AIR (incluyendo Adobe Flex Builder, Adobe Flash CS3 y Adobe Dreamweaver), los programas de Adobe no son requeridos para crear contenido Adobe AIR. Usando las herramientas de línea de comandos puedes crear una aplicación AIR con cualquier herramienta de desarrollo web. Puedes usar las mismas herramientas de diseño y desarrollo que utilizas actualmente.
¿Adobe AIR es el fin de las Aplicaciones en el navegador?
En este punto, puedes estar diciéndote a ti mismo, "¡Adobe AIR suena grandioso! ¿Para qué debería alguien querer desarrollar otra vez una aplicación para el navegador? ¿Es Adobe AIR el fin de las aplicaciones web dentro del navegador?"
No.
Repitamos eso.
No.
Adobe AIR encausa muchos de los problemas con la implementación de aplicaciones a través del navegador. Sin embargo, todavía hay ventajas para el despliegue de aplicaciones a través del navegador. El hecho de que hay tantas aplicaciones web, a pesar de los inconvenientes discutidos anteriormente es un testimonio de las ventajas de correr en el navegador. Mientras esas ventajas superan los inconvenientes, los desarrolladores todavía implementan sus aplicaciones a través del navegador web.
Pero no es necesariamente una o otra pregunta. Porque las aplicaciones Adobe AIR son construidas usando tecnologías web, la aplicación que tu implementes a través del navegador puede ser fácilmente convertida en una aplicación Adobe AIR. Puedes tener una versión basada en el web que provea la funcionalidad basada en el navegador, y entonces también tener una versión basada en AIR que tenga las ventajas de correr en el escritorio. Ambas versiones pueden hacer uso de las mismas tecnologías, lenguajes y código base. De hecho, algunos de los más populares de las primeras aplicaciones Adobe AIR como twhirl y eBay Desktop, complementan a las aplicaciones web existentes.
Puedes encontrar más información sobre twhirl en http://www.twhirl.org.
Puedes encontrar más información sobre eBay Desktop en http://desktop.ebay.com.
Las aplicaciones Adobe AIR complementan a las aplicaciones web. No las reemplazan.
Table of Contents
- Prefacio
- Introducción a Adobe AIR