• No results found

Define the radiation specification/levels

5.2 Total ionizing dose

5.2.2 Define the radiation specification/levels

En esta sección se describen algunas de las estrategias que puedes emplear para implementar tus aplicaciones en diferentes plataformas.

Soporte Directo

Puedes soportar varias plataformas si cuentas con un equipo especializado para cada plataforma objetivo. Si bien esto puede consumir muchos recursos, es muy probable que te dé mejor integración y experiencia de usuario en cada sistema. Una vía fácil de inicio es comenzar con una plataforma y luego pro- gresar hacia plataformas adicionales una vez que tu aplicación se ha defendido en el mundo real.

Las librerías de componentes pueden ayudarte a acelerar el desarrollo nativo, ejemplos populares se muestran en la siguiente tabla.

Librería de Componentes Plataformas Objetivo

cocoacontrols.com iOS

chupamobile.com Android, iOS

verious.com Android, iOS, HTML5, Windows

Phone

windowsphonegeek.com/Marketplace Windows Phone

Compartición de Recursos

Cuando mantienes varios equipos para diferentes plataformas puedes ahorrar mucho esfuerzo si compartes algunas estructu- ras de la aplicación:

Hacia Multiplataforma 118

Concepto y recursos: Esto se hace habitualmente de forma automática: compartir las ideas y los conceptos de la aplicación, el flujo de interfaz de usuario, input y output y los recursos gráficos de la aplicación (pero debes ser consciente de la necesidad de dar soporte a las estructuras específicas de interfaz de usuario de cada plataforma).

Estructuras de datos y algoritmos: Vé un paso más allá compartiendo estructuras de datos y algoritmos entre plataformas.

Compartición de código del modelo de negocio: Utilizando compiladores de multiplataforma también puedes compartir el modelo de negocio entre las plata- formas. Alternativamente, puedes utilizar un intérprete o una máquina virtual y un lenguaje común en un grupo de plataformas.

Abstracción completa: Algunas herramientas multiplata- forma te permiten abstraerte completamente del modelo de negocio, las vistas y el control de tu aplicación para diferentes plataformas.

Reproductores y Máquinas Virtuales

Los reproductores suelen proporcionar un conjunto común de APIs sobre distintas plataformas. Ejemplos famosos incluyen Flash, Java ME y Lua. Este enfoque hace que el desarrollo sea muy fácil. Te vuelves dependiente, sin embargo, del proveedor de la plataforma para incorporar nuevas características, por lo que el reto aquí se da cuando las funciones están disponibles en una única plataforma. A menudo los reproductores tienden

119

a utilizar una aproximación de “mínimo común denominador” respecto a las funciones ofertadas para mantener la unifor- midad entre las implementaciones para varias plataformas. Generadores de código como Applause3 llevan el concepto de

reproductor un paso más allá, a menudo son específicos del dominio y permiten generar aplicaciones a partir de datos. También suelen carecer de flexibilidad en comparación con las soluciones programables.

Compilación Cruzada

La compilación cruzada permite la programación en un lenguaje que es transformado en el lenguaje específico de una platafor- ma diferente. En términos de rendimiento a menudo es la mejor solución de multiplataforma, aunque puede haber diferencias en comparación con las aplicaciones nativas. Esto puede darse, por ejemplo, cuando ciertas construcciones de programación no pueden ser traducidas de manera óptima desde el código fuente al lenguaje de destino.

Hay tres enfoques habituales para la compilación cruzada: traducción directa del código fuente, de forma indirecta medi- ante la traducción del código fuente en un lenguaje intermedio abstracto, y recopilación directa en el formato binario de una plataforma. El enfoque indirecto típicamente produce código menos legible. Este es un problema potencial cuando se desea continuar con el desarrollo en la plataforma de destino usando el código fuente traducido como punto de partida.

Aplicaciones Web (Híbridas)

En la tabla siguiente se enumeran algunos de los frameworks de aplicaciones web disponibles. Con estos entornos se pueden crear aplicaciones web que se comportan casi como aplicacio- nes reales, incluyendo capacidades offline. Sin embargo, ten en cuenta que las tecnologías tienen limitaciones cuando se trata de aspectos como la integración en plataforma o rendimiento.

Hacia Multiplataforma 120

Lee el capítulo “Tecnologías Web” para aprender más acerca del desarrollo web móvil.

Solución Web App Licencia Plataformas de destino

Chrome Apps

developer.chrome.com/apps BSD Android, Mac, Windows

jQuery Mobile

www.jquerymobile.com

MIT y GPL Android, BlackBerry,

Firefox, iOS, Windows Phone

Sencha Touch

www.sencha.com/products/ touch

GPL Android, BlackBerry,

iOS, Windows Phone The M Project

the-m-project.org MIT y GPL Android, BlackBerry, Firefox, iOS, Windows

Normalmente no tienes acceso a las características de hard- ware y elementos nativos de interfaz de usuario, por lo que en nuestra opinión no cuentan como soluciones multiplataforma “reales”; estas soluciones, por lo tanto, no aparecen en la tabla al final de este capítulo.

El desarrollo web híbrido implica insertar una webview dentro de una aplicación nativa. Esta aproximación te permite acceder a las funciones nativas desde los componentes web de tus aplicaciones y también utilizar código nativo para mejorar el rendimiento o aspectos críticos de la experiencia de usuario de tu aplicación. Las aplicaciones híbridas permiten reutilizar elementos de desarrollo web en las plataformas que hayas elegido (un buen ejemplo de entorno híbrido es PhoneGap).

Hacia Multiplataforma 121

ANSI C

Mientras que el HTML y la programación web se crean a partir de un nivel de abstracción muy elevado, también puedes elegir el camino opuesto utilizando ANSI C. Puedes ejecutar código ANSI C en todas las plataformas importantes, como Android, BlackBerry 10, iOS y Windows 8/Windows Phone. El principal problema con esta opción es que no puedes acceder a las APIs específicas de plataforma ni los controles de interfaz de usuario desde dentro de ANSI C. Utilizar C es especialmente adecuado para algoritmos complejos, como los codificadores de audio. Las librerías correspondientes se pueden utilizar en todos los proyectos de aplicaciones para una plataforma.

Frameworks de Aplicaciones

Related documents