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