Plataformas de desarrollo móviles actuales.docx

13
Capítulos 4 Plataformas de desarrollo móviles actuales 4.1 Android Android es un sistema operativo basado en Linux, diseñado principalmente para dispositivos móviles con pantalla táctil como teléfonos inteligentes o tabletas inicialmente desarrollados por Android, Inc., que Google respaldó económicamente y más tarde compró en 2005, Android fue presentado en 2007 junto la fundación del Open Handset Alliance: un consorcio de compañías de hardware, software y telecomunicaciones para avanzar en los estándares abiertos de los dispositivos móviles. La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en un framework Java de aplicaciones orientadas a objetos sobre el núcleo de las bibliotecas de Java en una máquina virtual Dalvik con compilación en tiempo de ejecución. Las bibliotecas escritas en lenguaje C incluyen un administrador de interfaz gráfica (surface manager), un framework OpenCore, una base de datos relacional SQLite, una Interfaz de programación de API gráfica OpenGL ES 2.0 3D, un motor de renderizado WebKit, un motor gráfico SGL, SSL y una biblioteca estándar de C Bionic. El sistema operativo está compuesto por 12 millones de líneas de código, incluyendo 3 millones de líneas de XML, 2,8 millones de líneas de lenguaje C, 2,1 millones de líneas de Java y 1,75 millones de líneas de C++. Etimología Tanto el nombre Android (androide en español) como Nexus One hacen alusión a la novela de Philip K. Dick ¿Sueñan los androides con ovejas eléctricas?, que posteriormente fue adaptada al cine como Blade Runner. Tanto el libro como la película se centran en un grupo de androides llamados replicantes del modelo Nexus-6.

Transcript of Plataformas de desarrollo móviles actuales.docx

Page 1: Plataformas de desarrollo móviles actuales.docx

Capítulos 4 Plataformas de desarrollo móviles actuales

4.1 Android

Android es un sistema operativo basado en Linux, diseñado principalmente para dispositivos móviles con pantalla táctil como teléfonos inteligentes o tabletas inicialmente desarrollados por Android, Inc., que Google respaldó económicamente y más tarde compró en 2005, Android fue presentado en 2007 junto la fundación del Open Handset Alliance: un consorcio de compañías de hardware, software y telecomunicaciones para avanzar en los estándares abiertos de los dispositivos móviles.

La estructura del sistema operativo Android se compone de aplicaciones que se ejecutan en un framework Java de aplicaciones orientadas a objetos sobre el núcleo de las bibliotecas de Java en una máquina virtual Dalvik con compilación en tiempo de ejecución. Las bibliotecas escritas en lenguaje C incluyen un administrador de interfaz gráfica (surface manager), un framework OpenCore, una base de datos relacional SQLite, una Interfaz de programación de API gráfica OpenGL ES 2.0 3D, un motor de renderizado WebKit, un motor gráfico SGL, SSL y una biblioteca estándar de C Bionic. El sistema operativo está compuesto por 12 millones de líneas de código, incluyendo 3 millones de líneas de XML, 2,8 millones de líneas de lenguaje C, 2,1 millones de líneas de Java y 1,75 millones de líneas de C++.

Etimología

Tanto el nombre Android (androide en español) como Nexus One hacen alusión a la novela de Philip K. Dick ¿Sueñan los androides con ovejas eléctricas?, que posteriormente fue adaptada al cine como Blade Runner. Tanto el libro como la película se centran en un grupo de androides llamados replicantes del modelo Nexus-6.

El logotipo es el robot "Andy".

Arquitectura

Los componentes principales del sistema operativo de Android:

Aplicaciones: las aplicaciones base incluyen un cliente de correo electrónico, programa de SMS, calendario, mapas, navegador, contactos y otros. Todas las aplicaciones están escritas en lenguaje de programación Java.

Marco de trabajo de aplicaciones: los desarrolladores tienen acceso completo a los mismos APIs del framework usados por las aplicaciones base. La arquitectura está diseñada para simplificar la reutilización de componentes; cualquier aplicación puede publicar sus capacidades y cualquier otra aplicación puede luego hacer uso de esas capacidades (sujeto a reglas de seguridad del framework). Este mismo mecanismo permite que los componentes sean reemplazados por el usuario.

Page 2: Plataformas de desarrollo móviles actuales.docx

Bibliotecas: Android incluye un conjunto de bibliotecas de C/C++ usadas por varios componentes del sistema. Estas características se exponen a los desarrolladores a través del marco de trabajo de aplicaciones de Android; algunas son: System C library (implementación biblioteca C estándar), bibliotecas de medios, bibliotecas de gráficos, 3D y SQLite, entre otras.

Runtime de Android: Android incluye un set de bibliotecas base que proporcionan la mayor parte de las funciones disponibles en las bibliotecas base del lenguaje Java. Cada aplicación Android corre su propio proceso, con su propia instancia de la máquina virtual Dalvik. Dalvik ha sido escrito de forma que un dispositivo puede correr múltiples máquinas virtuales de forma eficiente. Dalvik ejecuta archivos en el formato Dalvik Executable (.dex), el cual está optimizado para memoria mínima. La Máquina Virtual está basada en registros y corre clases compiladas por el compilador de Java que han sido transformadas al formato.dex por la herramienta incluida "dx".

Núcleo Linux: Android depende de Linux para los servicios base del sistema como seguridad, gestión de memoria, gestión de procesos, pila de red y modelo de controladores. El núcleo también actúa como una capa de abstracción entre el hardware y el resto de la pila de software.

Figura 1. Arquitectura Android.

4.2 Blackberry

El BlackBerry OS es un sistema operativo móvil desarrollado por BlackBerry para sus dispositivos BlackBerry. El sistema permite multitarea y tiene soporte para diferentes métodos de entrada adoptados por RIM para su uso en computadoras de mano, particularmente la trackwheel, trackball,  touchpad y pantallas táctiles.

Page 3: Plataformas de desarrollo móviles actuales.docx

Su desarrollo se remonta la aparición de los primeros handheld en 1999. Estos dispositivos permiten el acceso a correo electrónico, navegación web y sincronización con programas como Microsoft Exchange o Lotus Notes aparte de poder hacer las funciones usuales de un teléfono móvil.

El SO BlackBerry está claramente orientado a su uso profesional como gestor de correo electrónico y agenda. Desde la cuarta versión se puede sincronizar el dispositivo con el correo electrónico, el calendario, tareas, notas y contactos de Microsoft Exchange Server además es compatible también con Lotus Notes y Novell GroupWise.

BlackBerry Enterprise Server (BES) proporciona el acceso y organización del email a grandes compañías identificando a cada usuario con un único BlackBerry PIN. Los usuarios más pequeños cuentan con el software BlackBerry Internet Service, programa más sencillo que proporciona acceso a Internet y a correo POP3 / IMAP / Outlook Web Access sin tener que usar BES.

Figura 2. Arquitectura Blackberry.

4.3 iOS (iPhone)

iOS es un sistema operativo móvil de la empresa Apple Inc. Originalmente desarrollado para el iPhone (iPhone OS), siendo después usado en dispositivos como el iPod Touch,  iPad y el Apple TV. Apple, Inc. no permite la instalación de iOS en hardware de terceros. Tenía el 26% de cuota de mercado de sistemas operativos móviles vendidos en el último cuatrimestre de 2010, detrás de Google Android y Nokia Symbian. En mayo de 2010 en los Estados Unidos, tenía el 59% de consumo de datos móviles (incluyendo el iPod Touch y el iPad).

La interfaz de usuario de iOS está basada en el concepto de manipulación directa, usando gestos multitáctiles. Los elementos de control consisten de deslizadores, interruptores y botones. La respuesta a las órdenes del usuario es inmediata y provee de una interfaz fluida. La interacción con el sistema operativo incluye gestos como deslices, toques, pellizcos, los cuales tienen definiciones diferentes dependiendo del contexto de la interfaz. Se utilizan acelerómetros internos para hacer que algunas aplicaciones respondan a

Page 4: Plataformas de desarrollo móviles actuales.docx

sacudir el dispositivo (por ejemplo, para el comando deshacer) o rotarlo en tres dimensiones (un resultado común es cambiar de modo vertical al apaisado u horizontal).

Arquitectura iOS

La arquitectura de esta plataforma toma como base el núcleo del sistema Mac OS X e incorpora una nueva capa que da soporte a la interfaz multi-touch.

Figura 3. Arquitectura iOS.

4.4 JavaME

La plataforma Java Micro Edition (Java ME), o anteriormente Java 2 Micro Edition (J2ME), es una especificación de un subconjunto de la plataforma Java orientada a proveer una colección certificada de APIs de desarrollo de software para dispositivos con recursos restringidos. Está orientado a productos de consumo como PDAs, teléfonos móviles o electrodomésticos.

Java ME se ha convertido en una buena opción para crear juegos en teléfonos móviles debido a que se puede emular en un PC durante la fase de desarrollo y luego subirlos fácilmente al teléfono. Al utilizar tecnologías Java el desarrollo de aplicaciones o videojuegos con estas APIs resulta bastante económico de portar a otros dispositivos.

Java ME está basada en configuraciones y perfiles de dispositivo.

Page 5: Plataformas de desarrollo móviles actuales.docx

Figura 4. Arquitectura Java Micro Edition

4.5 Symbian

Symbian es un sistema operativo producto de la alianza de varias empresas de telefonía móvil, entre las que se encontraban Nokia, Sony Mobile Communications, Psion, Samsung, Siemens, Arima, Benq, Fujitsu, Lenovo, LG, Motorola, Mitsubishi Electric, Panasonic, Sharp. Sus orígenes provenían de su antepasado EPOC32, utilizado en PDA's y Handheldsde PSION.

El objetivo de Symbian fue crear un sistema operativo para terminales móviles que pudiera competir con el de Palm o el Windows Mobile 6.X de Microsoft y ahora Android de Google Inc. , iOS de Apple Inc. y BlackBerry OS de Blackberry.

El 11 de febrero de 2011, Nokia anunció una alianza con Microsoft que verlo adoptar Windows Phone como su principal plataforma de teléfonos inteligentes, y Symbian será su plataforma de franquicia. Como consecuencia de ello, el uso de la plataforma Symbian para la construcción de las aplicaciones móviles cayó rápidamente. La investigación en junio de 2011 indicó que más del 39% de los desarrolladores de aplicaciones móviles que utilizan Symbian en el momento de la publicación estaba planeando abandonar la plataforma.

Figura 5. Arquitectura Symbian.

4.6 Windows Phone

Es un sistema operativo móvil desarrollado por Microsoft, como sucesor de la plataforma Windows Mobile. A diferencia de su predecesor, está enfocado en el mercado de consumo generalista en lugar del mercado empresarial. Con Windows Phone, Microsoft ofrece una nueva interfaz de usuario que integra varios servicios propios como SkyDrive, Skype y Xbox Live en el sistema operativo.

El 29 de octubre de 2012 se lanzó al mercado la última versión del sistema operativo, Windows Phone 8 solo para nuevos dispositivos, debido a un cambio completo en el kernel que lo hace incompatible con dispositivos basados en la versión anterior, fragmentando de esta forma el mercado de aplicaciones disponibles. Esta versión incluye nuevas funciones que de acuerdo a Microsoft lo harán competitivo con sistemas operativos como iOS de Apple o Android de Google.

Page 6: Plataformas de desarrollo móviles actuales.docx

El 11 de febrero de 2011, en un evento de prensa en Londres, el CEO de Microsoft, Steve Ballmer, y Stephen Elop, CEO de Nokia anunciaron una alianza entre sus empresas en las que Windows Phone se convertiría en el principal sistema operativo para smartphones de Nokia. El evento se centró en gran medida de la creación de “un nuevo ecosistema móvil global”, lo que sugiere la competencia con Android y iOS diciendo: “Ahora es una carrera de tres caballos”. La integración de servicios de Microsoft con servicios propios de Nokia se parecía en que Bing sería el buscador de los dispositivos Nokia, así como la integración de Nokia Maps con Bing Maps, igualmente la tienda de aplicaciones de Nokia se integra con el Windows Phone Marketplace.

Arquitectura

Windows Phone es un sistema operativo de 32-bit mediante una arquitectura de doble capa compuesta por una capa de núcleo y una capa de usuario. Cuenta con una memoria virtual para ambos procesos.

4.7 PhoneGap

PhoneGap es una propuesta de licencia OpenSource (código abierto), basada en JavaScript, que permite crear aplicaciones para dispositivos móviles utilizando HTML5 y CSS3. Esta nueva tecnología soporta el desarrollo de aplicaciones para los sistemas Android, IOS, BlackBerry, Windows Phone y Symbian.

Esta herramienta maneja APIs que permiten el acceso y control de elementos como el acelerómetro, cámara, contactos en el dispositivo, red, almacenamiento, notificaciones, entre otras.

PhoneGap cuenta con dos grandes ventajas al momento del desarrollo: se pueden ejecutar las aplicaciones en nuestro navegador web, sin depender de un simulador dedicado a esta tarea.

Lo que PhoneGap intenta es solucionar la complejidad a la que nos enfrentamos cuando queremos desarrollar una aplicación móvil y tenemos que decidir en qué plataforma vamos a trabajar, y por lo tanto que lenguaje de programación tendremos que aprender, porque las aplicaciones Android se desarrollan usando Java, iOS usa Objetive C como lenguaje de desarrollo y Symbian usa C++. Estamos entonces hablando de manejar muchos lenguajes de programación para desarrollar una sola aplicación para dispositivos móviles, eso sin mencionar todos los SDKs que debemos instalar para lograr esto.

Con PhoneGap hacemos un solo código cuya lógica de programación está sustentada en JavaScript, de esta forma no estamos obligados a aprender varios lenguajes de programación para poder migrar el código fuente que se hizo para una plataforma.

Podríamos definir entonces a PhoneGap como un framework para el desarrollo de aplicaciones nativas de sistemas operativos móviles, que hace uso de tecnologías web como HTML5, CSS3 y JavaScript. 

Page 7: Plataformas de desarrollo móviles actuales.docx

Inicialmente, fue desarrollado por Nitobi bajo licencias de software libre, pero para Octubre de 2011 Adobe anunció oficialmente la adquisición de Nitobi, pasando, así PhoneGap al control de Adobe. Esto generó una gran incertidumbre entre los desarrolladores, pues el framework podía pasar a ser una tecnología propietaria, pero Adobe donó PhoneGap a la fundación Apache, conservando de esta forma la integridad libre de PhoneGap.En la actualidad, el proyecto en el sitio web de la fundación Apache esta nombrado como: "Apache Cordova", pero PhoneGap sigue siendo una especie de marca comercial, por lo que aún se sigue usando ese nombre para identificarlo.  PhoneGap también es compatible con frameworks de desarrollo web móvil como jQuery Mobile, Sencha Touch, Dojo, jQTouch, SprountCore, GloveBox, XUI, iScroll, entre otros.  

Arquitectura PhoneGap

El cliente PhoneGap se comunica con un servidor de aplicaciones para recibir datos. El servidor de aplicaciones maneja una lógica de negocio para comunicarse con una base de datos o repositorio.

Figura 6. Arquitectura PhoneGap

El servidor de aplicaciones es normalmente un servidor web (Apache, IIS) con un lenguaje de scripting como ColdFusion, Java, .NET, PHP. PhoneGap desconoce las tecnologías que subyacen y puede trabajar con cualquier servidor de aplicaciones usando protocolos web standards.

4.8 SAP

En comparación con los otros principales proveedores de software independientes (ISV), SAP apostó primero por la movilidad. Su última oferta móvil, Sybase Unwired Platform (SUP), ha madurado rápidamente desde su lanzamiento inicial en el 2010, proporcionando un entorno flexible de desarrollo de aplicaciones con plug-ins para Eclipse y Visual Studio, junto con un estudio propio. A pesar de que tiene una curva de aprendizaje más pronunciada que muchas otras soluciones, es una excelente opción para ampliar las iniciativas móviles, especialmente en relación con la gestión de dispositivos móviles (MDM) Afaria de SAP.

Page 8: Plataformas de desarrollo móviles actuales.docx

Figura 7. Arquitectura SUP

4.9 Comparativa principales plataformas de desarrollo móvil

En este apartado vamos a describir las características de las principales plataformas móviles disponibles en la actualidad. Las plataformas comparadas y la versión que se ha utilizado como referencia se muestran a continuación: 

Page 9: Plataformas de desarrollo móviles actuales.docx

Figura 8. Características de las principales plataformas de desarrollo móvil.

Otro aspecto fundamental a la hora de comparar las plataformas móviles es su cuota de mercado. En la siguiente gráfica podemos ver un estudio realizado por la empresa Gratner Group, donde se muestra la evolución del mercado de los sistemas operativos para móviles según el número de terminales vendidos. Podemos destacar: el importante descenso de ventas de la plataforma Symbian de Nokia; el declive continuo de BlackBerry; como la plataforma de Windows que parece que no despega; como Apple tiene afianzada una cuota de mercado en torno al 15%. Finalmente destacamos el espectacular ascenso de la plataforma Android, que le ha permitido alcanzar en dos años una cuota de mercado superior al 75%. 

Page 10: Plataformas de desarrollo móviles actuales.docx

Grafica 1: Porcentaje de teléfonos inteligentes vendidos según su sistema operativo hasta el tercer cuarto del 2013 en el mundo (fuente: Gartner Group).