El documento describe varias herramientas de desarrollo para dispositivos móviles, incluyendo Android Studio, el entorno de desarrollo integrado oficial de Android; Titanium SDK, que permite el desarrollo multiplataforma usando JavaScript; Genymotion, un emulador de Android más rápido que el predeterminado; y Eclipse, un entorno de desarrollo popular pero que ha sido reemplazado por Android Studio como la herramienta recomendada para Android.
1. HERRAMIENTAS DE DESARROLLO
PARA DISPOSITIVOS MÓVILES
DESARROLLO DE APLICACIONES MÓVILES
ING. RENÉ DOMÍNGUEZ ESCALONA
SISTEMA DUAL
PRESENTA:
Valdivia Luna Joely Jaqueline
GRUPO: 2817IS INGENIERÍA EN SOFTWARE
2. INTRODUCCIÓN
El conocimiento de programación de aplicaciones para móviles ha pasado de
manera muy rápida de ser un conocimiento más, a ser una necesitad debido a la
rápida implantación y evolución de las plataformas móviles.
Esta rápida evolución crea incertidumbre sobre que tecnologías son las más
adecuadas para la programación de móviles. Una de las arquitecturas más
implantada es la proporcionada por el sistema Android.
El mercado de las aplicaciones para móviles ha cambiado de una forma radical en
los últimos dos años. Al principio, para publicar aplicaciones móviles tenías que
disponer del apoyo de una operadora o de una gran firma de juegos, pero con la
aparición de los markets de aplicaciones, esto ha cambiado y cualquier persona
puede publicar su app y empezar a ganar dinero.
En el presente documento, se darán a conocer algunas herramientas de desarrollo
para dispositivos móviles.
3. ANDROID STUDIO
Android Studio es un entorno de desarrollo integrado (IDE), basado en IntelliJ
IDEA de la compañía JetBrains, que proporciona varias mejoras con respecto al
plugin ADT (Android Developer Tools) para Eclipse. Android Studio utiliza una
licencia de software libre Apache 2.0, está programado en Java y es multiplataforma.
Es lo menos que se debe tener instalado para comenzar el desarrollo de una
aplicación para Android. Android Studio es el entorno de desarrollo para Android de
Google, se trata del sustituto de Eclipse como entorno de desarrollo oficial y viene
con todas las bibliotecas y herramientas para crear la aplicación de forma correcta
de principio a fin.
Disponible para todas las plataformas (Linux, Windows, Mac OS…) en su descarga
incluirá un sistema Android emulado para poder probar el proyecto en desarrollo y
ver el resultado en cualquier momento.
CARÁCTERÍSTICAS:
Soporte para programar aplicaciones para Android Wear (sistema operativo para
dispositivos corporales como por ejemplo un reloj).
Herramientas Lint (detecta código no compatible entre arquitecturas diferentes o
código confuso que no es capaz de controlar el compilador) para detectar
problemas de rendimiento, usabilidad y compatibilidad de versiones.
Utiliza ProGuard para optimizar y reducir el código del proyecto al exportar a
APK (muy útil para dispositivos de gama baja con limitaciones de memoria
interna).
Integración de la herramienta Gradle encargada de gestionar y automatizar la
construcción de proyectos, como pueden ser las tareas de testing, compilación o
empaquetado.
Nuevo diseño del editor con soporte para la edición de temas.
Nueva interfaz específica para el desarrollo en Android.
Permite la importación de proyectos realizados en el entorno Eclipse, que a
diferencia de Android Studio (Gradle) utiliza ANT.
Posibilita el control de versiones accediendo a un repositorio desde el que poder
descargar Mercurial, Git, Github o Subversion.
Alertas en tiempo real de errores sintácticos, compatibilidad o rendimiento antes
de compilar la aplicación.
Vista previa en diferentes dispositivos y resoluciones.
4. Integración con Google Cloud Platform, para el acceso a los diferentes servicios
que proporciona Google en la nube.
Editor de diseño que muestra una vista previa de los cambios realizados
directamente en el archivo xml.
VENTAJAS DE USO DE ANDROID STUDIO
Android Studio ha pasado a ser el entorno recomendado para el desarrollo de
aplicaciones en Android, al tratarse de un IDE oficial de Google en colaboración
con JetBrains (compañía de desarrollo software especializada en diseño de
IDEs).
Android Studio permite la creación de nuevos módulos dentro de un mismo
proyecto, sin necesidad de estar cambiando de espacio de trabajo para el
manejo de proyectos, algo habitual en Eclipse.
Con la simple descarga de Android Studio se disponen de todas las
herramientas necesarias para el desarrollo de aplicaciones para la plataforma
Android.
Su nueva forma de construir los paquetes .apk, mediante el uso de Gradle,
proporciona una serie de ventajas más acorde a un proyecto Java:
Facilita la distribución de código, y por lo tanto el trabajo en equipo.
Reutilización de código y recursos.
Permite compilar desde línea de comandos, para aquellas situaciones en las
que no esté disponible un entorno de desarrollo.
Mayor facilidad para la creación de diferentes versiones de la misma
aplicación, que proporciona numerosas ventajas como puede ser la creación
de una versión de pago y otra gratuita, o por ejemplo diferentes dispositivos
o almacén de datos.
5. TITANIUMSDK
Si por la razón que sea eres reticente a usar la programación nativa en Java
(aunque sea la que mejor se adapta al sistema operativo de los de Google), Titanium
permite la usabilidad de HTML, PHP, JavaScript, Ruby o Python, pudiendo
desarrollar aplicaciones para múltiples plataformas simultáneamente. Es decir,
basándonos en el mismo código, podemos exportar nuestra app para que pueda
ejecutarse en iOS, Android, Windows o BlackBerry.
Ha sido usada en infinidad de empresas que prefieren ahorrar costes sacrificando el
rendimiento de sus aplicaciones y limitando al programador a una sola aplicación
que se encargue de portar el proyecto a las diferentes plataformas existentes.
CARACTERÍSTICAS
Soporta el desarrollo de aplicaciones móviles multiplataforma
Con una sola base de código, pueden producir aplicaciones móviles Web,
Android y iOS
Se desarrolla utilizando un lenguaje basado en JavaScript en un entorno de
desarrollo integrado basado en Eclipse (Aptana Studio)
Aumenta en más de un 70 % la productividad al escribir aplicaciones
Permite utilizar la experiencia de los desarrolladores en tecnologías y
estándares Web
Extensibilidad ilimitada del propio framework Titanium añadiendo nuevos
módulos
Permite crear experiencias de usuario atractivas utilizando servicios en la
nube tales como las notificaciones PUSH y los check-ins
Está muy bien documentado
Tiene una gran comunidad de desarrolladores que intercambian ideas,
consejos y ejemplos
6. GENYMOTION
El emulador de Android por defecto, a pesar de ser distribuido por los chicos de
Google, en las pruebas ha resultado bastante lento y cuenta con multitud de errores.
Genymotion soluciona esto de forma más que eficiente, proporcionándonos un
emulador de Android increíblemente rápido y estable, que ofrece herramientas más
allá de la emulación.
Pone a nuestra disposición más de diez dispositivos virtuales en los que poder
probar nuestro proyecto a través de las diferentes plataformas existentes.
Además nos ofrece sensores de movimiento o diferentes tamaños de pantalla sobre
los que probar las aplicaciones de la forma más profesional posible, evitando así
conflictos una vez se lance la aplicación al Market. Es la principal solución si vemos
que el emulador por defecto de Android se nos empieza a quedar corto.
CARACTERÍSTICAS
Está disponible en inglés y francés.
Cuenta con instaladores para múltiples sistemas operativos.
Las dependencias de VirtualBox en Windows se pueden instalar con un clic.
Viene con un plugin para Eclipse y Android Studio para realizar las diferentes
pruebas en conjunto con tales editores de código.
El móvil virtualizado cuenta con sensores para la cámara, el WiFi y el GPS.
Son los mismos del PC.
Cuenta con modo de pantalla completa y la opción de poner el móvil en modo
horizontal.
La carga de la batería se puede determinar para realizar pruebas específicas.
Se puede conectar un dispositivo touch (otro móvil, p.e.) para testear
el touch de las aplicaciones.
No cuenta con las Google Apps por cuestiones legales, pero se pueden
instalar desde otras fuentes.
Tiene una magnífica función para arrastrar y soltar, desde el equipo y hasta el
móvil virtualizado, cualquier fichero multimedia (irá inmediatamente a la
carpeta de Descargas del móvil) o aplicaciones en formato APK.
7. Dispone de aceleración de hardware OpenGL para mejores resultados con el
3D.
Usa la arquitectura x86 para la virtualización.
Permite instalar ROMs diferentes a la de oficial, por ejemplo, Cyanogenmod.
En sus versiones de pago permite realizar screencasts y dar zoom para
escalar los pixeles del móvil a los del PC.
Los dispositivos creados se pueden configurar desde el panel de VirtualBox
RHOMOBILE
Herramienta muy similar a Titanium que nos permitirá aplicar un desarrollo para
exportarlo hacia las diferentes plataformas del mercado. Todo esto sin ser
programadores Java nivel Legendario ya que permite la programación en HTML5,
CSS, JavaScript o Ruby.
Lo que diferencia a Rhonmobile de Titanium, es que ésta se centra en el cliente
empresarial más que en el desarrollador particular, agilizando enormemente el
proceso de creación de una app para nuestra empresa y portándola de forma muy
eficiente a los diferentes sistemas operativos móviles existentes. La suite básica es
gratuita y ofrecerá los recursos suficientes para una aplicación sencilla; pero si lo
que queremos es algo más completo, deberemos irnos a las versiones Silver y Gold
(299$ y 999$ al mes, respectivamente), donde encontraremos funciones
de sincronización entre dispositivos, librerías para cloud-app’s, plugins para Visual
Studio,
UBERTESTER
Si queremos que nuestro proyecto sea probado a conciencia por multitud de
personas antes de soltarlo en el mercado al que lo estemos orientando, estamos
ante el servicio ideal. Ubertester nos ofrece probadores que testearan nuestras apps
en diferentes dispositivos y nos dejarán reportes de incidencias, sugerencias,
consultas, según les vayan surgiendo.
Podremos gestionarlo todo desde un panel de administración, así como realizar
corrección de errores en la aplicación mientras revisamos las incidencias. Una de las
características más llamativas de Ubertester, es que nos permitirá enviar
actualizaciones vía OTA (Over The Air) a los testers que se nos hayan asignado,
recibiendo así una retroalimentación y respuesta a los cambios casi inmediata.
8. ECLIPSE
Eclipse es una plataforma de desarrollo, diseñada para ser extendida de forma
indefinida a través de plug-ins. Fue concebida desde sus orígenes para convertirse
en una plataforma de integración de herramientas de desarrollo. No tiene en mente
un lenguaje específico, sino que es un IDE genérico, aunque goza de mucha
popularidad entre la comunidad de desarrolladores del lenguaje Java usando el plug-
in JDT que viene incluido en la distribución estándar del IDE.
Proporciona herramientas para la gestión de espacios de trabajo, escribir, desplegar,
ejecutar y depurar aplicaciones.
Perspectivas, editores y vistas: en Eclipse el concepto de trabajo está basado en las
perspectivas, que no es otra cosa que una preconfiguración de ventanas y editores,
relacionadas entre sí, y que nos permiten trabajar en un determinado entorno de
trabajo de forma óptima.
Gestión de proyectos: el desarrollo sobre Eclipse se basa en los proyectos, que son
el conjunto de recursos relacionados entre sí, como puede ser el código fuente,
documentación, ficheros configuración, árbol de directorios,... El IDE nos
proporcionará asistentes y ayudas para la creación de proyectos. Por ejemplo,
cuando creamos uno, se abre la perspectiva adecuada al tipo de proyecto que
estemos creando, con la colección de vistas, editores y ventanas preconfigurada por
defecto.
Depurador de código: se incluye un potente depurador, de uso fácil e intuitivo, y que
visualmente nos ayuda a mejorar nuestro código. Para ello sólo debemos ejecutar el
programa en modo depuración (con un simple botón). De nuevo, tenemos una
perspectiva específica para la depuración de código, la perspectiva depuración,
donde se muestra de forma ordenada toda la información necesaria para realizar
dicha tarea.
Extensa colección de plug-ins: están disponibles en una gran cantidad, unos
publicados por Eclipse, otros por terceros. Al haber sido un estándar de facto
durante tanto tiempo (no el único estándar, pero sí uno de ellos), la colección
disponible es muy grande. Los hay gratuitos, de pago, bajo distintas licencias, pero
casi para cualquier cosa que nos imaginemos tenemos el plug-in adecuado.