Herramientas de desarrollo para dispositivos móviles

13
Herramientas de desarrollo para dispositivos móviles Juan Fernando Ramírez Hernández Ing. Software 2817is Desarrollo de aplicaciones móviles

Transcript of Herramientas de desarrollo para dispositivos móviles

Page 1: Herramientas de desarrollo para dispositivos móviles

Herramientas de desarrollo para dispositivos móviles

Juan Fernando Ramírez HernándezIng. Software 2817is

Desarrollo de aplicaciones móviles

Page 2: Herramientas de desarrollo para dispositivos móviles

introducción• Los 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.

Page 3: Herramientas de desarrollo para dispositivos móviles

• Objetivo General Desarrollar 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

Page 4: Herramientas de desarrollo para dispositivos móviles

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ódigonativo. 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 Nativo Está 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.

Page 5: Herramientas de desarrollo para dispositivos móviles

• 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.

• Desarrollo Nativo• Está 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.

Page 6: Herramientas de desarrollo para dispositivos móviles

• Desarrollo multiplataforma compilado a nativo • Una 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).

Page 7: Herramientas de desarrollo para dispositivos móviles

• Las 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.

• 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)

Page 8: Herramientas de desarrollo para dispositivos móviles

• El 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

Page 9: Herramientas de desarrollo para dispositivos móviles

• 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.

• 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

Page 10: Herramientas de desarrollo para dispositivos móviles

• 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.

Page 11: Herramientas de desarrollo para dispositivos móviles

• 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.

Page 12: Herramientas de desarrollo para dispositivos móviles

• 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.

Page 13: Herramientas de desarrollo para dispositivos móviles

• Conclusión• La 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.