Table Of ContentPROYECTO FINAL DE MASTER
ESTUDIO COMPARATIVO DE DIFERENTES
FRAMEWORKS DE ALTO NIVEL PARA
EL DESARROLLO DE APLICACIONES
MOVILES EN ANDROID
Estudios: Máster en Ingeniería Telemática
Autor: Julián Andrés Díaz Díaz
Director: Juan Luis Gorricho
Barcelona, Agosto 2014
Tabla de contenido
INDICE DE FIGURAS .................................................................................................................................... 5
GLOSARIO ...................................................................................................................................................... 6
INTRODUCCIÓN ............................................................................................................................................ 7
1. PARSE ...................................................................................................................................................... 8
1.1 OBJETOS ......................................................................................................................................... 13
1.2 CONSULTAS .................................................................................................................................... 16
1.3 ARCHIVOS ....................................................................................................................................... 19
1.4 FUNCIONES EN LA NUBE................................................................................................................. 20
1.5 ANALYTICS ..................................................................................................................................... 20
1.6 PUSH NOTIFICATION ...................................................................................................................... 21
1.7 USUARIOS ....................................................................................................................................... 22
1.8 ROLES ............................................................................................................................................. 25
1.9 USUARIOS DE FACEBOOK ............................................................................................................... 26
1.10 USUARIOS DE TWITTER .................................................................................................................. 26
1.11 GEOPOINTS .................................................................................................................................... 27
1.12 INTERFACES DE USUARIO .............................................................................................................. 28
1.13 SEGURIDAD ..................................................................................................................................... 28
2. PHONEGAP ........................................................................................................................................... 29
2.1 INTRODUCCIÓN .............................................................................................................................. 29
2.2 CONSTRUIR APLICACIONES EN PHONEGAP .................................................................................. 30
2.3 ACELERÓMETRO ............................................................................................................................ 33
2.4 CÁMARA ......................................................................................................................................... 34
2.5 CAPTURAR ...................................................................................................................................... 34
2.6 BRÚJULA ......................................................................................................................................... 35
2.7 CONEXIÓN ...................................................................................................................................... 35
2.8 CONTACTOS .................................................................................................................................... 36
2.9 DISPOSITIVO ................................................................................................................................... 37
2.10 EVENTOS ......................................................................................................................................... 37
2.11 ARCHIVOS ....................................................................................................................................... 38
2.12 GEOLOCALIZACIÓN ....................................................................................................................... 40
2.13 MULTIMEDIA .................................................................................................................................. 40
2.14 NOTIFICACIONES ............................................................................................................................ 41
2.15 ALMACENAMIENTO ........................................................................................................................ 41
3. TITANIUM ............................................................................................................................................ 43
3.1 ACELERÓMETRO ............................................................................................................................ 44
3.2 MECANISMOS MULTIPLATAFORMA ............................................................................................... 44
3.3 INTERNACIONALIZACIÓN ............................................................................................................... 45
3.4 GRUPOS DE TABS Y VENTANAS ...................................................................................................... 45
3.5 DISEÑO Y UBICACIÓN DE ELEMENTOS ........................................................................................... 46
3.6 EVENTOS ......................................................................................................................................... 47
3.7 LISTVIEW ....................................................................................................................................... 48
3.8 CONTENEDORES DESPLAZABLES ................................................................................................... 48
3.9 DETECCIÓN DE ACCIONES ............................................................................................................. 49
3.10 ANIMACIÓN .................................................................................................................................... 50
3.11 COMPONENTES UI .......................................................................................................................... 51
3.12 PERSISTENCIA BASADA EN PROPIEDADES ..................................................................................... 52
3.13 BASE DE DATOS .............................................................................................................................. 52
3.14 ARCHIVOS Y DIRECTORIOS ............................................................................................................ 54
3.15 INTERACCIÓN CON SERVIDORES REMOTOS ................................................................................... 54
3.16 APPCELERATOR CLOUD SERVICES ............................................................................................... 55
3.17 AUDIO ............................................................................................................................................. 56
3.18 VIDEO ............................................................................................................................................. 57
3.19 IMÁGENES ....................................................................................................................................... 57
3.20 CÁMARA ......................................................................................................................................... 58
3.21 GEO LOCALIZACIÓN ....................................................................................................................... 58
3.22 MAPAS DE GOOGLE........................................................................................................................ 59
3.23 WEBVIEW ....................................................................................................................................... 60
3.24 FACEBOOK ...................................................................................................................................... 60
4. CORONA ............................................................................................................................................... 61
4.1 AUTOLAYOUT ................................................................................................................................ 61
4.2 SISTEMA DE COORDENADAS .......................................................................................................... 61
4.3 ANDROID-IZING UNA APLICACIÓN MÓVIL .................................................................................... 62
4.4 OBJETOS DISPLAY .......................................................................................................................... 62
4.5 IMÁGENES ....................................................................................................................................... 63
4.6 VIDEO ............................................................................................................................................. 65
4.7 ANIMACIÓN .................................................................................................................................... 65
4.8 AUDIO ............................................................................................................................................. 66
4.9 EVENTOS ......................................................................................................................................... 66
4.10 NOTIFICACIONES ............................................................................................................................ 68
4.11 ARCHIVOS ....................................................................................................................................... 69
4.12 BASE DE DATOS .............................................................................................................................. 70
4.13 SERVICIOS WEB ............................................................................................................................. 71
4.14 FACEBOOK ...................................................................................................................................... 71
4.15 COMPONENTES DE UI .................................................................................................................... 72
4.16 PHYSICS .......................................................................................................................................... 75
5. COMPARATIVA ANDROID NATIVO .............................................................................................. 78
5.1 ACTIVITIES ..................................................................................................................................... 78
5.2 SERVICIOS ...................................................................................................................................... 79
5.3 BROADCAST RECEIVERS................................................................................................................. 80
5.4 IU .................................................................................................................................................... 82
5.5 PERSISTENCIA ................................................................................................................................ 86
5.6 VISTAS PERSONALIZADAS .............................................................................................................. 89
5.7 MULTIMEDIA .................................................................................................................................. 91
5.8 SENSORES ....................................................................................................................................... 92
5.9 AUTOLAYOUT ................................................................................................................................ 94
6. COMPARATIVA DE INTERACCION CON TERCEROS .............................................................. 95
6.1 PARSE ............................................................................................................................................. 95
6.2 PHONEGAP ..................................................................................................................................... 95
6.3 TITANIUM ....................................................................................................................................... 96
6.4 CORONA .......................................................................................................................................... 96
7. CONCLUSIONES Y LINEAS FUTURAS .......................................................................................... 97
BIBLIOGRAFIA ............................................................................................................................................ 99
INDICE DE FIGURAS
Figure 1. Cloud Computing .................................................................................................... 8
Figure 2. Data Browser ......................................................................................................... 10
Figure 3. Filter ...................................................................................................................... 10
Figure 4. Push Composer ..................................................................................................... 11
Figure 5. Advance Targetin .................................................................................................. 11
Figure 6. Push Notification ................................................................................................... 22
Figure 7. Phonegap architecture ........................................................................................... 29
Figure 8. Device Interaction ................................................................................................. 30
Figure 9. Configuring projects in phonegap ......................................................................... 31
Figure 10. request of application .......................................................................................... 31
Figure 11. Process of construction ....................................................................................... 32
Figure 12. Result .................................................................................................................. 32
Figure 13. Adobe phonegap build ........................................................................................ 33
Figure 14. Titanium Architecture ......................................................................................... 44
Figure 15. Image mask ......................................................................................................... 64
Figure 16. Anchor ................................................................................................................. 65
Figure 17. Picker Wheel ....................................................................................................... 73
Figure 18. Stepper ................................................................................................................ 74
Figure 19.Switch ................................................................................................................... 74
Figure 20. Tab Bar ................................................................................................................ 75
GLOSARIO
SQL Structured Query Language
1: N Relación de un elemento a muchos
N: N Relación de muchos a muchos
API Application Programming Interface
MB Mega Bytes
ACL Access Control List
SDK Software Development Kit
TDI Tabbed document interface or TAB
UI User Interface
GUI Graphic User Interface
MBASS Mobile Backend as a service
ACS Appcelerator Cloud Services
INTRODUCCIÓN
El estudio comparativo se refiere al tema del desarrollo de aplicaciones móviles hechas en
Android mediante el uso de frameworks multiplataforma, es decir que tienen la capacidad
de generar múltiples copias de una aplicación, compatible con cada una de ellas mediante
un solo desarrollo. Cada uno de ellos tiene la capacidad y herramientas para crear una
aplicación compatible en Android, como también desarrollar aplicaciones en iOS, Windows
pone etc. En el mercado de hoy en día las aplicaciones móviles son esenciales para todo
tipo de usos en cualquier entorno, debido a eso, se han hecho tan populares.
En el mercado hay un gran competencia por ser la marca más popular entre varias
empresas que trabajan en este ámbito de las aplicaciones móviles, como son Google
(Android), Apple (iOS), Microsoft (Windows phone) etc.
Otro tipo de empresas de desarrollo de aplicaciones como también otros desarrolladores
autónomos comparten el mismo problema y es la variedad de sistemas que existen en el
ámbito móvil pues si se escoge uno se deja afuera a otros potenciales clientes o negocios.
Debido a esto optan por escoger este tipo de frameworks el cual bridan una solución más
acertada con respecto a tener que gastar tiempo y dinero en aprender otra tecnología. En
este estudio se centra más en buscar cómo crear aplicaciones móviles en Android con
menor esfuerzo, tiempo y que se pueda implementar mediante tecnologías web estándar u
otras tecnologías mucho más flexibles. Por tanto se comparan una con otra de acuerdo a un
conjunto de componentes principales de Android tal como Actividades, servicios,
Broadcast Receivers, IU, Persistencia, animación, multimedia, sensores y autolayout, por
último se comparan de acuerdo a las redes sociales soportadas por cada una.
1. PARSE
Parse es un concepto un poco abstracto que conlleva a muchos términos, por tanto es
necesario entender en sí conceptos como que es una plataforma en general; una plataforma
software está constituida de dos componentes principales, la primera es una arquitectura
hardware y la segunda es un componente software denominado ‘framework’ que a su vez
juntas permiten a cualquier aplicación software ser ejecutada. En otras palabras una
plataforma usualmente está constituida por una arquitectura de computadores, sistemas
operativos y librerías [1].
Ahora bien Parse es una plataforma para aplicaciones en la nube. Para tener claro el
concepto de ‘aplicaciones en la nube’ habria que retomar lo que es ‘cloud computing’, el
cual en una idea general es la combinacion de 3 grandes conceptos: aplicaciones,
plataformas y infraestructura. La siguiente figura muestra como esta constituida una nube:
Figure 1. Cloud Computing
Actualmente Parse es una plataforma de aplicaciones en la nube para diferentes tecnologías
como son:
Android
iOS
JavaScript
Windows8
Windows Phone 8
.NET
Unity
Parse se especializa en el manejo de los datos el cual entre sus puntos fuertes se encuentra
que el manejo es escalable y muy poderoso. Los desarrolladores casi se olvidan de la
gestión del servidor y asuntos relacionados con la gestión de los datos, de tal forma se
centran más en las características específicas de sus aplicaciones.
Características
Una de las más importantes características es que permite al equipo desarrollador
enfocarse en la UX (experiencia de usuario) y olvidarse del mantenimiento del
servidor y de la infraestructura. Además ofrece otros productos tecnológicos como
‘push notification’ o también conocido como mensajes de fondo a un evento u otro
mensaje, almacenamiento de datos, integración a redes sociales como Facebook etc.
Parse se encarga de que los datos sean almacenados en la nube de manera segura y
eficiente. Los tipos comunes de datos son compatibles, como son fotos, ubicaciones,
tipos de datos básicos. Los datos son bien gestionados, se pueden realizar búsquedas
e filtrados y por ultimo actualizaciones del contenido de una aplicación.
Parse realiza de manera transparente el enlace con redes sociales tales como
Facebook o Twitter, igualmente de manera segura.
Simplifica la implementación de ‘Push notifications’.
La variedad de SDKs para desarrollar aplicaciones no solo móviles sino también
aplicaciones web.
Productos
Parse ofrece una variedad de productos tecnológicos para el desarrollo de software
enfocándose en la gestión de los datos; el precio por usar estas tecnologías es gratuito pero
si quieres tener más de 1’000.000 de peticiones por mes y una capacidad mayor a 1GB si
existen planes de pago; ahora se verá más en detalle cada producto[2]:
Parse Data: Parse permite guardar los datos la aplicación en su nube y no hay que
preocuparse en relación al tema del servidor, capacidad, procesamiento, seguridad
etc. Otra característica de este producto es la versatilidad de la actualización de los
datos pues puede ser por vía inalámbrica (Tablet, smartphone) o por red, sin la
necesidad de reenviar los datos, solo con un intento esta lista.
o Powerful Data Management: Esta funcionalidad permite gestionar, buscar y
actualizar el contenido de la aplicación sin escribir una sola línea de código.
Todo esto atravez de una interfaz web que está compuesta como una hoja de
cálculo en excel.
Figure 2. Data Browser
o Advanced filtering: Con el uso del navegador de datos mencionado
anteriormente se puede realizar filtrados en las búsquedas de datos, ejemplo:
Figure 3. Filter
Description:CORONA . Parse Data: Parse permite guardar los datos la aplicación en su nube y no hay que preocuparse en relación al tema del servidor,