You are on page 1of 10

INSTITUTO TECNOLGICO SUPERIOR DE LERDO

Nmero y Nombre de Tarea: Tarea N 5 Arquitectura y entornos de desarrollo para


dispositivos mviles


Materia: Desarrollo de Aplicaciones para Dispositivos Mviles


Alumna: Miguel ngel Gaytan Gmez


No. de Control: 10231589


Fecha: 26 de Febrero del 2014






Cd. Lerdo, Dgo.
Instituto Tecnolgico Superior de Lerdo Ingeniera en Informtica

Tareas | 2

Arquitecturas para dispositivos mviles.

Este artculo forma parte de una serie de artculos donde ir explicando las distintas
arquitecturas que tenemos disponibles a la hora de desarrollar para mvil.
Modelo Nativo
Modelo Web
Modelo Hbrido
Modelo de Cdigo Interpretado
Modelo de Cdigo Generado

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.

Arquitectura 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 accedida 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 funcionalidad comn.
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:
Instituto Tecnolgico Superior de Lerdo Ingeniera en Informtica

Tareas | 3

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 grfico y de
procesamiento de imgenes, se requiere geo localizacin audio o video en tiempo real, se
busca la realidad aumentada, integridad transaccional con datos offline del telfono
Instagram para iOS o Mint.com son ejemplos de este enfoque.

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:
Instituto Tecnolgico Superior de Lerdo Ingeniera en Informtica

Tareas | 4


Arquitectura del Modelo WEB (Parte del Cliente).

Por lo tanto podramos resumirlo en que aqu la clave es construir la aplicacin usando
tecnologas web estndar como HTML (para definir 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 posible a las posibilidades que nos
ofrece HTML 5 y CSS 3, que incluyen bases de datos SQL, almacenamiento local,
animaciones, video, ejecucin offline
Esta arquitectura es muy interesante cuando buscamos algo barato y que cubra un rango
muy grande de plataformas con cambios mnimos.

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.
Instituto Tecnolgico Superior de Lerdo Ingeniera en Informtica

Tareas | 5


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
re-usarn ese cdigo a travs de las diferentes plataformas.
Ejemplos de este modelo seran la aplicacin android de la Wikipedia o la aplicacin
Instituto Tecnolgico Superior de Lerdo Ingeniera en Informtica

Tareas | 6

iPhone de LinkedIn.

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 escribir 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 intrprete 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 multiplataforma 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
virtual 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 fsica
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.

Instituto Tecnolgico Superior de Lerdo Ingeniera en Informtica

Tareas | 7


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. Angry Birds es un ejemplo de
este modelo (usa Lua como lenguaje principal).

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
partir de un mismo cdigo y un mismo lenguaje de programacin.
Instituto Tecnolgico Superior de Lerdo Ingeniera en Informtica

Tareas | 8


Diagrama Modelo de Cdigo Generado.

Un compilador multiplataforma 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 multiplataforma que transformar est cdigo en una aplicacin nativa
especfica para una plataforma objetivo. La aplicacin resultante de este proceso puede
ser desplegada y ejecutada de forma nativa en un dispositivo.


Entornos de Desarrollo para Dispositivos Mviles.

iOS SDK y Xcode 4
Xcode es el entorno de desarrollo que contiene los diferentes SDKs para la construccin
de aplicaciones para los sistemas de Appel (iOS y Mac). Se puede descargar de manera
gratuita desde la pgina para desarrolladores Apple http://developer.apple.com/xcode/
pero nicamente las personas que cuenten con Apple ID y estn registradas como
desarrolladores. El SDK de iOS cuenta con un emulador de iOS, pero si se van a probar
aplicaciones directamente en el dispositivo los desarrolladores deben pagar una cuota
anual de US$99 (que tambin incluye la publicacin de aplicaciones a travs de la Apple
Store).
Arranca de una creando tu primera aplicacin para iOS.

Android SDK y NDK
sdk-smallLas aplicaciones en Android se ejecutan sobre la Dalvik Virtual Machine (que es
una implementacin independiente de una maquina virtual de Java pero con una
arquitectura diferente), pero tambin se pueden crear aplicaciones que se ejecuten
directamente sobre el sistema operativo (llamadas aplicaciones Nativas).
Las aplicaciones se pueden desarrollar tanto de Java (para la DVM) como en C++
(aplicaciones nativas) a partir de sus respectivas herramientas de desarrollo:
Android SDK para crear aplicaciones con Java
Android NDK para crear aplicaciones con C++
Instituto Tecnolgico Superior de Lerdo Ingeniera en Informtica

Tareas | 9

Para la publicacin de aplicaciones, los desarrolladores deben estar registrados en el
Andoird Market y pagar una cuota de registro de US$25.

Symbian SDK
Symbian SDKSymbian es la plataforma que ofrece crear aplicaciones de diferentes
sabores. Symbian SDK permite la creacin de aplicaciones con Qt y Symbian C++ para
mviles S60, y con Java se pueden crear aplicaciones tanto para mviles S60 y S40.
Las aplicaciones se distribuyen a travs de la Ovi Store con un costo para los
desarrolladores, a la hora de registrarse, de 1.

Windows Phone 7 Developer Tools
Y no faltaba que revisramos como desarrollar para la nueva plataforma de Microsoft para
dispositivos mviles, pero, siendo mi rea de especialidad, lo dejo en un post ms amplio:
#wp7Dev Desarrollo sobre Windows Phone 7

Anlisis.

Las arquitecturas para los dispositivos mviles han cambiado a lo largo de la historia
desde que surgieron los primeros dispositivos mviles, y una esas primeras arquitecturas
fue la de modelo nativo que es la arquitectura donde se contienen las aplicaciones de
manera local en el dispositivo y son solo exclusivas para dicho sistema operativo o dicho
dispositivo, posteriormente con las nuevas necesidades de comunicacin de los
dispositivos mviles surgieron las arquitecturas de modelo web que son aquellas en las
que las aplicaciones del dispositivo necesitan del navegador WEB para ejecutar dichas
aplicaciones; y as sucesivamente hasta llegar a aplicaciones hbridas las cuales son
aplicaciones nativas del dispositivo pero que tienen un mdulo de la aplicacin embebido
en la WEB para hacer uso de ciertos recursos y son las que mayormente se utilizan en la
actualidad.
Por otra parte los entornos de desarrollo para los dispositivos mviles tambin ha ido en
crecimiento permitiendo tener entornos con mayor infraestructura para poder desarrollar
aplicaciones cada vez ms complejas y no aquellas que se desarrollaban en un principio
como simples agendas sincronizadas con la fecha del dispositivo o un reloj, etc. Sino que
ahora se puede llegar a tener entornos de desarrollo que incluyen libreras y herramientas
para poder realizar multiples tareas con un dispositivo mvil como conectarlo a una base
de datos en la nube, desarrollo de juegos con mayores grficos, aplicaciones multimedia,
de redes sociales y un gran nmero de aplicaciones para las distintas necesidades que
estos entornos de desarrollo permiten desarrollar para los diferentes sistemas operativos
para mviles existentes hoy en da.








Instituto Tecnolgico Superior de Lerdo Ingeniera en Informtica

Tareas | 10

Bibliografa.

http://desarrollomovilmultiplataforma.blogspot.mx/2012/11/arquitecturas-para-desarrollo-
movil.html
http://java4developers.com/2013/entornos-de-desarrollo-movil/
http://qjuanp.net/post/dev/2011/plataformas-desarrollo-aplicaciones-moviles

You might also like