Este documento describe varias herramientas para el desarrollo de aplicaciones móviles, incluyendo desarrollo nativo usando lenguajes como Java y Swift, herramientas multiplataforma como Xamarin y PhoneGap, y librerías para mapas como OpenLayers y OSMDroid. El autor concluye que la elección de herramienta depende de los requisitos de la aplicación y las plataformas a soportar.
2. 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.
3. • 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
4. 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.
5. • 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.
6. • 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).
7. • 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)
8. • 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
9. • 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
10. • 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.
11. • 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.
12. • 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.
13. • 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.