herramientas para desarrollo de aplicaciones moviles

9
INGENIERÍA EN SOFTWARE Ingeniería en Software Herramientas de desarrollo para dispositivos móviles. Desarrollo de aplicaciones móviles Ing. Rene Domínguez Escalona Sistema Dual 8vo Cuatrimestre BELLO MAGAÑA MARÍA SILVIA 2817IS

Upload: silvia-bello

Post on 03-Mar-2017

35 views

Category:

Education


3 download

TRANSCRIPT

INGENIERÍA EN SOFTWARE

Ingeniería en SoftwareHerramientas de desarrollo para dispositivos

móviles.Desarrollo de aplicaciones móviles

Ing. Rene Domínguez EscalonaSistema Dual

8vo Cuatrimestre

BELLO MAGAÑA MARÍA SILVIA

2817IS

INGENIERÍA EN SOFTWARE

IntroducciónLos rápidos avances tecnológicos, el surgimiento de dispositivos que facilitan la movilidad de la información y comunicación, así como los cambios de paradigmas en las sociedades permiten descubrir alternativas innovadoras, que ayudan a eliminar barreras que impiden el desarrollo académico y el conocimiento en la población, creando nuevos ambientes de aprendizaje que son el fruto del aprovechamiento tecnológico de esta nueva era.Las necesidades y los retos en la educación actualmente generan la necesidad de diseñar más y mejores estrategias, utilizando todos los recursos disponibles, ya sean humanos o tecnológicos. De esa manera, muchas estrategias educativas han adoptado modelos de aprendizaje que hacen uso de las tecnologías de la información (TIC’S) para reforzar el proceso de generación del conocimiento. El uso de aplicaciones de software en éste ámbito, ha originado el desarrollo de múltiples herramientas computacionales en todos los niveles educativos, que van por ejemplo desde aplicaciones para comprobar conceptos o fórmulas matemáticas, hasta aplicaciones que dan seguimiento a todo un curso incluyendo etapas de evaluación del conocimiento. Por otra parte, el desarrollo de software orientado al ámbito educativo ha extendido sus alcances, así, las aplicaciones tecnológicas y los medios para usarlas han evolucionado de tal forma que ya no está limitado a una computadora personal (PC), si no que se ha extendido al uso de dispositivos móviles (teléfonos celulares, Smartphone y TabletPC ) para lograr un mayor alcance, obtener los beneficios que el cómputo móvil ofrece al sector educativo, dando como resultado la creación de un modelo tecnológico.

Objetivo GeneralDesarrollar un documento monográfico de las herramientas para el desarrollo de aplicaciones en dispositivos móviles.

Objetivo específico

Hacer un análisis comparativo de las herramientas para identificar ventajas y desventajas en el desarrollo de aplicaciones

INGENIERÍA EN SOFTWARE

Herramientas de desarrollo para dispositivos móviles.

En cualquier ámbito de programación, hoy en día se cuenta con infinidad de herramientas disponibles, lenguajes y entornos para poder desarrollar. Todas esas opciones hacen que, en ocasiones, sea muy complicado decidirse por una opción u otra.En el mundo del desarrollo para móviles y tabletas pasa lo mismo. Actualmente dispones de muchas opciones entre ellas se encuentran:1. Los lenguajes y herramientas nativos de cada plataforma: ObjectiveC/Swift

y XCode en iOS, Java y Android Studio en Android, C#, XAML y Visual Studio en el caso de Windows Phone y Windows 8....

2. Herramientas multiplataforma que compilan a código nativo. La más conocida y utilizada es Xamarin.

3. Herramientas multiplataforma basadas en HTML. La más conocida es PhoneGap/Apache Cordova, pero existen muchas más.

Desarrollo NativoEstá claro que, el desarrollo nativo es la mejor gran opción. El problema es

que cada plataforma (iOS, Android, WP...) es un mundo. Cada una de ellas utiliza un lenguaje de programación diferente, herramientas propias y paradigmas de programación particulares. A cambio se obtiene la máxima flexibilidad, adaptación total al entorno en el que se ejecuta la aplicación y el máximo rendimiento.

Desarrollo multiplataforma compilado a nativoUna opción de compromiso es utilizar alguna plataforma de desarrollo mixta

que independiza el desarrollo del lenguaje nativo de cada plataforma móvil.Con este tipo de herramientas se utiliza un único lenguaje y se crean

aplicaciones para todas las plataformas, eso sí, adaptando algunas cuestiones para poder funcionar en cada caso. Lo bueno es que permite conocer un solo lenguaje, reutilizar gran parte del código entre todas, y generar aplicaciones nativas para todos los entornos móviles.

La más conocida es, sin duda, Xamarin. Está basada en el lenguaje C# de Microsoft y en la plataforma .NET, y gracias a sus herramientas permite crear aplicaciones para todas las plataformas, reutilizando gran parte del código (a excepción de la interfaz).

Las aplicaciones escritas con Xamarin en C# se compilan a código nativo en cada plataforma, por lo que su rendimiento es exactamente el mismo que el de una aplicación nativa. Además, ofrece acceso directo nativo a todas las APIs de cada plataforma, así como a los controles de interfaz de usuario nativos.

INGENIERÍA EN SOFTWARE

(Captura obtenida de la propia web de Xamarin)

Desarrollo multiplataforma basado en HTML5Las apps escritas en HTML5 y compiladas con PhoneGap, permiten crear la

interfaz usando HTML, CSS y JavaScript, lenguajes muy conocidos y utilizados, y desplegar a las diferentes plataformas. En cada una se puede utilizar un “skin” concreto para que el aspecto sea lo más similar posible al de las aplicaciones nativas. PhoneGap y similares crean un contenedor para la aplicación que la ejecuta como si estuviesen en un servidor web local. Además, exponen gran parte de la funcionalidad nativa del dispositivo móvil a través de librerías JavaScript, de modo que es muy sencillo “engancharse” desde la aplicación HTML5 que se creando.PhoneGap es una plataforma muy interesante si eres un programador web y si además tu aplicación dispone de una versión web.

Entre las desventajas principales están que la aplicación no tiene el mismo rendimiento que una app nativa, ni tampoco te dan acceso a todas las APIs nativas de cada plataforma. aunque sí a todas las importantes. Además, aunque algunas bibliotecas como jQuery Mobile te dan la opción de adaptarse al aspecto de cada sistema operativo móvil, no puedes simular todos los controles nativos (aunque sí muchos de ellos).

SoftwareEl sistema operativo Android permite utilizar una variante del lenguaje Java

para programar los dispositivos móviles. En este sentido, muchas de las librerías Java disponibles para ordenadores de escritorio se pueden utilizar bajo condiciones de operación Android. Sería el caso, por ejemplo, de la librería Java Topology Suite (JTS), que ha sido tratada en la sección correspondiente a librerías.

Existen por otra parte librerías específicas desarrolladas para Android, como es el caso de Mapsforge, pensada para visualizar información cartográfica en dispositivos Android.

INGENIERÍA EN SOFTWARE

La utilización de Java permite también que librerías inicialmente pensadas para ser utilizadas en dispositivos móviles puedan ser reutilizadas en ordenadores de escritorio bajo entorno Java. En general la diferencia está en la parte gráfica de Java: En el caso de ordenadores de escritorio es usual utilizar el entorno Swing que no es compatible con Android.

Las principales librerías y programas disponibles en código abierto son:

OpenLayers y LeafLet:

En ambos casos se trata de librerías Javascript cuyo objetivo es la visualización de información cartográfica en entornos de Web-mapping. Los dispositivos móviles disponen de navegadores que interpretan el Javascript, por lo que, en general, es posible utilizar las librerías Javascript para visualizaciones desde dispositivos móviles, sean estos Android, iOS u otros. Las páginas web basadas en OpenLayers o Leaflet permiten su visualización en dispositivos móviles a través del navegador. En el caso de OpenLayers versión 2 hay que tener algunas precauciones al programar las páginas. La futura versión 3 de OpenLayers superará estas limitaciones. El funcionamiento de estas librerías se ha tratado en la sección correspondiente a Librerías.

OSMDroid:

El objetivo de OSMDroid es proporcionar una librería Java-Android para visualizar mapas en dispositivos Android. Ofrece una clase MapView para sustituir a la que viene de serie en Android que permite la visualización de tiles de OpenStreetMap. Se pueden visualizar tiles en modo on-line y en modo off-line. También proporciona clases para visualizar e interactuar con overlays, marcadores y otros.

MapsForge:

Mapsforge es una librería Open Source que permite gestionar la visualización de mapas de OpenStreetMap en los dispositivos Android. Es ligera, ocupa unos 300 Kb. Los mapas tienen un formato vectorial binario que los hace también ligeros. Utiliza un elemento MapView similar al del API de Google. Tiene una buena API para overlays (capas vectoriales superpuestas). Se pueden personalizar los estilos de renderización de los mapas. Tiene una herramienta para crear mapas a medida a través de Osmosis. Algunos puntos débiles serían que no dispone de API para Bubbles y no limita la extensión del mapa.

OsmAnd:

Es una herramienta de navegación y routing para trabajar desde dispositivos Android con cartografía procedente de OpenStreetMap. Puede trabajar online y offline, previa descarga de los mapas. Proporciona instrucciones de navegación de forma visual y mediante voz sintetizada. La navegación y el routing es adaptable a vehículos automóviles, bicicletas o peatones. Permite mostrar la posición GPS del

INGENIERÍA EN SOFTWARE

dispositivo y su orientación sobre la cartografía. Se puede mostrar el mapa orientado con el Norte arriba o en modo head-up o proa-arriba.

GeoPaparazzi:

Permite tomar fotografías y notas georeferenciadas desde dispositivos Android, para poder ser visualizadas posteriormente con otras herramientas GIS. También proporciona una herramienta de tracking durante los recorridos.

gvSIGMini:

Es un cliente visualizador de cartografía para Android. Proporciona clientes WMS y WMS-C. Permite la búsqueda de direcciones y el cálculo de rutas. Trabaja en modo on-line y off-line. Se pueden superponer varias capas. Proporciona funciones de navegación GPS y posicionamiento por GPS o por red telefónica. Se puede compartir la posición a través de las redes sociales (Twitter, Facebook) o por SMS y eMail. Permite la integración de Street View.

Graphhopper:

Es una herramienta de routing que trabaja con datos de OpenStreetMap. Se puede utilizar desde dispositivos Android, a través de su integración con MapsForge. También es posible utilizarlo desde páginas web como un servicio mediante llamadas HTTP desde Java o Javascript. Desde aplicaciones Java de escritorio es posible trabajar con Graphhopper en modo off-line. Se pueden calcular rutas para automóviles, bicicletas o paseos andando. También se pueden crear vehículos personalizados.

OsmSharp:

Es una herramienta para trabajar con cartografía de OpenStreetMap. Permite la visualización de información vectorial y el cálculo de rutas. Se puede utilizar en Android, iOS y WindowsPhone, así como en Linux, Windows y OSX.

Glob3Mobile:

El proyecto Glob3 Mobile, desarrollado por IGO SOFTWARE y ULPGC con el respaldo de organismos públicos y privados españoles. Se trata de un componente para desarrollar mapas en dispositivos móviles, nativo y multiplataforma; permite aplicaciones 2D, 2.5D y 3D, tanto Android como iPhone y en general en cualquier entorno HTML5.

INGENIERÍA EN SOFTWARE

ConclusiónLa elección de la herramienta a utilizar, solo depende de las necesidades que la aplicación debe suplir al tener en cuenta aspectos como tipo de aplicación a desarrollar, los dispositivos en los cuales se instalara, plataforma de software utilizada IDE entre otros. Existe una gran variedad de opciones, que facilitara a los desarrolladores a la toma de decisión tecnológica a la hora de crear la solución.La fragmentación y la incompatibilidad de plataformas es un problema que afecta a los desarrolladores de aplicaciones móviles. Con los miles de tipos de dispositivos móviles que hay en el mercado, es difícil saber cuáles de estos pueden recibir un nuevo aplicativo. Aun cuando la orientación es generalmente a desarrollar la aplicación dirigida solo al dispositivo y a la plataforma especifica es complejo determinar unas características y capacidades mínimas para crear un conjunto de aplicaciones de apoyo, para ser utilizadas en un nuevo desarrollo.