Graduado en Ingeniería de Sistemas Audiovisuales de...
Transcript of Graduado en Ingeniería de Sistemas Audiovisuales de...
Graduado en Ingeniería de Sistemas
Audiovisuales de Telecomunicación
TRABAJO FIN DE GRADO
Desarrollo de una aplicación para dispositivos
móviles con sistema operativo Android:
“Politécnica Cuenca”
José Javier Cañas Benito
Cuenca, 2016
Escuela Politécnica de Cuenca
<<Nuestra recompensa se encuentra en el esfuerzo
y no en el resultado, un esfuerzo total es una
victoria completa>>
Mahatma Gandhi (1869-1948)
AGRADECIMIENTOS
Me gustaría expresar mi agradecimiento a todas las personas que han sido de gran
ayuda para el desarrollo de este trabajo fin de grado.
En primer lugar, quiero agradecer a mis tutores José Manuel y Arturo, por sus
consejos y correcciones, por el tiempo dedicado y por el buen trato recibido. Gracias
también a Roberto, Jorge y María por su colaboración en la realización de la encuesta
a los alumnos de la EPC y a César y Pepe que, de una forma u otra, también han
aportado su granito de arena.
Gracias a toda mi familia, sobre todo a mis padres, por su apoyo incondicional todos
estos años, a mis amigos que me han animado cuando más lo necesitaba y a mis
compañeros de GISAT por hacer las clases más amenas.
Por último, quiero dar las gracias en especial a mi madre Paula y a mi tía Pilar por
sus recomendaciones y por las horas dedicadas a revisar conmigo la documentación,
aun sin saber muy bien lo que estaban leyendo. También doy las gracias a mis amigos
Alejandro, Patricia y María por sus valiosos consejos y a Gerardo por permitirme
realizar pruebas de testeo en su tablet.
RESUMEN
Los teléfonos móviles que existían hace unos años no tienen nada que ver con los actuales. Los llamados smartphones (teléfonos inteligentes) son pequeños ordenadores de bolsillo que ofrecen multitud de servicios como gestores de correo o navegadores, lo que hace que la gente pase gran tiempo usándolos. Es por ello que el desarrollo de aplicaciones se ha disparado en los últimos años. Android es el sistema operativo para teléfonos inteligentes más utilizado del mundo y cuenta con un gran número de desarrolladores que pueden distribuir a través de Google Play todo tipo de aplicaciones (juegos, redes sociales, de mensajería, de noticias, educativas...). Politécnica Cuenca es una aplicación Android que tiene como principal objetivo facilitar el acceso a información de interés sobre la Escuela Politécnica de Cuenca y las titulaciones que en ella se imparten. La aplicación ya se encuentra disponible para su descarga en Google Play y está destinada principalmente a los alumnos de la Escuela, permitiéndoles entre otras cosas: acceder al Campus Virtual para consultar las calificaciones, ver las noticias que se publican en el blog de la Escuela, saber cuál es el correo de un profesor, consultar el horario y las fechas de los exámenes, programar tareas, etc.
ABSTRACT
Mobile phones have changed a lot in the last years. Smartphones are small handheld
computers that offer many services such as email clients or browsers, which makes
people to spend long time using them. That is why applications development has
increased in recent years. Android is the most widely-used mobile operating system
and it has a large number of developers who can use Google Play Store to publish and
distribute different applications like games, social networks, messaging apps,
information apps, educational apps, etc.
Politécnica Cuenca is an Android application that has as main objective to facilitate
access to relevant information about the degrees of the Cuenca Polytechnic School.
The application is currently available on Google Play Store and it is mainly aimed to
students, allowing them, among other things: accessing to the Virtual Campus to
check marks, reading the news published on the School blog, looking for the email of
a teacher, checking the timetable and exam dates, programming tasks, etc.
ÍNDICE GENERAL
AGRADECIMIENTOS ................................................................................ 7
RESUMEN ............................................................................................ 9
ABSTRACT .......................................................................................... 11
ÍNDICE GENERAL .................................................................................. 13
ÍNDICE DE FIGURAS ............................................................................... 15
ÍNDICE DE TABLAS ................................................................................ 17
I. MEMORIA ........................................................................................ 19
1 INTRODUCCIÓN ................................................................................. 21
1.1 Motivación .................................................................................. 23
1.2 Objetivos ................................................................................... 23
1.3 Estructura del documento ............................................................... 24
2 ESTADO DEL ARTE .............................................................................. 27
2.1 Evolución de la telefonía móvil ......................................................... 29
2.2 El teléfono inteligente ................................................................... 31
2.3 Sistemas operativos de dispositivos móviles ......................................... 32
2.3.1 Android ................................................................................ 34
2.3.2 iOS ...................................................................................... 35
2.4. La plataforma de trabajo: Android ................................................... 36
2.4.1 Historia ................................................................................ 37
2.4.2 Arquitectura .......................................................................... 39
2.4.3 Estructura de una aplicación ...................................................... 41
3 DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN ..................................... 49
3.1 Principales claves para que una app tenga éxito .................................... 51
3.2 Análisis de aplicaciones del ámbito universitario existentes en el mercado.... 52
3.3 Encuesta de opinión del alumnado de la EPC ........................................ 62
4 POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO .................................. 69
4.1 ¿Qué es Politécnica Cuenca? ............................................................ 71
4.2 Diseño de la interfaz de usuario ........................................................ 72
4.2.1 RelativeLayout y LinearLayout .................................................... 73
4.2.2 ScrollView ............................................................................. 76
4.2.3 WebView .............................................................................. 77
4.2.4 ListView y ExpandableListView .................................................... 79
4.2.5 Action Bar ............................................................................. 82
4.2.6 Menú ................................................................................... 83
4.3 Base de datos local - SQLite ............................................................ 85
4.4 Comunicación entre componentes de la GUI ......................................... 88
4.5 Tamaño de la aplicación ................................................................. 90
4.6 Compatibilidad ............................................................................ 91
5 PUBLICACIÓN DE LA APP Y RESULTADOS ................................................... 93
5.1 Publicación de la app .................................................................... 95
5.2 Encuesta de satisfacción ................................................................. 99
6 CONCLUSIONES Y LÍNEAS FUTURAS ......................................................... 107
6.1 Conclusiones .............................................................................. 109
6.2 Líneas futuras ............................................................................ 110
II. PLANOS: DIAGRAMA DE FLUJO ............................................................. 113
III. PLIEGO DE CONDICIONES ................................................................... 119
IV. PRESUPUESTO ................................................................................ 127
V. REFERENCIAS .................................................................................. 133
ÍNDICE DE FIGURAS
Figura 1. Martin Cooper, el padre del teléfono móvil . .................................... 29
Figura 2. Evolución de la telefonía móvil .................................................... 31
Figura 3. El primer smartphone de Apple, iPhone . ........................................ 32
Figura 4. Android vs iOS a nivel mundial .................................................... 33
Figura 5. Cuota de mercado de sistemas operativos móviles en España ............... 33
Figura 6. Logo de Android. ...................................................................... 34
Figura 7. Logo de iOS. ........................................................................... 35
Figura 8. Steve Jobs presentando el primer iPhone en 2007 ............................. 36
Figura 9. Línea de tiempo de las versiones de Android ................................... 37
Figura 10. Arquitectura de Android .......................................................... 39
Figura 11. Directorios de Politécnica Cuenca. ............................................... 42
Figura 12. Ejemplo de una actividad con dos fragmentos ................................ 44
Figura 13. Ciclo de vida de una actividad ................................................... 45
Figura 14. App de éxito Wallapop ............................................................ 51
Figura 15. Logo de Facultad de Comunicación y D. ........................................ 52
Figura 16. Pantalla principal de la app de la FCD de la Univ. de Granada. ............ 53
Figura 17. Logo de UAH ......................................................................... 53
Figura 18. Pantalla principal de la app de UAH. ............................................ 53
Figura 19. Logo de UPV ......................................................................... 54
Figura 20. Pantalla de bienvenida y menú de la app de la UPV .......................... 54
Figura 21. Logo de UEX ......................................................................... 54
Figura 22. Pantalla de bienvenida y pantalla principal de la app de la UEX. .......... 55
Figura 23. Logo de UVa App ................................................................... 55
Figura 24. Pantalla de bienvenida y pantalla principal de la app de la UVA. .......... 55
Figura 25. Logo de Universidad de Cantabria ............................................... 56
Figura 26. Pantalla principal de la app de la Universidad de Cantabria. ............... 56
Figura 27. Logo de Univ. de Murcia ........................................................... 56
Figura 28. Pantalla principal de la app de la Universidad de Murcia. ................... 57
Figura 29. Logo de UA .......................................................................... 57
Figura 30. Pantalla principal y sección de Noticias de la app de UA. ................... 57
Figura 31. Página web de la Universidad de Alicante. ..................................... 58
Figura 32. Logo de UJA Ciencias Experimentales .......................................... 58
Figura 33. Pantalla de perfil y menú de la app de la FCE de la UJA. .................... 58
Figura 35. Pantalla principal de UniOvi. ...................................................... 59
Figura 34. Logo de UniOvi ...................................................................... 59
Figura 36. Encuesta de opinión del alumnado de la EPC. ................................. 62
Figura 37. Logo de Politécnica Cuenca. ...................................................... 71
Figura 38. Parámetros de un RelativeLayout ............................................... 73
Figura 39. Orientación de un LinearLayout ................................................. 73
Figura 40. Gravedad y peso en un LinearLayout. ........................................... 74
Figura 41. Vista Editar Evento en tablet de 7" y smartphone de 5". ..................... 75
Figura 42. Actividad con un ScrollView. ...................................................... 76
Figura 43. Vistas Actualidad y Campus Virtual. ............................................. 77
Figura 44. ListView en fase de diseño. ....................................................... 79
Figura 45. Actividad con un ListView. ........................................................ 81
Figura 46. Actividad con un ExpandableListView. .......................................... 82
Figura 47. Pantalla principal de Politécnica Cuenca. ...................................... 83
Figura 48. Menú de Politécnica Cuenca....................................................... 84
Figura 49. Logo de SQLite . ..................................................................... 85
Figura 50. Estructura de la tabla Eventos en la base de datos local..................... 86
Figura 51. Ejemplo de eventos guardados en la base de datos. .......................... 87
Figura 52. Comunicación Activity-Activity. .................................................. 89
Figura 53. Vista Horario. ........................................................................ 90
Figura 54. Distribución de los usuarios de las distintas versiones de Android. ......... 91
Figura 55. Logo de Google Play. ............................................................... 95
Figura 56. Borrador de la ficha de Politécnica Cuenca para Play Store. ................ 96
Figura 57. Subida del archivo apk a la consola de Google Play. .......................... 96
Figura 58. Clasificación del contenido de Politécnica Cuenca. ........................... 97
Figura 59. Precio y distribución de Politécnica Cuenca. ................................... 97
Figura 60. Ficha de Politécnica Cuenca en Play Store. .................................... 98
Figura 61. Resultados de la pregunta 1 de la encuesta de satisfacción. ................ 99
Figura 62. Resultados de la pregunta 2 de la encuesta de satisfacción. ............... 100
Figura 63. Resultados de la pregunta 3 de la encuesta de satisfacción. ............... 100
Figura 64. Resultados de la pregunta 4 de la encuesta de satisfacción. ............... 101
Figura 65. Resultados de la pregunta 5 de la encuesta de satisfacción. ............... 101
Figura 66. Resultados de la pregunta 6 de la encuesta de satisfacción. ............... 102
Figura 67. Resultados de la pregunta 7 de la encuesta de satisfacción. ............... 102
Figura 68. Resultados de la pregunta 8 de la encuesta de satisfacción. ............... 103
Figura 69. Resultados de la pregunta 9 de la encuesta de satisfacción. ............... 103
Figura 70. Leyenda del diagrama de flujo de Politécnica Cuenca. ..................... 115
Figura 71. Diagrama de flujo de Politécnica Cuenca. ..................................... 116
Figura 72. Portátil ASUS K52JU................................................................ 121
Figura 73. Smartphone BQ Aquaris 5. ........................................................ 122
Figura 74. Tablet i-joy Rebel. ................................................................. 122
ÍNDICE DE TABLAS
Tabla 1. Comparación de contenidos entre aplicaciones de otras Universidades. .... 60
Tabla 2. Resultados de la encuesta de opinión del alumnado de la EPC. ............... 64
I. MEMORIA
21
1 INTRODUCCIÓN
Contenidos
1.1 Motivación
1.2 Objetivos
1.3 Estructura de la memoria
En este primer capítulo se comentarán los motivos por los que se ha elegido realizar
este proyecto así como los principales objetivos que se pretenden alcanzar con su
desarrollo. Además, se explicará la estructura general de la memoria y se realizará
un breve resumen del contenido de cada capítulo.
CAPÍTULO 1. INTRODUCCIÓN.
23
1.1 Motivación
En la actualidad predomina el uso de las Tecnologías de la Información y la Comunicación (TIC), en especial del ordenador, Internet y el teléfono móvil.
Las TIC's están cambiando nuestra manera de vivir y de comunicarnos. Cada vez es
mayor la necesidad de tener acceso a la información en cualquier momento y en
cualquier lugar. Tener un móvil ya no es símbolo de riqueza, se ha convertido en uno
de esos artículos que siempre llevamos encima, como las llaves o la cartera.
Según María Luengo [1], el teléfono inteligente (smartphone) es prácticamente un
ordenador y es el invento tecnológico que ha experimentado una aceptación más
rápida, superando incluso al espectacular crecimiento de Internet. Su éxito radica no
sólo en el número de usuarios, sino en el número de horas al día que se utiliza. En el
tercer trimestre de 2013 se llegó a la cifra de 88.2% de españoles (unas 34 millones
de personas) que habitualmente usan el teléfono móvil [2]. En 2014 el tiempo de
acceso a medios digitales desde dispositivos móviles ya era superior que desde el
ordenador (53% frente a 47%) [3]. La consecuencia lógica ha sido el auge de las
aplicaciones móviles, que ofrecen gran cantidad de prestaciones.
Mi interés por la programación de aplicaciones móviles para el sistema operativo
Android comenzó tras cursar la asignatura de "Software Multimedia" en el último año
de la carrera. Android es el sistema operativo para teléfonos inteligentes más
utilizado del mundo y cuenta con un gran número de desarrolladores que pueden
distribuir a través de la tienda online Google Play todo tipo de aplicaciones (de
noticias, juegos, redes sociales, de mensajería, educativas...). Por azar, encontré en
esta tienda bastantes aplicaciones de distintas Facultades y/o Universidades
españolas y me di cuenta de que no existía una aplicación móvil de la Escuela
Politécnica de Cuenca (EPC) y pensé que podría ser interesante que la hubiera. Así
fue como nació Politécnica Cuenca, nombre con el que se ha bautizado a la
aplicación.
1.2 Objetivos
El principal objetivo que se pretende alcanzar con la realización de este trabajo fin
de grado es desarrollar una aplicación móvil de la Escuela Politécnica de Cuenca para
el sistema operativo Android que facilite al alumno el acceso a información de
interés sobre la Escuela y los estudios que esté realizando. Si bien esta información
está disponible en la web de la EPC, en una aplicación móvil es mucho más accesible
y manejable. Basta que el usuario toque el icono de la app para que ésta se inicie,
sin necesidad de abrir un navegador.
CAPÍTULO 1. INTRODUCCIÓN.
24
Como objetivos secundarios se persiguen:
Distribuir la aplicación de manera gratuita a través de Google Play para que,
por un lado, todos los alumnos de la EPC la puedan descargar y utilizar y, por
otro lado, dar una mayor difusión a la Escuela y sus titulaciones.
Ampliar los conocimientos del lenguaje de programación Java, principalmente
orientado al desarrollo de aplicaciones para el sistema operativo Android.
Iniciarse en el lenguaje SQL enfocado al manejo de bases de datos construidas
en SQLite.
1.3 Estructura del documento
A continuación se describen brevemente cada uno de los capítulos restantes que
componen la memoria:
En el Capítulo 2 se realiza una revisión sobre la situación de Android en el
mercado de los dispositivos móviles y se definen una serie de conceptos
necesarios para comprender cómo se integran en la estructura global de la
aplicación.
En el Capítulo 3 se realiza un trabajo de campo con el objetivo de definir los
contenidos de la aplicación.
En el Capítulo 4 se trata el proceso de desarrollo de la aplicación. Comienza
con una introducción en la que se explica qué es Politécnica Cuenca y
prosigue con una descripción de los diferentes tipos de vistas que se han
utilizado. Después se explica cómo se ha creado la base de datos local y la
estructura que tiene. En los dos siguientes puntos se explica cómo se
comunican los componentes de la interfaz gráfica de usuario y lo que se ha
hecho para reducir el tamaño de la aplicación. Para finalizar, se comenta la
compatibilidad de la aplicación con las distintas versiones de Android.
En el Capítulo 5 se explica cuáles son los pasos necesarios para publicar una
aplicación en Google Play y se analizan los resultados de una encuesta de
satisfacción realizada a un grupo de usuarios de la aplicación.
En el Capítulo 6, se realiza una valoración del proyecto y de los objetivos
conseguidos. Además, se plantean una serie de aspectos a mejorar en la
aplicación.
El documento se completa con otras secciones como Planos, Pliego de condiciones y
el Presupuesto estimado para el desarrollo de la aplicación. Estos apartados son de
vital importancia para la comprensión global del proyecto, además de aportar
información adicional de los recursos utilizados.
En la última sección del documento se presenta la bibliografía utilizada.
27
2 ESTADO DEL ARTE
Contenidos
2.1 Evolución de la telefonía móvil
2.2 El teléfono inteligente
2.3 Sistemas operativos de dispositivos móviles
2.4 La plataforma de trabajo: Android
Según N.P. Molina [4] "Estado del Arte" es una modalidad de la investigación
documental que permite el estudio del conocimiento acumulado dentro de un área
específica.
En este capítulo se trata lo referente a la base teórica sobre la que se sustenta el
trabajo, ofreciendo una visión general del área en el que se enmarca el mismo. Se
lleva a cabo un breve resumen sobre la evolución de la telefonía móvil, se explica
qué es lo que necesita tener un dispositivo móvil para ser inteligente y se realiza una
comparativa de las distintas plataformas móviles y un estudio del sistema operativo
Android.
CAPÍTULO 2. ESTADO DEL ARTE.
29
2.1 Evolución de la telefonía móvil
Los teléfonos móviles se han convertido en un elemento imprescindible en la vida cotidiana. Sin embargo, los terminales que existieron hace algunos años no se parecen en nada a los actuales. Han pasado de ser un dispositivo orientado exclusivamente a la comunicación de voz y de texto, a ser pequeños ordenadores de bolsillo.
Según Juan Ranchal [5], la popularización de los teléfonos móviles no hubiera sido posible sin la estandarización y la mejora de los protocolos para redes de comunicaciones y su soporte por las operadoras. Después de que se realizaran las primeras comunicaciones vía ondas de radio con banda de frecuencias por debajo de los 600 kHz, las posteriores en AM y FM, los trabajos de Bell y Ericsson en los años 50 y 60, se produjo esa primera llamada de 1973 que popularizó todo el sector (ver figura 1).
Figura 1. Martin Cooper, el padre del teléfono móvil [5].
Aunque la primera llamada se realizó ese 3 de abril de 1973, no fue hasta 1979 cuando Japón se convirtió en el primer país en contar con servicio de telefonía móvil. A Europa llegó en 1981 y Estados Unidos habilitó el servicio comercial en 1983.
La telefonía móvil ha pasado hasta el momento por cuatro generaciones (ver figura 2). Son las siguientes:
La primera generación 1G [6] [7] se caracterizó por ser analógica y estrictamente para voz. Los dispositivos móviles por aquella época - años 80 - eran relativamente grandes, la calidad de los enlaces de voz era muy baja, la transferencia entre celdas era muy imprecisa y la seguridad no existía.
El sistema predominante de esta generación era AMPS (Advanced Mobile Phone System), el cual fue el primer estándar de redes celulares empleado en Rusia, Asia y el continente americano.
CAPÍTULO 2. ESTADO DEL ARTE.
30
Con la aparición de una segunda generación 2G totalmente digital en la década de los 90, la primera generación de telefonía móvil se volvió obsoleta. Esta nueva generación llegó con estándares como GSM (Global System for Mobile Communications), CDMA (Code Division Multiple Access), TDMA (Time Division Multiple Access) y alguno más. GSM era el estándar más usado en Europa y Estados Unidos a finales del siglo XX. Este sistema utiliza las bandas de frecuencia de 900 MHz y de 1800 MHz en Europa, mientras que en Estados Unidos emplea la banda de 1900 MHz. Es por ello que los teléfonos móviles que pueden funcionar tanto en Europa como en Estados Unidos se denominan teléfonos de tribanda.
Gracias al 2G es posible transmitir voz y datos digitales de volúmenes bajos, como por ejemplo SMS (mensajes de texto) o MMS (mensajes multimedia). Con GSM se puede transmitir a una velocidad máxima de 9,6 kbps.
Antes de la llegada de la tercera generación surgieron otras tecnologías que mejoraban el rendimiento del 2G. Se trata de GPRS (General Packet Radio System), conocida como 2.5 G y que permite unas velocidades cercanas a 40 kbps, y EDGE (Enhanced Data Ratesfor Global Evolution), con una tasa de datos teórica de 384 kbps y anunciada como 2.75 G.
Las especificaciones IMT-2000 (International Mobile Telecommunications) de la ITU (International Communication Union) definieron las características de la tercera generación 3G:
Alta velocidad de transmisión de datos:
o 144 kbps con cobertura total para uso móvil. o 384 kbps con cobertura media para uso de peatones. o 2 Mbps con áreas de cobertura reducida para uso fijo.
Compatibilidad mundial.
Compatibilidad de los servicios móviles de 3G con las redes de segunda generación.
La tercera generación ofrece la posibilidad de usos multimedia, como por ejemplo transmisión de vídeos o audios, videoconferencias o acceso a internet de alta velocidad. Las redes 3G utilizan las siguientes bandas de frecuencia: 1885 a 2025 MHz y 2110 a 2200 MHz.
El estándar más importante que se usa en Europa se llama UMTS (Universal Mobile Telecommunications System) y emplea codificación W-CDMA (Wideband Code Division Multiple Access). La tecnología UMTS usa bandas de 5 MHz para transmitir voz y datos con velocidades que van desde los 384 kbps a los 2 Mbps.
HSDPA (High Speed Downlink Packet Access) es un protocolo de telefonía móvil, apodado 3.5 G, que puede alcanzar velocidades de datos de 8 a 10 Mbps. Este sistema usa la banda de frecuencia de 5 GHz y, al igual que UMTS, codificación W-CDMA.
CAPÍTULO 2. ESTADO DEL ARTE.
31
La cuarta generación o 4G [5] llegó en 2011 y ofrece, entre otras mejoras, mayor seguridad y calidad de servicio (QoS), junto a velocidades de acceso muy superiores de 100 Mbps en movimiento y 1 Gbps en reposo.
Está basada completamente en el protocolo IP, siendo un sistema de sistemas y una red de redes, que se alcanza gracias a la convergencia entre las redes de cables e inalámbricas. La norma LTE (Long Term Evolution) es la más extendida aunque no la única existente.
Figura 2. Evolución de la telefonía móvil [Fuente: losinges.webnode.mx]
2.2 El teléfono inteligente
Un smartphone o teléfono inteligente (ver figura 3), tal y como define Borja Saz en
[8], es aquel dispositivo móvil que cumple unas determinadas características:
Funcionalidad avanzada: este tipo de teléfonos no sirven únicamente para llamar o recibir mensajes SMS. Un smartphone es capaz de realizar tareas más complejas tales como la gestión del correo personal o la reproducción de contenidos multimedia, entre otros.
Hardware especializado: estos dispositivos cuentan con hardware dedicado
para la realización de múltiples tareas avanzadas como puede ser un chip GPS (Global Positioning System), un giroscopio o un acelerómetro, entre otras.
Alta capacidad de cómputo: toda esta funcionalidad avanzada que poseen estos dispositivos es posible gracias a la alta capacidad de procesamiento de información.
CAPÍTULO 2. ESTADO DEL ARTE.
32
Figura 3. El primer smartphone de Apple, iPhone [5].
Según J. Cheng et al. [9] un smartphone es:
«Un nuevo tipo de dispositivo de comunicación que combina la funcionalidad de los teléfonos móviles tradicionales (por ejemplo, voz y mensajería) con aquellos que son de computación en movilidad como las PDAs (Personal Digital Assistant).» Por su parte, G.W. Chow y A. Jones [10] definen a este tipo de dispositivos de un modo más específico: «Los teléfonos móviles hoy en día han evolucionado hasta convertirse en una plataforma de comunicación y de cómputo ubicua donde los usuarios pueden hacer las llamadas como un teléfono tradicional, crear diapositivas de una presentación, editar documentos, escuchar música, ver vídeos, jugar juegos, y acceder a Internet, todo desde un único dispositivo móvil, simplemente conocido como teléfono inteligente.»
2.3 Sistemas operativos de dispositivos móviles
Un terminal inteligente con las características descritas anteriormente requiere un
sistema operativo específico que lo haga funcionar.
Un sistema operativo [11] es un componente software de la infraestructura base de
un sistema informatizado que controla todas las operaciones básicas del ordenador u
otros dispositivos electrónicos como PDA, smartphone, etc. El sistema operativo
permite al usuario instalar y ejecutar aplicaciones de terceros, añadiendo nuevas
funcionalidades al dispositivo.
En la actualidad hay una gran variedad de sistemas operativos para estos teléfonos
inteligentes, pero los que dominan el mercado a nivel mundial y nacional son iOS y
Android.
CAPÍTULO 2. ESTADO DEL ARTE.
33
Figura 4. Android vs iOS a nivel mundial [Fuente: xatakamovil.com]
El sistema operativo de Google tiene un 82,8% de cuota de mercado a nivel mundial, seguido de iOS con un 13,9% (ver figura 4). Otras plataformas como Windows Phone y BlackBerry obtienen un 2,6% y 0,3% respectivamente. En agosto de 2015 el número de usuarios de CyanogenOS ya superaba a la suma de estos dos últimos [12].
Otras plataformas emergentes como Tizen, Firefox OS y Ubuntu Touch, probablemente se asienten en el mercado y obtengan buenos resultados en un futuro no muy lejano, pero aún están a mucha distancia de los dos sistemas operativos móviles líderes en el mercado actualmente.
Figura 5. Cuota de mercado de sistemas operativos móviles en España [Fuente: xatakamovil.com]
CAPÍTULO 2. ESTADO DEL ARTE.
34
Según el estudio realizado por Kantar en el mes de agosto de 2015 (ver figura 5), la
cuota de ventas de iOS en España ha descendido en 1.3 puntos respecto a 2014
(verde oscuro), quedándose en un 6,2%. La cuota de Android crece ligeramente
hasta el 89,5% (+1,4p) mientras que Windows Phone sigue sin levantar el vuelo con
un 3.9% (-0,3p) [13].
2.3.1 Android
Figura 6. Logo de Android.
Android, cuyo logo se puede ver en la figura 6, es un sistema operativo orientado a dispositivos móviles basado en una versión modificada del sistema operativo GNU y el núcleo Linux [8]. Fue creado por la empresa Android Inc., fundada en 2003 y posteriormente comprada por Google en 2005. Tal y como describe Jesús Tomás en [14], entre las características más importantes de este sistema operativo se encuentran:
Plataforma realmente abierta. Es una plataforma de desarrollo libre basada en Linux y de código abierto.
Adaptable a cualquier tipo de hardware. Android no ha sido diseñado exclusivamente para su uso en teléfonos y tablets. Hoy en día se pueden encontrar relojes, cámaras, electrodomésticos, etc. que se basan en este sistema operativo. Esto tiene sus ventajas, pero también supone un esfuerzo adicional al programador, ya que la aplicación debe funcionar correctamente en dispositivos con gran variedad de tipos de entrada, pantalla, memoria, etc.
Portabilidad asegurada. Las aplicaciones finales son desarrolladas en Java, lo que nos asegura que podrán ser ejecutadas en cualquier tipo de CPU.
Arquitectura basada en componentes inspirados en Internet. El diseño de la interfaz de usuario se hace en XML, lo que permite que una misma aplicación se ejecute en un reloj de pantalla reducida o en un televisor.
Conectividad completa a Internet. Muchas aplicaciones sólo funcionan si se dispone de una conexión permanente a Internet.
CAPÍTULO 2. ESTADO DEL ARTE.
35
Gran cantidad de servicios incorporados como, por ejemplo, localización basada en GPS, bases de datos con SQL, reconocimiento y síntesis de voz, navegador, multimedia...
Aceptable nivel de seguridad. Los programas se encuentran aislados unos
de otros gracias al concepto de ejecución dentro de una caja que hereda de Linux. Además, cada aplicación dispone de una serie de permisos que limitan su rango de actuación (servicios de localización, acceso a Internet, etc.). Desde La versión 6.0 el usuario puede conceder o retirar permisos a las aplicaciones en cualquier momento.
Optimizado para baja potencia y poca memoria. En el diseño de Android se ha tenido en cuenta el hardware específico de los dispositivos móviles. Utiliza la Máquina Virtual ART (o Dalvik en versiones antiguas).
Alta calidad de gráficos y sonido. Gráficos vectoriales suavizados, animaciones inspiradas en Flash, gráficos en 3D basados en OpenGL. Incorpora codecs más comunes de audio y vídeo, incluyendo H.264 (AVC), MP3, AAC, etc.
En conclusión, Android ofrece una forma sencilla y novedosa de implementar potentes aplicaciones para diferentes tipos de dispositivos.
2.3.2 iOS
Figura 7. Logo de iOS.
iOS, cuyo logo se puede ver en la figura 7, es un sistema operativo móvil desarrollado por Apple Inc. Inicialmente fue creado para el iPhone (ver figura 8), pero actualmente lo utilizan los demás dispositivos móviles de esta compañía como el iPad, iPod touch... [15].
Este sistema operativo [16] está orientado específicamente para su uso mediante dispositivos móviles con pantalla táctil. iOS es una variante del Mac OS X, que es el sistema operativo para computadoras de la marca Apple y, al igual que él, está basado en Unix.
Una de las peculiaridades más valoradas por los usuarios de este sistema operativo móvil, es su funcionalidad y capacidad para trabajar con múltiples programas a la vez y en segundo plano, lo que es conocido como la multi-tarea.
CAPÍTULO 2. ESTADO DEL ARTE.
36
Además, incorpora la tecnología multi-touch, la cual es capaz de reconocer múltiples gestos y toques en la pantalla. Gracias a esta tecnología se puede, por ejemplo, ampliar o reducir una imagen simplemente pellizcando en la pantalla.
Figura 8. Steve Jobs presentando el primer iPhone en 2007 [Fuente: infobae.com]
Su simplicidad y optimización, tal y como se menciona en [17], son sus pilares para que millones de usuarios se decanten por iOS en lugar de escoger otras plataformas que necesitan más hardware para mover con fluidez el sistema.
2.4. La plataforma de trabajo: Android La lucha entre iOS y Android no tiene un vencedor claro y depende del usuario
decidir cuál se acerca más a sus preferencias.
Para este proyecto se ha decidido trabajar con la plataforma Android debido
principalmente a su filosofía de software libre, pues es una plataforma de código
abierto que no impone restricciones a la hora de crear aplicaciones. Además, como
se ha visto anteriormente, Android es el sistema operativo más utilizado hoy en día
y tiene soporte para una gran variedad de dispositivos.
CAPÍTULO 2. ESTADO DEL ARTE.
37
2.4.1 Historia
La historia de Android [18] se remonta al año 2003, cuando el sistema fue
desarrollado por la compañía Android Inc., una pequeña empresa ubicada en Palo
Alto, California, que en 2005 fue comprada por Google, y que junto con la Open
Handset Alliance, un conglomerado de diferentes compañías colaboradoras, continúo
con el desarrollo del sistema.
En la figura 9 se muestra la línea de tiempo de las diferentes versiones que se han
lanzado hasta la fecha de este sistema operativo:
Figura 9. Línea de tiempo de las versiones de Android [Fuente: cubettech.com]
La primera versión oficial y encargada de estrenar la plataforma en el mercado fue
Android 1.0. Llegó a finales de 2008 y ofrecía un conjunto de características y
funcionalidades que ahora se consideran básicas, pero que para la época eran
punteras. Presentaba una tienda de aplicaciones llamada Android Market, así como
compatibilidad y sincronización con los múltiples servicios de aplicaciones de Google
(Maps, Contactos, Calendar, mensajería instantánea e incluso Youtube).
En Abril de 2009 comenzó la tradición de ponerle nombres de dulces a las
actualizaciones del sistema operativo y se liberó Android 1.5 'Cupcake', con grandes
cambios. Con esta versión, Android se convirtió en una plataforma con cierto
reconocimiento y empezó a recibir el apoyo de muchos fabricantes. Se introdujeron
los widgets en las pantallas de Android, las transiciones animadas y se mejoraron
muchas de las apps integradas en el sistema, como los contactos o Youtube.
Unos meses después del éxito de Cupcake, llegó Android 1.6 'Donut', que mantuvo la
mayoría de los elementos de la interfaz pero añadió múltiples mejoras en cuanto a
compatibilidad de hardware (soporte para redes CDMA/EVDO, VPNs) o a
reconocimiento de voz. Con Donut en el mercado, el valor de Android continuó
creciendo, y la plataforma pasó a ser la principal nueva rival de iOS.
Sólo un mes después de la versión 1.6 Google lanzó Android 2.0 'Éclair'. La segunda
gran versión vino acompañada de muchas mejoras y novedades, entre las que se
incluyen mejor sistema de sincronización, soporte para ciertas tecnologías, cambios
en la interfaz de algunas aplicaciones o nuevas funcionalidades.
CAPÍTULO 2. ESTADO DEL ARTE.
38
En mayo de 2010 se liberó Android 2.2 'Froyo', una de las versiones más conocidas
de la historia de Android, con la principal virtud de ofrecer un importante lavado de
cara así como un amplio listado de novedades. Entre ellas encontramos las
notificaciones push, un nuevo motor para el navegador, soporte para pantallas de
alta resolución, instalación de apps en la memoria externa y mucho más. Froyo fue
una de las versiones con mayor éxito y aceptación por parte del público, y tuvo tres
actualizaciones menores que solucionaron algunos errores.
Android 2.3 'Gingerbread' también es una de las grandes y más importantes
versiones de Android, e igualmente sigue estando operativa. Esta versión mantuvo los
cambios en la interfaz que su predecesor había introducido aunque añadió algunas
modificaciones y mejoras que, principalmente, afectaban a la velocidad de respuesta
y a nuestra experiencia. Además, ofrecía compatibilidad con nuevas tecnologías
como NFC o nuevas pantallas más grandes y con mejor resolución. Durante unos 10
meses se introdujeron un total de siete actualizaciones de Gingerbread que en la
mayoría de los casos solucionarían bugs menores, pero que también permitieron
conocer nuevas funcionalidades como Google Wallet, una de las tecnologías
precursoras del actual pago en el móvil.
En mayo de 2011 lanzaron Android 3.0 'Honeycomb', una versión exclusiva de tablets, que se estrenó con el Motorola Xoom. No obstante, a pesar del relativo fracaso de la plataforma, quizá debido a su separación de las versiones para smartphones, Honeycomb se mantuvo durante un año con actualizaciones periódicas que introdujeron múltiples y notables cambios.
Unos meses más tarde del lanzamiento de Honeycomb, concretamente en Octubre de
2011, llegó una versión con cambios realmente significativos, Android 4.0 'Ice Cream
Sandwich'. La interfaz de la versión 4.0 se renovó casi al completo gracias a la
introducción de nuevos botones, iconos, barras de notificaciones o incluso a la
tipografía utilizada, Roboto. Tampoco se olvidaron de nuevas tecnologías como
WiFiDirect, aceleración de vídeo vía hardware o grabación de vídeo 1080p.
Ice Cream Sandwich estuvo vigente durante otros diez meses más y, al contrario que las versiones anteriores, no recibió tantas actualizaciones.
Android 4.1'JellyBean' apareció en julio de 2012 con una estética muy parecida a la
de ICS. Sin embargo, Google continuó mejorando y optimizando la plataforma, con
ciertos cambios que proporcionaron una mayor fluidez general del sistema y mayor
compatibilidad con el hardware. JellyBean fue la primera versión de Android para
smartphones y tablets, simultáneamente, y de hecho fue la tablet Nexus 7 la que se
encargó de estrenarla.
En Octubre de 2013 Google sorprendió al mundo entero llegando a un acuerdo con
una famosa marca de chocolatinas para lanzar Android 4.4 'KitKat', que es una de
las versiones que más cambios ha introducido tanto a nivel estético como a nivel
interno. En la actualidad es la versión más utilizada de Android en todo el mundo
gracias a sus cuatro actualizaciones que han logrado llevar estabilidad al sistema.
CAPÍTULO 2. ESTADO DEL ARTE.
39
La última versión liberada oficialmente, Android 5.0 'Lollipop' trajo consigo grandes cambios sobre todo en la interfaz, que se ha redefinido casi al completo para incluir el denominado Material Design. Pero ésta no es la única novedad, ya que además de la parte gráfica, Google implementó múltiples nuevas funcionalidades como una nueva máquina virtual (ART), un nuevo sistema de notificaciones, mejor gestión de la energía, nuevo teclado y la definitiva unificación entre los sistemas de smartphone, tablet y también smartwatch y TV.
Este importante paquete de mejoras continuó creciendo con la subversión Android 5.1, que introdujo en marzo de 2015 nuevas posibilidades: soporte oficial para dual-SIM, protección frente a pérdidas o robos, o incluso llamadas en alta definición.
Por último, está Android 6.0 'Marshmallow', la última versión de Android que se presentó en mayo de 2015. Su listado de novedades es muy amplio, pero la más importante quizá sea la introducción de la plataforma de pagos de Google, Android Pay, y es que ésta es una funcionalidad de la que se prevé un enorme crecimiento durante los próximos años. Junto al pago vía móvil llega el soporte nativo para los lectores de huellas, elemento fundamental para añadir una dosis de seguridad al proceso.
2.4.2 Arquitectura
El sistema operativo Android está estructurado en varias capas (ver figura 10). Cada
una de estas capas utiliza elementos de la capa inferior para realizar sus funciones,
por lo que a este tipo de arquitectura se le conoce también como "pila" [19].
Figura 10. Arquitectura de Android [Fuente: hermosaprogramacion.com]
CAPÍTULO 2. ESTADO DEL ARTE.
40
Las principales funciones de estos niveles, tal y como describen J. Tomás en [20] y L.
Cancela en [21], son las siguientes:
Kernel de Linux: el núcleo de Android está basado en el kernel de Linux
versión 2.6. Esta capa proporciona servicios como la seguridad, el manejo de
la memoria, el multiproceso, la pila de protocolos y el soporte de drivers para
dispositivos. Además, actúa como capa de abstracción entre el hardware y el
resto de la pila, por lo que es la única dependiente del hardware.
Android Runtime: al mismo nivel que las librerías de Android se sitúa el
entorno de ejecución. Éste lo constituyen las Core Libraries, que son librerías
con multitud de clases Java y la máquina virtual Dalvik, optimizada para que
cada aplicación se ejecute en su propio proceso y consumir así la mínima
memoria.
Librerías: incluye un conjunto de librerías en C/C++ usadas en varios
componentes de Android. Junto al núcleo basado en Linux, estas librerías
constituyen el corazón de Android.
Algunas de estas librerías son:
System C library: una derivación de la librería BSD de C estándar
(libc), adaptada para dispositivos embebidos basados en Linux.
Media Framework: librería basada en OpenCORE de PacketVideo.
Soporta codecs de reproducción y grabación de multitud de formatos
de audio y vídeo e imágenes MPEG4, H.264, MP3, AAC, AMR, JPG y
PNG.
Surface Manager: maneja el acceso al subsistema de representación
gráfica en 2D y 3D.
WebKit/Chromium: soporta un moderno navegador Web utilizado en
el navegador Android y en la vista Webview. En la versión 4.4, WebKit
ha sido reemplazada por Chromium/Blink, que es la base del
navegador Chrome de Google.
SGL: motor de gráficos 2D.
Librerías 3D: implementación basada en OpenGL ES 1.0 API. Las
librerías utilizan el acelerador hardware 3D si está disponible, o el
software altamente optimizado de proyección 3D.
FreeType: fuentes en bitmap y renderizado vectorial.
SQLite: potente y ligero motor de bases de datos relacionales
disponible para todas las aplicaciones.
SSL: proporciona servicios de encriptación Secure Socket Layer (capa de conexión segura).
Framework de aplicaciones: representa el conjunto de herramientas de
desarrollo de cualquier aplicación. Cualquier aplicación que se desarrolle para
Android utiliza el mismo conjunto de API (Application Programming Interface)
y el mismo framework, representado por este nivel.
CAPÍTULO 2. ESTADO DEL ARTE.
41
Entre las API más importantes se encuentran:
Activity Manager: gestiona el ciclo de vida de las aplicaciones.
Window Manager: gestiona las ventanas de las aplicaciones y utiliza la
librería Surface Manager.
Content Provider: permite a cualquier aplicación compartir sus datos
con las demás aplicaciones de Android. Por ejemplo, gracias a esta API
la información de contactos, agenda, mensajes, etc. será accesible
para otras aplicaciones.
View System: proporciona un gran número de elementos para poder
construir interfaces de usuario (GUI), como listas, botones, tamaño de
ventanas, control de las interfaces mediante teclado, etc.
Notification Manager: permite que las aplicaciones comuniquen al
usuario eventos que ocurran durante su ejecución: una llamada
entrante, un mensaje recibido, conexión Wi-Fi disponible, ubicación en
un punto determinado, etc.
Location Manager: posibilita a las aplicaciones la obtención de
información de localización y posicionamiento.
Aplicaciones: este nivel contiene tanto las aplicaciones incluidas por defecto
de Android como aquellas que el usuario vaya añadiendo posteriormente.
Todas estas aplicaciones utilizan los servicios, las API y librerías de los niveles
anteriores.
2.4.3 Estructura de una aplicación
Conocida ya la arquitectura del sistema operativo y sus distintas versiones, lo
siguiente es saber cómo está estructurada una aplicación. Para ello, en primer lugar
se presentarán las partes de las que consta un proyecto [22] [23] y, posteriormente,
los componentes que son necesarios emplear en el desarrollo de una aplicación
Android además del ciclo de vida de una Activity, tal y como describen J. Tomás en
[24] y J. Revelo en [25].
Directorios
Un proyecto creado en Android Studio está formado por un descriptor de la
aplicación, el código fuente en Java, los recursos y los archivos de construcción de
Gradle (ver figura 11).
CAPÍTULO 2. ESTADO DEL ARTE.
42
Figura 11. Directorios de Politécnica Cuenca.
manifests: aquí se encuentra el fichero AndroidManifest.xml, en el cual se
indican las actividades, las intenciones, los servicios y los proveedores de
contenido de la aplicación. Además, se declaran los permisos que requerirá la
aplicación y se indican la versión mínima de Android para poder ejecutarla, el
paquete Java, la versión de la aplicación, etc.
java: carpeta que contiene el código fuente de la aplicación. Los ficheros
Java se almacenan en carpetas según el nombre de su paquete.
res: carpeta que contiene los recursos usados por la aplicación.
drawable: en este directorio se encuentran las imágenes en formato
PNG o JPEG.
layout: contiene ficheros XML con vistas de la aplicación. Las vistas
permiten configurar las diferentes pantallas que compondrán la
interfaz de usuario de la aplicación. Se utiliza un formato similar al
HTML usado para diseñar páginas web.
menu: ficheros XML con los menús de cada actividad.
mipmap: contiene los iconos de la aplicación con sus diferentes
resoluciones.
values: archivos XML que definen valores constantes. En dimens.xml,
se especifican el margen horizontal y vertical por defecto. En el
fichero strings.xml, se definen todas las cadenas de caracteres de la
aplicación. Finalmente en styles.xml, se determinan los estilos y
temas de la aplicación.
CAPÍTULO 2. ESTADO DEL ARTE.
43
Gradle Scripts: en esta carpeta se almacenan una serie de ficheros Gradle
que permiten construir la aplicación. Se pueden definir aspectos importantes
como la verisón del sdk de compilación (target Sdk Version) y la versión
mínima (min Sdk Version).
Componentes
Existen varios elementos que resultan imprescindibles para desarrollar aplicaciones
en Android. Algunos de los más importantes son:
View: las vistas son los elementos que componen la interfaz de usuario de una
aplicación como, por ejemplo, un botón o una entrada de texto. Todas las
vistas son objetos descendientes de la clase View, y por tanto, pueden ser
definidas utilizando código Java. Sin embargo, lo habitual es definir las vistas
utilizando un fichero XML y dejar que el sistema cree los objetos por nosotros
a partir de este fichero.
Layout: un layout es un conjunto de vistas agrupadas de una manera
determinada. Hay distintos tipos de layouts para organizar las vistas de forma
lineal (LinearLayout), en cuadrícula o indicando la posición absoluta de cada
vista (RelativeLayout). Los layouts también son objetos descendientes de la
clase View y, como las vistas, los layouts también pueden ser definidos en
código, pero lo normal es definirlos utilizando código XML.
Activity: una actividad es la representación visual e interactiva en una
aplicación. Se puede definir como un conjunto de elementos básicos de
visualización, coloquialmente conocidos como pantallas de la aplicación. Está
conformada por dos archivos, un archivo XML (parte gráfica) y un archivo
.Java (parte lógica).
Fragment: sección de la interfaz de usuario embebida dentro de una actividad
anfitriona que permite versatilidad y optimización de diseño. Se trata de
pequeñas actividades contenidas dentro de una actividad anfitriona,
manejando su propio diseño y ciclo de vida.
Un fragment permite reusar código y ahorrar tiempo de diseño a la hora de
desarrollar una aplicación. Los fragmentos facilitan el despliegue de la
aplicación en cualquier tipo de tamaño de pantalla y orientación [26]. En la
figura 12 se puede ver más claramente lo explicado anteriormente.
CAPÍTULO 2. ESTADO DEL ARTE.
44
Figura 12. Ejemplo de una actividad con dos fragmentos [26].
Service: un servicio es una entidad que ejecuta instrucciones en segundo
plano sin la necesidad de la interacción del usuario. Son muy utilizados para
realizar acciones de larga duración como puede ser un servicio de
notificaciones, guardar información en la base de datos, escuchar música
mientras se ejecuta la aplicación, administrar conexiones de red, etc.
mientras las actividades muestran otro tipo de información.
Intent: mensaje que se envía de un componente a otro, o entre una
aplicación y otra para comunicarse. Se podría decir que equivalen a los links
entre páginas web.
Broadcast Receiver: trigger (disparador) implementado para activarse cuando
un intent se envía entre componentes. Recibe y reacciona ante anuncios de
tipo broadcast (batería baja, llamadas entrantes, correos...). Estos anuncios
pueden ser originados por el sistema o por las aplicaciones.
Content Provider: en muchas ocasiones se necesita compartir información
entre distintas aplicaciones. Con este componente podremos acceder a datos
de otras aplicaciones, como la lista de contactos, o proporcionar datos a otras
aplicaciones sin comprometer la seguridad del sistema de ficheros.
CAPÍTULO 2. ESTADO DEL ARTE.
45
Ciclo de vida de una actividad
A diferencia de otros lenguajes como Java o C/C++, una actividad en Android no tiene asignado un método main() como punto de entrada principal, ya que su inicio es responsabilidad de la capa de Framework para aplicaciones. En esta capa se encuentra el servicio Activity Manager, el cual se encarga de crear, destruir y manejar todas las actividades de la aplicación.
Una actividad puede interpretarse como una máquina de estados que está pendiente de las acciones del usuario. Aunque el programador no puede controlar la forma en que se iniciará, sí puede decidir qué sentencias se ejecutarán en cada estado.
Los estados por los cuales puede transcurrir una aplicación son los siguientes: Creación, Ejecución, Reanudación, Pausa, Parada y Destrucción. A la relación entre ellos se le llama Ciclo de vida de una actividad (ver figura 13).
Figura 13. Ciclo de vida de una actividad [Fuente: androidsis.com].
CAPÍTULO 2. ESTADO DEL ARTE.
46
Creación: una actividad se ha creado cuando su estructura se encuentra en memoria, pero ésta no es visible aún. Cuando el usuario presiona sobre el icono de la aplicación en su dispositivo, el método onCreate() es ejecutado para cargar el layout de la actividad principal en memoria.
Ejecución-Reanudación: después de haber sido cargada la actividad se llaman a los métodos onStart(), para hacer visible la actividad, y onResume(), para que la actividad empiece a interactuar con el usuario.
Pausa: una actividad está en pausa cuando se encuentra en la pantalla parcialmente visible. Un ejemplo sería cuando se abren diálogos que toman el foco superponiéndose a la actividad. El método llamado para la transición hacia la pausa es onPause().
Detención: una actividad está detenida cuando no es visible en la pantalla, pero aún se encuentra en memoria y en cualquier momento puede ser reanudada. Cuando una aplicación es enviada a segundo plano se ejecuta el método onStop(). Al reanudar la actividad, se pasa por el método onRestart() hasta llegar a el estado de ejecución y luego al de reanudación.
Destrucción: cuando la actividad ya no existe en memoria se encuentra en estado de destrucción. Antes de pasar a destruir la aplicación se ejecuta el método onDestroy(). Lo normal es que las actividades no implementen este método, a menos que deban destruir procesos en segundo plano.
49
3 DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN
Contenidos
3.1 Principales claves para que una app tenga éxito
3.2 Análisis de aplicaciones del ámbito universitario existentes en el mercado
3.2 Encuesta de opinión del alumnado de la EPC
En este tercer apartado se presentan, en primer lugar, los principales requisitos para
que triunfe una aplicación y, posteriormente, se realiza un análisis de varias
aplicaciones del ámbito universitario publicadas en Google Play y se muestran los
resultados de una encuesta de opinión realizada a los alumnos de la EPC con el fin de
definir los contenidos de la aplicación.
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
51
3.1 Principales claves para que una app tenga éxito
El mercado de las aplicaciones no deja de crecer y crecer, por lo que es muy difícil
conseguir que una aplicación destaque sobre las demás. Las expectativas de los
usuarios en un mercado tan amplio son muy altas, por lo que para satisfacerlas se
debe desarrollar una aplicación novedosa, sencilla pero a la vez con un diseño bonito
y, sobre todo, que sea útil [27] [28].
Figura 14. App de éxito Wallapop [Fuente: rincondelatecnologia.com]
Una idea original para una app no es exitosa sin una experiencia de usuario
agradable. Cada mes se suben miles de aplicaciones a Google Play pero pocas
obtienen éxito. Esto se debe a los factores de innovación y experiencia de usuario.
Hoy en día una app debe de tener la menor dificultad posible para realizar las tareas,
esto es hacer menos clics, pues la tendencia que nos ha dado la tecnología va hacia
un mundo con todo automatizado [29].
Según Álvaro Verdoy [30], para que la experiencia de usuario sea agradable, las
aplicaciones deben tener una interfaz que cumpla los siguientes requisitos:
Sencilla. Debe incluir lo justo, menos es más. Clara. No hay que innovar a la hora de definir los elementos. Es mejor llamar
las cosas por su nombre o como normalmente los usuarios las conocen. Intuitiva. Una aplicación intuitiva es aquella que no necesita de ninguna
explicación previa o manual para ser utilizada. Visual. Cada vez los usuarios vamos más rápido instalando, probando y
eliminando aplicaciones. Por eso, la interfaz se debe poder escanear fácilmente, es decir, sin necesidad de tener que leer con detalle las diferentes opciones.
Fluida. Hay que procurar que las transiciones entre pantallas y las acciones sean ágiles.
Libre de errores. Éste suele ser el punto más complicado, al menos para las primeras versiones. Ni siquiera las compañías grandes del sector consiguen sacar una aplicación perfecta a la primera, por lo que no hay que desesperarse.
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
52
El diseño de las aplicaciones es fundamental. Cuando dos aplicaciones compiten en un mismo mercado, suele salir como ganadora aquella que se adapta a lo que demandan las tendencias actuales en cuanto a diseño se refiere. Buen ejemplo de ello es Wallapop (ver figura 14), con un diseño moderno y pequeños detalles que imprimen una personalidad propia a la app.
Las aplicaciones atractivas venden más, se utilizan durante más tiempo y están mejor valoradas, siendo el icono la parte principal sobre el que gira todo lo demás. Un icono que ha de ser descriptivo, sencillo y fácil de recordar.
La clara tendencia actual del diseño gira en torno al denominado "flat design": líneas claras, modelo en cuadrícula y minimalista. Una estética que llevaron al mercado marcas como Microsoft o Apple, siendo esta última la que más éxito cosechó [27].
3.2 Análisis de aplicaciones del ámbito universitario existentes
en el mercado
Buscando en la tienda oficial de aplicaciones de Android (Play Store) se puede
encontrar una gran cantidad de aplicaciones oficiales de distintas universidades y/o
facultades de España. Se han seleccionado algunas de las aplicaciones más similares
a la que se pretende desarrollar en este proyecto y se han instalado en un dispositivo
móvil con el sistema operativo Android con el fin de hacer un pequeño análisis. Esas
aplicaciones son las siguientes:
Facultad de Comunicación y D.
Aplicación oficial de la Facultad de Comunicación y
Documentación de la Universidad de Granada (figura 15).
Esta aplicación permite acceder a información de interés de
esta prestigiosa institución. En la figura 16 se pueden ver
todas las secciones de las que dispone.
Valoración en Play Store: 4,7/5 Figura 15. Logo de Facultad de
Comunicación y D. [Fuente: Play Store]
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
53
Figura 16. Pantalla principal de la app de la FCD de la Univ. de Granada.
UAH
Aplicación móvil de la Universidad de Alcalá (figura 17)
desarrollada en su totalidad por estudiantes del grado de
Ingeniería Informática. En la figura 18 se muestran los
distintos apartados de esta aplicación.
Valoración en Play Store: 4,4/5
Figura 17. Logo de UAH [Fuente: Play Store]
Figura 18. Pantalla principal de la app de UAH.
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
54
UPV - Politécnica de Valencia
Aplicación desarrollada por alumnos, titulados y técnicos
de la Universitat Politécnica de Valencia (figura 19). El
proyecto se inició en 2011 y, un año después, estuvo
disponible la primera versión para Android, iOs y Windows
Phone. En la actualidad, es responsabilidad del Área de
Comunicación, en colaboración con el Área de Sistemas de
Información y Comunicaciones.
Valoración en Play Store: 3,4/5
Universidad de Extremadura
La Universidad de Extremadura (figura 21) ofrece esta
aplicación para facilitar el acceso a información de interés
para la comunidad universitaria. En la figura 22 se muestra
la pantalla principal de esta aplicación.
Valoración en Play Store: 3,8/5
Figura 19. Logo de UPV [Fuente: Play Store]
Figura 20. Pantalla de bienvenida y menú de la app de la UPV
Figura 21. Logo de UEX [Fuente: Play Store]
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
55
UVa App - Universidad de Valladolid
Aplicación Oficial de la Universidad de Valladolid (figura
23). En la figura 24 se puede ver la pantalla principal de
esta app. El apartado de actualidad se encuentra en
construcción.
Valoración en Play Store: 3,8/5
Figura 22. Pantalla de bienvenida y pantalla principal de la app de la UEX.
Figura 23. Logo de UVa App [Fuente: Play Store]
Figura 24. Pantalla de bienvenida y pantalla principal de la app de la UVA.
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
56
Universidad de Cantabria
Aplicación de acceso a la información sobre los grados,
másteres, estudios propios y cursos de verano impartidos en
la Universidad de Cantabria (figura 25). Incluye detalles de
organización y el directorio universitario, así como noticias,
los eventos de agenda y redes sociales de Facebook y Twitter
(ver figura 26).
Valoración en Play Store: 3,7/5
Universidad de Murcia App
La Universidad de Murcia (figura 27) te ofrece esta
aplicación para facilitar el acceso a información de interés
para la comunidad universitaria. En la figura 28 se muestra
la pantalla principal de esta aplicación.
Valoración en Play Store: 3,3/5
Figura 25. Logo de Universidad de
Cantabria [Fuente: Play Store]
Figura 26. Pantalla principal de la app de la Universidad de Cantabria.
Figura 27. Logo de Univ. de Murcia [Fuente: Play
Store]
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
57
Figura 28. Pantalla principal de la app de la Universidad de Murcia.
UA
La Universidad de Alicante (figura 29) ha creado esta
aplicación para ofrecer la mayor información posible.
Valoración en Play Store: 3,2/5
Parece ser que esta aplicación la han dejado un poco de
lado ya que actualmente no funciona la sección de noticias
(figura 30) y en muchos apartados te redirecciona a la
página web de la Universidad de Alicante (figura 31).
Figura 29. Logo de UA
[Fuente: Play Store]
Figura 30. Pantalla principal y sección de Noticias de la app de UA.
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
58
UJA Ciencias Experimentales
App para consultar la información más destacada sobre la
Facultad de Ciencias Experimentales de la Universidad de
Jaén (figura 32). La información está organizada para
distintos perfiles de usuario: estudiantes de la Facultad y
futuros estudiantes de la Universidad de Jaén interesados en
conocer la oferta formativa y las instalaciones de la Facultad
(figura 33).
Valoración en Play Store: 3,3/5
Figura 31. Página web de la Universidad de Alicante.
Figura 32. Logo de UJA Ciencias Experimentales
[Fuente: Play Store]
Figura 33. Pantalla de perfil y menú de la app de la FCE de la UJA.
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
59
Universidad de Oviedo (UniOvi)
La aplicación oficial de la Universidad de Oviedo (figura 34)
convierte tu móvil en el acceso rápido a muchos servicios y
datos de interés de la Universidad. En la figura 35 se pueden
ver algunos de estos servicios.
Valoración en Play Store: 3,1/5
Figura 35. Pantalla principal de UniOvi.
En la tabla1 se muestran los contenidos que ofrecen cada una de las aplicaciones
mencionadas anteriormente.
Figura 34. Logo de UniOvi [Fuente: Play
Store]
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
60
FCD UAH UPV UEX UVA Univ. de Cantabria Univ. de Murcia UA UJA UniOvi
Noticias x x x x x x x x
Información sobre las titulaciones
x x x x x x x
Directorio del profesorado x x x x x x
Agenda x x x x x
Ubicación de edificios, mapa x x x x x
Redes sociales x x x x
Chat x
Acceso al Campus Virtual x x x
Notificaciones x
Calendario académico x x x x x x
Normativa x x
Acceso al correo universitario x x
Tabla 1. Comparación de contenidos entre aplicaciones de otras Universidades.
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
61
Las aplicaciones anteriores no tienen más de 4-5 contenidos en común, es decir, no
siguen ningún patrón. Sin embargo, se pueden diferenciar tres grupos de contenidos,
según el número de aplicaciones en las que aparecen:
"Muy necesarios", que son aquellos que aparecen en 6 aplicaciones o más. En
este grupo se encuentran: noticias (8), información de las titulaciones (7),
directorio del profesorado (6) y calendario académico (6).
"Necesarios", presentes en 3-5 aplicaciones. Aquí entran: agenda (5),
localización (5), redes sociales (4) y acceso al campus virtual (3).
"Poco necesarios", disponibles en 2 aplicaciones o menos. En este último
grupo están: actividad investigadora (2), normativa (2), vídeos (2), acceso al
correo universitario (2), fotografías (1), chat (1) y notificaciones (1).
La conclusión es que según el desarrollador de cada una de las aplicaciones se han
considerado más necesarios unos contenidos u otros. Cabe destacar que el chat y las
notificaciones, contenidos que podrían ser muy interesantes, tan sólo aparece en una
de las aplicaciones analizadas. Esto quizás no se deba a que los desarrolladores no los
hayan considerado poco necesarios sino a que cuando crearon las aplicaciones
probablemente no disponían de las librerías o API's destinadas a ello y, por tanto, su
implementación era muy compleja.
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
62
3.3 Encuesta de opinión del alumnado de la EPC
Debido a que anteriormente se constató que no existía ningún patrón reiterativo en
las aplicaciones, se decidió realizar una encuesta (ver figura 36) a los propios
alumnos de la Escuela Politécnica de Cuenca para conocer su opinión, ya que son los
clientes potenciales de la aplicación.
Figura 36. Encuesta de opinión del alumnado de la EPC.
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
63
La elaboración de los ítems presentes en la encuesta se basó en las aplicaciones
analizadas con anterioridad y estuvo asesorada por los directores de este trabajo fin
de grado y por la dirección de la Escuela. También colaboraron otros profesores
permitiendo que se pasara la encuesta en una de sus clases.
Además de los ítems de las aplicaciones analizadas se decidió añadir otros
adicionales en la encuesta, puesto que se consideró que era una información muy
importante para los alumnos. Estos ítems son:
Apoyo, orientación y servicios.
Formas de acreditar el nivel B1 de idioma.
Representantes estudiantiles.
En la tabla 2 se muestran los resultados obtenidos en la encuesta, realizada por un
total de 110 alumnos.
Para calcular el promedio se ha utilizado la fórmula de la media ponderada:
Este cálculo es apropiado cuando en un conjunto de datos cada uno de ellos tiene
una importancia relativa (o peso) respecto de los demás datos. Se obtiene
multiplicando cada uno de los datos (xi) por su ponderación o peso (wi) para luego
sumarlos, obteniendo así una suma ponderada. En este caso los datos equivalen a los
grados de relevancia de los contenidos y los pesos al número de alumnos. Después se
divide la suma ponderada entre la suma de los pesos, dando como resultado la media
ponderada.
Así, por ejemplo, el promedio de las noticias se ha obtenido de la siguiente manera:
((0*3 + 1*0 + 2*19 + 3*31 + 4*57)/110) = 359/110 = 3,26
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
64
0 1 2 3 4 Total Promedio
1. Noticias de la escuela (cursos, conferencias, becas...) 3 0 19 31 57 110 3,26
2. Acceso al campus virtual 3 1 11 14 81 110 3,54
3. Foro/Chat con alumnos y profesores 3 12 40 30 25 110 2,56
4. Información del profesorado (correo, despacho, tutorías...) 0 6 8 40 56 110 3,33
5. Planificación académica (horarios y fechas de exámenes) 0 2 6 25 77 110 3,61
6. Información general del título (créditos, salidas profesionales...) 3 11 21 41 34 110 2,84
7. Plan de estudios (asignaturas y créditos) 3 9 28 39 31 110 2,78
8. Normativa UCLM y EPC 10 21 39 26 14 110 2,12
9. Formas de acreditar el nivel B1 de idioma en la UCLM 6 9 29 32 34 110 2,72
10. Representantes estudiantiles (Delegación de alumnos) 10 19 39 27 15 110 2,16
11. Programas de movilidad internacional (Erasmus y América) y nacional 4 5 28 33 40 110 2,91
12. Apoyo, orientación y servicios (Cursos 0, formación complementaria, CIPE...) 2 7 24 43 34 110 2,91
13. Notificaciones de tareas, exámenes... 0 0 4 20 86 110 3,75
14. Acceso al correo universitario 2 5 13 28 62 110 3,30
15. Plano de la escuela 38 33 18 12 9 110 1,28
Tabla 2. Resultados de la encuesta de opinión del alumnado de la EPC.
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
65
Para analizar mejor los resultados obtenidos se ha decidido cuantificar
objetivamente la necesidad de cada contenido, dividiendo proporcionalmente el
rango de puntuación entre tres categorías, de tal forma que la primera categoría
(muy necesarios) queda entre los límites 0-1.33, la segunda (necesarios) entre 1.33-
2.66 y la tercera (poco necesarios) entre 2.66-4:
“Muy necesarios”: en este grupo se encuentran (en negrita): notificaciones
de tareas y exámenes (3,75), planificación académica (3,61), acceso al
campus virtual (3,54), información del profesorado (3,33), acceso al correo de
la universidad (3,30), noticias de la Escuela (3,26), apoyo, orientación y
servicios (2,91), programas de movilidad internacional (2,91), información
general del título (2,84), plan de estudios (2,78) y formas de acreditar el nivel
B1 de idiomas (2,72).
“Necesarios”: aquí se encuentran (en verde): foro/chat con alumnos y
profesores (2,56), representantes estudiantiles (2,16) y la normativa de la
UCLM y de la EPC (2,12).
“Poco necesarios”: en este último grupo sólo se encuentra (en rojo) el plano
de la escuela (1,28).
Como era de esperar, el contenido mejor valorado por los estudiantes ha sido el de
las notificaciones de tareas y exámenes, pues es un servicio que la gran mayoría de
las aplicaciones de hoy en día ofrecen.
El contenido que se considera menos necesario para la aplicación es el plano de la
escuela. Posiblemente esto se deba a que todos los estudiantes que han realizado la
encuesta conocen perfectamente el edificio.
En cuanto a los demás contenidos se puede decir que han sido bastante bien
valorados por los alumnos, ya que todos han obtenido puntuaciones por encima del 2.
Tras haber realizado, por un lado, un análisis de otras aplicaciones de distintas
Universidades y Facultades de España y, por otro, una encuesta a los alumnos de la
Politécnica de Cuenca, se extraen las siguientes conclusiones:
1. Los contenidos que está claro que debe ofrecer la aplicación, ya que son muy
valorados tanto por los desarrolladores de las aplicaciones anteriores como
por los alumnos de la Politécnica, son: noticias de la Escuela, información
del profesorado, planificación académica, información general del título,
plan de estudios, acceso al Campus Virtual y normativas.
2. Otros contenidos como apoyo, orientación y servicios, formas de acreditar
el nivel B1 de idioma o representantes estudiantiles no aparecían en
ninguna de las aplicaciones analizadas y, sin embargo, para los alumnos
encuestados sí son contenidos importantes.
3. A pesar de que sólo una de las aplicaciones mencionadas disponía de
notificaciones, para los alumnos de la Politécnica de Cuenca éste es uno de
los contenidos más necesarios. De igual modo ocurre con el acceso al correo
y el foro/chat de profesores y alumnos.
CAPÍTULO 3. DEFINICIÓN DE LOS CONTENIDOS DE LA APLICACIÓN.
66
4. Sin embargo, con la localización pasa justo lo contrario, pues es un contenido
bastante considerado por los desarrolladores de las aplicaciones analizadas
pero los alumnos de la Politécnica no lo ven tan necesario.
Como conclusión, y teniendo en cuenta los resultados obtenidos anteriormente, se ha
decidido intentar incluir los siguientes contenidos en la aplicación (por orden de
prioridad descendiente):
Notificaciones de tareas y exámenes
Planificación académica (horarios y fechas de exámenes)
Acceso al Campus Virtual
Información del profesorado
Acceso al correo de la Universidad
Noticias de la Escuela
Apoyo, orientación y servicios
Programas de movilidad internacional
Información general del título
Plan de estudios
Formas de acreditar el nivel B1 de idioma
Foro con alumnos y profesores
Representantes estudiantiles
Normativa de la UCLM y de la EPC
69
4 POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO
Contenidos
4.1 ¿Qué es Politécnica Cuenca?
4.2 Diseño de la interfaz de usuario
4.3 Base de datos local - SQLite
4.4 Comunicación entre componentes de la GUI
4.5 Tamaño de la aplicación
4.6 Compatibilidad
En esta sección se explica en primer lugar qué es Politécnica Cuenca y
posteriormente se describe cómo se ha llevado a cabo el proceso de implementación
de cada una de las partes del proyecto.
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
71
4.1 ¿Qué es Politécnica Cuenca?
Politécnica Cuenca, cuyo logo se puede ver en la figura 37, es una aplicación para
dispositivos móviles con sistema operativo Android destinada a los alumnos de la
Escuela Politécnica de Cuenca.
Figura 37. Logo de Politécnica Cuenca.
La aplicación le permite al alumno:
Ver las noticias que se publican en el blog de la Escuela sobre becas,
conferencias, cursos...
Acceder al Campus Virtual (requiere autenticación), la plataforma de la UCLM
para gestionar el material educativo. El alumno puede consultar sus
calificaciones, descargarse los apuntes...
Consultar las fechas de los exámenes.
Consultar el horario.
Saber cuál es el despacho y el correo de un profesor, así como el horario de
tutorías y las asignaturas que imparte.
Gestionar mejor su tiempo de estudio con el uso de la agenda. El alumno
puede saber en todo momento qué tareas tiene pendientes y además tiene la
opción de añadir los eventos a la aplicación del calendario de su dispositivo
para que le avise cuando él quiera.
Informarse sobre los distintos servicios que ofrece tanto la UCLM como la
Escuela Politécnica (Deportes, CIPE, Cursos 0...)
Consultar el calendario académico.
Acceder al correo de la Universidad (requiere autenticación).
Conocer cuáles son las salidas profesionales del grado que está estudiando.
Saber cuáles son las distintas posibilidades que existen para acreditar el nivel
B1 de idiomas (Programa Aprende Lenguas, prueba de nivel de la UCLM...).
Conocer el plan de estudios.
Informarse sobre la realización de prácticas externas (perfil del estudiante,
duración, remuneración económica...). El alumno tiene la posibilidad de
descargarse la normativa y de acceder al portal de prácticas externas del
CIPE.
Informarse sobre los distintos programas de movilidad que ofrece la UCLM
(Erasmus, SICUE...).
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
72
4.2 Diseño de la interfaz de usuario Como ya se vio en el capítulo anterior, toda actividad consta de dos partes: la parte lógica y la parte gráfica. La parte lógica es una archivo .java que es la clase que se crea para poder manipular y colocar el código de esa actividad. La parte gráfica es un archivo XML que tiene todos los elementos que estamos viendo de una pantalla declarados con etiquetas parecidas a las del HTML, es decir, que el diseño de una aplicación en Android se hace similar a una página web [31]. Android facilita un complejo modelo para la construcción de la interfaz de usuario.
Este modelo se fundamenta en la clase View (vista) desde la que se extienden
múltiples clases para cubrir cualquier tipo de necesidad. Los dos tipos de vistas más
importantes que existen son los widgets o controles (Button, TextView, ListView…) y
los layouts o diseños (LinearLayout, RelativeLayout, FrameLayout…) [32].
Una vista, tal y como se define en [33], es un componente que permite controlar la
interacción del usuario con la aplicación. Si se quiere combinar varios elementos de
este tipo se tiene que utilizar un objeto de tipo layout, el cual permite organizar un
conjunto de vistas en su interior. De modo que un layout puede contener, a su vez,
uno o varios layouts [34].
Por tanto, cuando se crea una actividad, lo primero es definir las vistas en el archivo XML y colocarlas en la posición deseada. Para ello Android ofrece al desarrollador una serie de parámetros que permiten definir márgenes, alineaciones, distancias entre views, etc. Después de que se hayan organizado las vistas, en el archivo .java se debe tener una
instancia a cada uno de los elementos views que quieran ser modificados a lo largo
de su ciclo de vida. Esto se consigue asignándole un identificador a cada elemento
view y luego creando un objeto, de tipo igual a la view a la que se instancia, que
buscará la view correspondiente a ese identificador. Una vez que se tenga esto ya se
puede actuar sobre el elemento view desde el archivo .java mediante distintos
métodos como pueden ser el get o el set, si queremos obtener o modificar sus datos
respectivamente.
En este punto se tratará de explicar cómo se han creado las distintas vistas de la
aplicación.
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
73
4.2.1 RelativeLayout y LinearLayout
Tal y como se define en [35], un RelativeLayout es un view group (elemento visual
que contiene otros views) que permite especificar la posición de cada elemento de
forma relativa a su elemento padre o a cualquier otro elemento incluido en el propio
layout. Así, por ejemplo, al incluir un nuevo elemento A podremos indicar mediante
parámetros (ver figura 38) que debe colocarse debajo del elemento B y alineado a la
derecha del layout padre.
Figura 38. Parámetros de un RelativeLayout [36]
Según lo descrito en [36], un LinearLayout distribuye sus vistas en una sola dimensión establecida. Es decir, o todas organizados en una sola columna (vertical) o en una sola fila (horizontal). La orientación se puede definir mediante el atributo android:orientation (ver figura 39).
Figura 39. Orientación de un LinearLayout [36]
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
74
Este tipo de layout también permite asignar una gravedad (left, center, right) a cada componente y un peso que define la importancia que tiene la vista dentro del layout (a mayor importancia más espacio ocupará). En la figura 40 están representados gráficamente estos dos parámetros. En la aplicación Politécnica Cuenca se ha utilizado el RelativeLayout como elemento padre en la mayoría de las actividades, puesto que permite una mejor organización gracias a la referencia relativa que se puede asignar a sus componentes hijos. El LinearLayout se ha empleado en unas actividades dentro de un RelativeLayout y en otras dentro de un ScrollView (elemento del que se hablará en el siguiente punto). Nunca se ha usado como base de una actividad, ya que utiliza referencias absolutas, o lo que es lo mismo, describe al detalle cuáles son las medidas numéricas de sus componentes. Así, por ejemplo, se puede expresar la ubicación de un componente de la siguiente forma: "El botón OK estará ubicado en el punto (200,120) del layout y sus dimensiones son 200x30 dp" Sin embargo, en un RelativeLayout se usarán expresiones como la siguiente: "El botón OK estará ubicado a la izquierda del extremo derecho del TextView y sus dimensiones serán ajustadas al padre" Esto quiere decir que no importa de qué tamaño sea la pantalla del dispositivo o qué densidad tenga, el elemento (el botón en este caso) se ajustará relativamente a las condiciones que se le han impuesto, lo cual permite una mejor experiencia para distintos usuarios sin importar las características de su dispositivo. En la figura 41 se puede apreciar cómo el layout se adapta tanto a una pantalla grande como a una más pequeña.
Figura 40. Gravedad y peso en un LinearLayout.
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
75
Figura 41. Vista Editar Evento en tablet de 7" y smartphone de 5".
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
76
4.2.2 ScrollView
Un ScrollView, según lo descrito en [37], es un contenedor de una jerarquía de vistas
que pueden ser desplazadas por el usuario, permitiendo que sea más grande que la
pantalla física.
En realidad un ScrollView es un FrameLayout (layout más simple que no realiza
ninguna distribución de las vistas, simplemente las coloca unas encima de otras) que
permite el desplazamiento vertical u horizontal, por lo que se debe añadir un layout
(normalmente un LinearLayout con orientación vertical) que presente un conjunto de
elementos por los que el usuario se pueda desplazar.
Gracias a este view se han podido diseñar las actividades de la aplicación que contienen mucho texto y que, de no ser por el desplazamiento vertical, no se podría visualizar en pantalla. En la Figura 42 se puede observar la apariencia que tiene una de estas actividades.
Figura 42. Actividad con un ScrollView.
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
77
4.2.3 WebView
Este tipo de vista sirve para mostrar páginas web bien mediante el navegador web
del dispositivo (externo a la aplicación) o bien dentro de una actividad. Utiliza el
motor de renderizado WebKit para visualizar páginas web e incluye métodos para
navegar hacia adelante y hacia atrás a través de una historia, acercar y alejar,
realizar búsquedas de texto, etc. [38]
Para que la actividad pueda acceder a las páginas web de Internet y las cargue en el
WebView, se deben agregar los permisos de Internet correspondientes al archivo
"manifest.xml" de Android:
En la aplicación se ha empleado este widget para mostrar el acceso al Campus
Virtual de la UCLM, la página web del blog de la Escuela Politécnica de Cuenca (en la
sección de Actualidad), el acceso al correo de la Universidad y las páginas del CIPE y
de UCLM Internacional. En la figura 43 se muestran dos de estas vistas.
<uses-permission android:name="android.permission.INTERNET"
/>
Figura 43. Vistas Actualidad y Campus Virtual.
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
78
A continuación se muestra una parte del código de la actividad que se encarga de
mostrar una web u otra, en función de lo que elija el usuario:
El código de la clase MyWebViewClient es el siguiente:
El primer método de esta clase se ocupa de cargar la url pasada en la misma Activity
y el segundo hace que desaparezca un cuadro de diálogo de progreso cuando termine
de cargar la página.
private class MyWebViewClient extends WebViewClient
{
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
@Override
public void onPageFinished(WebView view, String url)
{
if (progress.isShowing())
{
progress.dismiss();
}
}
}
//Accedemos al layout WebView para manipularlo posteriormente
web = (WebView)findViewById(R.id.web_view);
WebSettings settings = web.getSettings();
settings.setJavaScriptEnabled(true);//Activamos JavaScript
//Ajustamos la vista para que no se vea demasiado grande
settings.setLoadWithOverviewMode(true);
settings.setUseWideViewPort(true);
Bundle bundle = getIntent().getExtras();
switch (bundle.getInt("id"))
{
case 1:
web.loadUrl(url_campus);//Url que carga la app (WebView)
setTitle("Campus Virtual");
break;
case 2:
web.loadUrl(blogEPC);
setTitle("Actualidad");
break;
.
.
.
web.setWebViewClient(new MyWebViewClient());//Forzamos a que se cargue la url dentro de la app
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
79
4.2.4 ListView y ExpandableListView
Un ListView es un grupo de vistas que muestra una lista vertical de elementos
desplazables. Estos elementos son insertados automáticamente en la lista mediante
un adaptador que obtiene el contenido de un array o de una base de datos y
convierte cada ítem resultante en una vista que es colocada en la lista [39].
Un aspecto importante a destacar es que nunca se debe utilizar un ScrollView con un
ListView, ya que éste tiene incorporado un ScrollView que permite el desplazamiento
vertical por si se agota la pantalla para los elementos insertados [40].
Esta vista se ha usado en la actividad de la agenda de la aplicación para listar los distintos eventos (exámenes, prácticas o trabajos) que el usuario vaya añadiendo y también en la actividad que se encarga de mostrar los exámenes o los horarios, según lo que elija el usuario. El primer paso para crear este tipo de actividad es añadir la vista de tipo ListView al
archivo de diseño de la actividad, quedando algo como en la figura 44.
Figura 44. ListView en fase de diseño.
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
80
Lo siguiente es crear un “item.xml”, es decir, diseñar el estilo que tendrá una de las
filas de la lista.
Una vez se tenga esto, hay que añadir datos a la lista desde un adaptador. Un
adaptador es un objeto que le pasa a un ListView los datos necesarios para crear las
filas de la lista. Además, genera las vistas para cada elemento de la lista. Es decir, el
adaptador lo hace todo, solo que la lista es la que termina mostrando la información
final.
Android proporciona varias subclases de adaptadores que facilitan la
implementación. En el caso de la actividad de los exámenes y los horarios no se ha
utilizado ninguna subclase, ya que se ha creado el adaptador desde cero. Sin
embargo, para el listview de la agenda sí que se ha elegido la subclase
SimpleCursorAdapter, pues es un adaptador específico para trabajar con bases de
datos. Tras hacer una consulta en la base de datos y obtener un objeto de tipo
Cursor, éste se pasa al adaptador para que lo recorra y cree tantas vistas como
registros se hayan encontrado. Esto se consigue creando una instancia al archivo
“ítem.xml” para luego poder acceder a cada una de sus views y modificarlas con los
datos del cursor:
Por último, el ListView se rellena con todas las filas generadas por el adaptador y se
representan en la interfaz de usuario tal y como se muestra en la figura 45.
db = new DataBase(this);
db.abrir();
Cursor c = db.consultarRegistro();
//Configuramos un mapa desde el cursor para poder acceder a las distintas
columnas de la tabla de la base de datos y mostrar lo que contienen en el
layout
String [] fromFieldNames = new String [] {DataBase.COLUMNA_IMAGEN,
DataBase.COLUMNA_NOMBRE, DataBase.COLUMNA_DIA_EVENTO,
DataBase.COLUMNA_HORA_EVENTO, DataBase.COLUMNA_DESCRIPCION,
DataBase.COLUMNA_ID};
int [] toViewId = new int[] {R.id.imagenTE, R.id.tvNombre,
R.id.tvDia,R.id.tvHora, R.id.tvDescripcion, R.id.tvID};
//Creamos el adaptador
//SimpleCursorAdapter (contexto, layout, datos, nombre de los campos, id
del layout donde queremos mostrar los valores de los campos)
SimpleCursorAdapter adapter = new
SimpleCursorAdapter(this,R.layout.image_list_item,c,fromFieldNames,toViewId
,0);
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
81
Figura 45. Actividad con un ListView.
Tal y como se define en [41], un ExpandableListView es una vista que muestra
elementos en una lista de dos niveles con desplazamiento vertical. Su uso es
exactamente igual que el de un ListView, es decir, se debe crear un layout para cada
ítem y también precisa de un adaptador. La única diferencia es que permite dos
niveles, es decir, está formado por grupos que, individualmente, se pueden ampliar
para mostrar sus hijos.
En la figura 46 se puede ver una actividad de la aplicación en la que se ha utilizado
este widget.
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
82
Además de para mostrar la información de los profesores, este widget se ha usado
también para mostrar la información de las asignaturas de los distintos grados (Plan
de estudios).
4.2.5 Action Bar
La Action Bar es la barra de título y herramientas que aparece en la parte superior
de la mayoría de las aplicaciones actuales. En una Blank Activity de Android Studio la
Action Bar viene activada por defecto, pero si fuera necesario activarla habría que
instanciar un objeto de tipo Action Bar y poner a “true” el parámetro de visibilidad.
Las principales funciones de la barra de acción [42] son las siguientes:
Un espacio dedicado para darle a la app una identidad e indicarle al usuario
en qué sección de la app se encuentra.
Acceso a las acciones importantes de una manera predecible, como por
ejemplo la búsqueda.
Apoyo a la navegación mediante menús desplegables.
Figura 46. Actividad con un ExpandableListView.
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
83
En Politécnica Cuenca se utiliza para desplegar el menú en la pantalla principal (ver
figura 47) y también para indicar en qué vista se encuentra el usuario y en función de
ésta mostrar unas acciones u otras. Por ejemplo, a la hora de editar un evento en la
agenda, aparecen tres acciones: eliminar, guardar y añadir notificación (ver figura
52).
Figura 47. Pantalla principal de Politécnica Cuenca.
4.2.6 Menú
Politécnica Cuenca usa un menú (ver figura 48) que se conoce como Navigation
Drawer, un panel de navegación que muestra algunas secciones de la aplicación en el
borde izquierdo de la pantalla. Se oculta la mayor parte del tiempo, pero se revela
cuando el usuario desliza un dedo desde el borde izquierdo de la pantalla o cuando el
usuario toca el icono correspondiente en la barra de acción [43].
Action Bar
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
84
Figura 48. Menú de Politécnica Cuenca.
Para la creación de este menú se ha utilizado una plantilla que viene por defecto en
Android Studio (Navigation Drawer Activity). Únicamente se han cambiado el fondo
de la cabecera y los ítems del listview que tiene incorporado el menú.
A continuación se muestra el archivo .xml de la cabecera del menú:
Para cambiar el fondo de la cabecera se le ha indicado al parámetro "background"
que tiene que coger la imagen llamada "menu" de la carpeta drawable.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="@dimen/nav_header_height"
android:background="@drawable/menu"
android:theme="@style/ThemeOverlay.AppCompat.Dark"
android:orientation="vertical"
android:gravity="bottom"
android:weightSum="1">
</LinearLayout>
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
85
Por otro lado, una parte del código del archivo .xml del Navigation Drawer:
Aquí es donde se han ido añadiendo los ítems del listview que contiene el menú. En
cada ítem se han definido tres parámetros: un identificador (id), una imagen (icon) y
un nombre (title).
4.3 Base de datos local - SQLite
Tal y como describe Damián Pérez en [44], una base de datos es un conjunto de
información relacionada que se almacena normalmente en tablas. Cada tabla tiene
una o más columnas y filas. Las columnas guardan una parte de la información sobre
cada elemento que se quiera guardar en la tabla y cada fila de la tabla conforma un
registro.
Los Sistemas de Gestión de Base de Datos (SGBD) son un tipo de software muy
específico, dedicado a servir de interfaz entre la base de datos, el usuario y las
aplicaciones que la utilizan. Un SGBD permite el almacenamiento, manipulación y
consulta de datos pertenecientes a una base de datos organizada en uno o varios
ficheros.
¿Qué es SQLite?
Figura 49. Logo de SQLite [46].
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group android:checkableBehavior="single">
<item android:id="@+id/nav_apoyo"
android:icon="@drawable/help"
android:title="Apoyo, Orientación y Servicios" />
<item android:id="@+id/nav_calendario"
android:icon="@drawable/ic_action_calendar_month"
android:title="Calendario" />
<item android:id="@+id/nav_correo"
android:icon="@drawable/ic_action_mail"
android:title="Correo" />
.
.
.
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
86
SQLite, cuyo logo se puede ver en la figura 49, es un ligero gestor de bases de datos de código abierto, que se caracteriza por mantener el almacenamiento de información persistente de forma sencilla [45].
A diferencia de otros gestores de bases de datos como MySQL, SQL Server y Oracle
DB, no necesita un proceso separado funcionando como servidor ya que lee y escribe
directamente sobre archivos que se encuentran en el disco duro [46]. En lugar de eso
el motor SQLite es un proceso más del programa, por lo que pasa a ser parte integral
del mismo. Esto aumenta la rapidez de acceso a los datos, ya que es más eficiente la
llamada a funciones que la comunicación entre procesos [47].
SQLite está construida en C y la base de datos se almacena en un único archivo, lo
cual facilita la portabilidad de los datos a diversas plataformas de sistemas
operativos y de dispositivos [48].
Es por todo lo anterior que SQLite es una tecnología cómoda para los dispositivos móviles. Su simplicidad, rapidez y usabilidad permiten un desarrollo muy amigable. Android incorpora una librería SQLite que permite utilizar bases de datos mediante el lenguaje SQL, de una forma sencilla y utilizando muy pocos recursos del sistema.
En Politécnica Cuenca se ha utilizado esta librería para guardar todos los datos relacionados con los eventos de la agenda en una base de datos que se almacena en un archivo del dispositivo del usuario. Es decir, el tipo (si es examen, tarea o práctica), el nombre del evento, la fecha, la hora y la descripción.
Figura 50. Estructura de la tabla Eventos en la base de datos local.
En la figura 50 se muestra la estructura de la tabla Eventos. Además de los datos
mencionados anteriormente, también se guardan dos enteros que se corresponden
con el identificador del evento (_id) y la imagen que se mostrará en el listview según
el tipo de evento que sea.
A continuación se muestra un ejemplo para ver todo esto con más claridad:
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
87
Figura 51. Ejemplo de eventos guardados en la base de datos.
Para construir esta base de datos se ha creado una clase que hereda de la clase
abstracta SQLiteOpenHelper:
Esta clase tiene la función de abrir la base de datos para permitir lectura/escritura y
de cerrarla al terminar dicho proceso. Además define una serie de constantes que
representan el nombre de los campos que contiene la base de datos y los métodos
necesarios para consultar, insertar, borrar y actualizar los registros. A continuación
se muestra el código de estos métodos:
public void insertar (String tipo, int imagen, String nombre, String
diaE, String horaE, String descripcion)
{
db.insert(TABLA_EVENTOS, null, generarContentValues(tipo, imagen,
nombre, diaE, horaE, descripcion));
}
public int actualizarDatos(long tareaID, String nuevoNombre, String
nuevoDE, String nuevaHE, String nuevaDescripcion)
{
ContentValues cvActualizar = new ContentValues();
cvActualizar.put(COLUMNA_NOMBRE, nuevoNombre);
cvActualizar.put(COLUMNA_DIA_EVENTO, nuevoDE);
cvActualizar.put(COLUMNA_HORA_EVENTO, nuevaHE);
cvActualizar.put(COLUMNA_DESCRIPCION, nuevaDescripcion);
int i = db.update(TABLA_EVENTOS, cvActualizar , COLUMNA_ID + " = "
+ tareaID, null);
return i;
}
public void borrarDatos (long tareaID)
{
db.delete(TABLA_EVENTOS, COLUMNA_ID + "=" + tareaID, null);
}
public Cursor consultarRegistro ()
{
String columnas [] = new String[] {COLUMNA_ID, COLUMNA_TIPO,
COLUMNA_IMAGEN, COLUMNA_NOMBRE, COLUMNA_DIA_EVENTO, COLUMNA_HORA_EVENTO,
COLUMNA_DESCRIPCION};
return db.query(TABLA_EVENTOS, columnas, null, null, null, null,
null);
}
public class DataBase extends SQLiteOpenHelper
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
88
4.4 Comunicación entre componentes de la GUI
En Android, los componentes más importantes de la interfaz gráfica de usuario (GUI)
son las Activities. Algo muy habitual cuando se desarrolla una aplicación para
Android, es poder “enviar” datos (variables, objetos, etc.) desde una Activity a otra.
Para realizar esta tarea en Android se utilizan los llamados Intents, elementos
encargados de comunicar los componentes de una aplicación. Se pueden entender
como los mensajes o peticiones que son enviados entre los distintos componentes de
una aplicación o entre distintas aplicaciones. Mediante un intent se puede mostrar
una actividad desde cualquier otra, iniciar un servicio, enviar un mensaje broadcast,
iniciar otra aplicación, etc. [49].
Los datos que se envían entre una actividad y otra se denominan Extras y se componen de un identificador y un valor. Antes de iniciar la nueva actividad se deben adherir los datos al intent con el método putExtra():
La Activity receptora implementará tantos métodos “get” como datos espere recibir, especificando el identificador con el que se envía:
public void onClick(View v)
{
switch (v.getId())
{
case R.id.botonCampus:
Intent intentCampus = new
Intent(PantallaPrincipal.this,AbrirWeb.class);
intentCampus.putExtra("id",1);
startActivity(intentCampus);
break;
//Enlazamos al intent que lanzó la actividad Inicial
Bundle bundle = getIntent().getExtras();
//En función del parámetro pasado haremos una cosa u otra
switch (bundle.getInt("id"))
{
case 1:
web.loadUrl(url_campus);//Url que carga la app (WebView)
setTitle("Campus Virtual");//Cambiamos el título de la toolbar
break;
.
.
.
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
89
La Figura 52 muestra uno de los usos de los intents en la aplicación. La actividad de
la izquierda le pasa a la de la derecha cuatro Strings: el nombre del evento, la fecha,
la hora y la descripción.
Además de para enviar datos entre una actividad y otra, los intents se han utilizado
también en la aplicación para iniciar otra aplicación desde una actividad. Es el caso
de la actividad que se usa para editar los eventos de la agenda (ver figura 52), pues
al pulsar sobre el botón de añadir notificación en la action bar abre la aplicación del
calendario que tenga instalada el usuario en su dispositivo.
Acciones
Añadir notificación
Figura 52. Comunicación Activity-Activity.
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
90
4.5 Tamaño de la aplicación
Un aspecto que se ha tenido muy en cuenta durante el desarrollo de la aplicación ha
sido el tamaño de la misma, pues hay muchos dispositivos que disponen de poca
memoria para instalar aplicaciones.
Para reducir lo máximo posible el tamaño de la aplicación se ha optimizado el
tamaño de las imágenes empleadas y además se ha recurrido a la reutilización de
código. Con esto último se evita repetir una y otra vez las mismas líneas. Por ello se
han reutilizado algunas Activities con diversos fines.
En la figura 53 se puede observar que para mostrar el horario de los dos grados de la
EPC se ha utilizado la misma Activity. Tan sólo cambia el título de la Activity en la
Action Bar, la imagen y, aunque los botones son los mismos, en cada Activity realizan
una acción distinta.
Esto se consigue mediante el paso de parámetros entre activities y para poder pasar
un parámetro de una actividad a otra es necesario usar los intents, cuyo
funcionamiento se ha explicado en el punto anterior. En este caso, al pulsar sobre el
botón horario aparece un cuadro de diálogo para elegir el grado del que se quiere ver
el horario. Según el grado elegido se pasará un identificador u otro a la nueva
actividad y ésta mostrará una vista u otra según el identificador recibido.
Título
Botones Botones
Imagen Imagen
Figura 53. Vista Horario.
CAPÍTULO 4. POLITÉCNICA CUENCA: METODOLOGÍA Y DESARROLLO.
91
4.6 Compatibilidad La RAE define compatible como: “Que puede funcionar directamente con otro
dispositivo, aparato o programa”.
En Android la compatibilidad con las versiones más antiguas se consigue a través de
las librerías de compatibilidad (la aplicación utiliza app_compact_v7). Politécnica
Cuenca se ha desarrollado para versiones superiores a la Api 15 (Android 4.0 Ice
Cream Sandwich), esto quiere decir que, según los datos proporcionados por Android
Studio (ver figura 54), el 94 % de los usuarios de Android podrán ejecutar la
aplicación en sus dispositivos.
Figura 54. Distribución de los usuarios de las distintas versiones de Android.
93
5 PUBLICACIÓN DE LA APP Y RESULTADOS
5.1 Publicación de la app.
5.2 Encuesta de satisfacción.
En este capítulo se tratarán los pasos a seguir para publicar una aplicación en la
tienda de aplicaciones para Android de Google y se analizarán los resultados de una
encuesta de satisfacción realizada a los usuarios de la aplicación.
CAPÍTULO 5. PUBLICACIÓN DE LA APP Y RESULTADOS.
95
5.1 Publicación de la app
Google Play [50], cuyo logo se puede ver en la figura 55, es una plataforma de
distribución digital de aplicaciones móviles para los dispositivos con sistema
operativo Android, así como una tienda en línea desarrollada y mantenida por
Google. Esta plataforma permite a los usuarios navegar y descargar aplicaciones,
juegos, música, libros, revistas y películas.
Todo esto se hace a través de la aplicación Play Store, que normalmente viene
preinstalada en los dispositivos con este sistema operativo. Aunque la mayoría de las
aplicaciones son gratuitas también existen muchas de ellas que requieren un pago
previo a la descarga.
Figura 55. Logo de Google Play.
Google Play nace en Marzo de 2012 como una evolución de Android Market que ya
operaba como plataforma de compra-venta de aplicaciones para móviles desde
octubre de 2008. Google se había percatado de que era necesario integrar todas sus
tiendas en una sola para poder competir con el iTunes Store de Apple, el cual estaba
consiguiendo centralizar los contenidos multimedia de sus clientes en una misma
plataforma [51].
Una de las grandes ventajas que ofrece la tienda frente a su competidora más
cercana es que no pone demasiados requisitos a los desarrolladores a la hora de
publicar una aplicación. Basta con tener una cuenta de Google y darse de alta como
desarrollador en la consola de Google Play, pagando una única cuota de $ 25.
Después de completar el registro se accede directamente a la consola de Google
Play. Para subir una aplicación se debe presionar el botón “Añadir nueva aplicación”
e inmediatamente se abre un cuadro de diálogo en el que se solicita el nombre que
tendrá la aplicación.
CAPÍTULO 5. PUBLICACIÓN DE LA APP Y RESULTADOS.
96
Tras esto hay que completar una serie de pasos antes de publicar la aplicación:
1. Rellenar los datos de la ficha del Play Store (ver figura 56), que serán los que
se mostrarán públicamente en la tienda.
Figura 56. Borrador de la ficha de Politécnica Cuenca para Play Store.
2. Subir el archivo apk de la aplicación (ver figura 57).
Figura 57. Subida del archivo apk a la consola de Google Play.
CAPÍTULO 5. PUBLICACIÓN DE LA APP Y RESULTADOS.
97
3. Realizar una encuesta para determinar la clasificación del contenido (ver
figura 58). En el caso de Politécnica Cuenca es PEGI 3.
Figura 58. Clasificación del contenido de Politécnica Cuenca.
4. Establecer el precio de la aplicación y su distribución (ver figura 59). La
aplicación va a ser gratuita y se va a distribuir en España.
Figura 59. Precio y distribución de Politécnica Cuenca.
CAPÍTULO 5. PUBLICACIÓN DE LA APP Y RESULTADOS.
98
La primera versión de Politécnica Cuenca (1.0) se publicó en Play Store el 14 de
junio de 2016 con una cuenta creada por la dirección de la EPC. En la figura 60 se
puede ver la ficha de la aplicación en la tienda de Google.
Figura 60. Ficha de Politécnica Cuenca en Play Store.
CAPÍTULO 5. PUBLICACIÓN DE LA APP Y RESULTADOS.
99
5.2 Encuesta de satisfacción
Para conocer la opinión de los usuarios acerca de la aplicación Politécnica Cuenca se
decidió realizar una encuesta. La mayoría de las preguntas de las que consta se han
extraído de un modelo de “encuesta de satisfacción” propuesto en la página oficial
de la empresa e-encuesta [52]. Esta empresa lleva en el sector de las encuestas
desde 2006, respaldada por un gran equipo de profesionales especializados en el
tema.
La encuesta se ha creado utilizando SurveyMonkey, el software de encuestas en línea
más popular del mundo, y ha sido respondida por un total de 20 usuarios.
Las siguientes nueve figuras (figura 61, figura 62, figura 63, figura 64, figura 65,
figura 66, figura 67, figura 68, figura 69) muestran las preguntas la encuesta y los
resultados de las mismas.
Al final del capítulo se analizará el grado de satisfacción de los usuarios con la
aplicación, en función de los resultados obtenidos.
Figura 61. Resultados de la pregunta 1 de la encuesta de satisfacción.
CAPÍTULO 5. PUBLICACIÓN DE LA APP Y RESULTADOS.
100
Figura 62. Resultados de la pregunta 2 de la encuesta de satisfacción.
Figura 63. Resultados de la pregunta 3 de la encuesta de satisfacción.
CAPÍTULO 5. PUBLICACIÓN DE LA APP Y RESULTADOS.
101
Figura 64. Resultados de la pregunta 4 de la encuesta de satisfacción.
Figura 65. Resultados de la pregunta 5 de la encuesta de satisfacción.
CAPÍTULO 5. PUBLICACIÓN DE LA APP Y RESULTADOS.
102
Figura 66. Resultados de la pregunta 6 de la encuesta de satisfacción.
Figura 67. Resultados de la pregunta 7 de la encuesta de satisfacción.
CAPÍTULO 5. PUBLICACIÓN DE LA APP Y RESULTADOS.
103
Figura 68. Resultados de la pregunta 8 de la encuesta de satisfacción.
Figura 69. Resultados de la pregunta 9 de la encuesta de satisfacción.
CAPÍTULO 5. PUBLICACIÓN DE LA APP Y RESULTADOS.
104
De los resultados anteriores se pueden extraer las siguientes conclusiones por
pregunta:
1. La principal forma de difusión que tiene la aplicación es por recomendación
de un usuario que ya la tiene a otro que no (70% de las respuestas). Sin
embargo, otra gran parte de los encuestados se ha enterado de la existencia
de la aplicación por otra vía (25 % de las respuestas).
2. La mayoría de los encuestados (90 %) opinan que la aplicación es muy útil.
3. Prácticamente todos los encuestados (95 %) consideran que la app es
intuitiva.
4. Aquí las respuestas están más distribuidas. La conclusión es que el diseño de
la app no está mal, pero se podría mejorar.
5. La mayor parte de los encuestados (85 %) creen que la aplicación es muy
fluida.
6. Las respuestas son muy variadas, pero casi todos coinciden en que lo mejor de
la app es la cantidad de información que ofrece sobre las titulaciones de la
EPC.
7. Aquí las respuestas vuelven a ser de nuevo muy variadas, pero la mayoría
opina que el diseño de la app se podría mejorar y también piensa que se
podría integrar de algún modo el Campus Virtual en la app de forma que te
notificara de las tareas pendientes sin necesidad de añadirlas manualmente a
la agenda, cuando un profesor sube las notas de un examen, etc.
8. Casi todos los encuestados están bastante satisfechos con la aplicación.
9. El 95 % de los encuestados recomendarían la aplicación. Algo que es muy
positivo y que demuestra que el grado de satisfacción es alto (ya que en caso
contrario no la recomendarían).
107
6 CONCLUSIONES Y LÍNEAS FUTURAS
Contenidos
6.1 Conclusiones
6.2 Líneas futuras
En este último capítulo de la memoria se realiza una valoración del proyecto y de los
objetivos conseguidos. Además, se analizan las posibles mejoras que pueden llevarse
a cabo en un futuro con el fin de hacer la aplicación más funcional y atractiva para
los usuarios.
CAPÍTULO 6. CONCLUSIONES Y LÍNEAS FUTURAS.
109
6.1 Conclusiones
La realización de este trabajo fin de grado ha supuesto un gran reto para mí, ya que
partía de unos conocimientos de programación en Android muy básicos. Además, el
hecho de afrontar un proyecto con una carga de trabajo considerable, conlleva una
organización y una dedicación muy distintas a las memorias de prácticas que se
realizan durante la carrera.
¿Qué objetivos se perseguían?
El principal objetivo de este trabajo fin de grado era desarrollar una aplicación móvil
para el sistema operativo Android que facilitara el acceso a información de interés
sobre la Escuela Politécnica de Cuenca y las titulaciones que se imparten en ella.
En concreto, se pretendía que la aplicación incluyera los siguientes contenidos:
Notificaciones de tareas y exámenes
Planificación académica (horarios y fechas de exámenes)
Acceso al Campus Virtual
Información del profesorado
Acceso al correo de la Universidad
Noticias de la Escuela
Apoyo, orientación y servicios
Programas de movilidad internacional
Información general del título
Plan de estudios
Formas de acreditar el nivel B1 de idioma
Foro con alumnos y profesores
Representantes estudiantiles
Normativa de la UCLM y de la EPC
Como objetivos secundarios se perseguían, por un lado, distribuir la aplicación de
manera gratuita a través de Google Play y, por otro lado, ampliar los conocimientos
del lenguaje de programación Java orientado al desarrollo de aplicaciones para el
sistema operativo Android e iniciarse en el manejo de bases de datos construidas en
SQLite.
¿Qué se ha conseguido?
Una aplicación que permite al alumno acceder de una manera rápida y sencilla a una
gran cantidad de información sobre los estudios que esté realizando en la Escuela
Politécnica de Cuenca.
La aplicación ya está disponible para su descarga en Google Play y dispone de
prácticamente todos los contenidos mencionados anteriormente. Sin embargo, por
falta de tiempo no se ha podido desarrollar el foro y tampoco se han añadido las
notificaciones de tareas y exámenes de la forma que se pretendía en un primer
momento.
CAPÍTULO 6. CONCLUSIONES Y LÍNEAS FUTURAS.
110
Por otro lado, se ha adquirido cierta soltura a la hora de programar y se ha aprendido
a manejar una base de datos SQLite debido al desarrollo de la agenda de eventos de
la aplicación.
Por lo tanto, se puede afirmar que se han alcanzado los objetivos marcados en un
principio. Estoy satisfecho con el trabajo realizado y espero que en un futuro se
parta del código implementado para mejorar la app y que pueda ser de utilidad para
los alumnos de la Politécnica de Cuenca.
6.2 Líneas futuras
Como futuras mejoras de la aplicación se proponen las siguientes:
Crear un foro para alumnos y profesores en la página web de la EPC con un
diseño adaptable a dispositivos móviles para poder incluirlo en la aplicación.
Añadir notificaciones push para los eventos de la agenda. Este tipo de
notificaciones son las que se envían directamente desde un servidor al
cliente. Para manejarlas se recomienda utilizar Google Cloud Messaging, un
servicio de Google que permite el envío de notificaciones push a un
dispositivo. De este modo, no sería necesario utilizar la aplicación del
calendario del dispositivo del usuario para que le avise de que tiene un evento
nuevo.
Sincronizar la web de la EPC con la aplicación. Esto se podría conseguir
mediante un "parseo" o análisis sintáctico del código HTML de la página web
de la Politécnica para, así, convertir el flujo de datos con ese formato a una
representación interna de la aplicación, en este caso objetos Java. Para ello,
es necesario utilizar en Android la clase XmlPullParser, que permite recorrer
todo el documento pasando de etiqueta en etiqueta de forma controlada y
decidir en qué momento obtener los valores necesarios. De esta forma, al
modificar alguna información en la web, como por ejemplo el plan de
estudios de una titulación, se cambiaría también al mismo tiempo en la app,
por lo que sería mucho más rápido que tener que editar las variables
correspondientes en el código de la app.
En la misma línea que la anterior, se propone crear una API que se comunique
con la aplicación para acceder directamente a los datos almacenados en la
base de datos del gestor de contenidos (WordPress) de la página web de la
EPC. Si bien la opción del "parseo" solucionaría el problema de la
sincronización de la web con la aplicación, esta opción es mucho mejor ya
que si se realiza algún cambio en el código HTML de la página por el motivo
que sea, no habría que modificar el código de la aplicación que se encargase
del "parseo".
II. PLANOS: DIAGRAMA
DE FLUJO
PLANOS: DIAGRAMA DE FLUJO
115
Este apartado contiene el diagrama de flujo de la aplicación, es decir, la
representación gráfica de los acontecimientos que ocurren en cada una de las vistas
de la aplicación.
En la figura 70 se explica el significado de cada uno de los símbolos.
Figura 70. Leyenda del diagrama de flujo de Politécnica Cuenca.
A continuación se muestra el diagrama de flujo de Politécnica Cuenca:
Figura 71. Diagrama de flujo de Politécnica Cuenca.
III. PLIEGO DE
CONDICIONES
PLIEGO DE CONDICIONES
121
Para la realización de este proyecto ha sido preciso contar con una serie de
elementos en cada una de sus etapas. En esta sección se detallarán las principales
características del hardware y el software utilizado.
Hardware
Para el desarrollo de la aplicación y las pruebas se han usado un portátil, un
smartphone y una tablet.
A continuación se presentan algunas de sus características.
Portátil ASUS K52JU
Figura 72. Portátil ASUS K52JU.
Sistema operativo: Windows® 7 Home Premium Original (64Bits)
Procesador: Intel® Core™ i3 - 380M a 2.53 GHz
Memoria RAM: 4GB (2GB * 2) DDR3 1066
Disco duro de 500 GB SATA
Tarjeta gráfica: Radeon® HD 6370 ,512MB DDR3 VRAM
Pantalla LCD: 15,6 " Glare HD LED
PLIEGO DE CONDICIONES
122
Smartphone BQ AQUARIS 5
Figura 73. Smartphone BQ Aquaris 5.
Sistema operativo: Android 4.2.1 Jelly Bean
Procesador: Mediatek MT6589 Quad Core 1.2 GHz (ARMv7)
RAM: 1 GB
Resolución: 960 x 540 220 PPP (HDPI)
Tamaño de pantalla: 5"
Peso: 170 g
Tablet i-joy Rebel
Figura 74. Tablet i-joy Rebel.
PLIEGO DE CONDICIONES
123
Sistema operativo: Android 4.1.1 Jelly Bean
Procesador: Cortex A8 - 1 x 1.2 GHz
RAM: 512 MB
Resolución: 800 x 480
Tamaño de pantalla: 7"
Peso: 330 g
Software
Sistema operativo
Todo el desarrollo se ha llevado a cabo en Windows 7.
Android Studio
Android Studio es un entorno de desarrollo integrado (IDE) para la plataforma Android. Fue anunciado el 16 de mayo de 2013 en la conferencia Google I/O, y reemplazó a Eclipse como el IDE oficial para el desarrollo de aplicaciones para Android. La primera versión estable fue publicada en diciembre de 2014.
Está basado en el software IntelliJ IDEA de JetBrains, y es publicado de forma gratuita a través de la Licencia Apache 2.0. Está disponible para las plataformas Microsoft Windows, Mac OS X y GNU/Linux.
A la hora de elegir el IDE me surgieron algunas dudas ya que en clase de Software
Multimedia la plataforma que habíamos utilizado para programar era Eclipse y
Android Studio me era totalmente desconocido, pero al final opté por este último
debido a las siguientes características:
Es más intuitivo y más fácil de usar que Eclipse.
Código más ordenado, estructurado y mejores sugerencias.
Se actualiza constantemente.
Dispone de mejores plantillas para crear diseños comunes de Android.
Compilador Gradle.
Crea los emuladores que se quieran. No exigen demasiados recursos.
Es el futuro. Eclipse está a punto de desaparecer.
SQLite Browser
Es una herramienta visual de la fuente abierta usada para crear, diseñar y corregir
los archivos de base de datos compatibles con SQLite. Está destinado a ser utilizado
por los usuarios y desarrolladores que quieran crear bases de datos, edición y
búsqueda de datos utilizando una hoja de cálculo-como interfaz familiar, sin la
necesidad de aprender complicados comandos SQL.
PLIEGO DE CONDICIONES
124
Filezilla Client
Es un cliente FTP que posee las herramientas mejoradas para realizar transferencias
de archivos a través del protocolo de red antes mencionado y considerado como una
de las mejores aplicaciones en este campo.
Entre sus funciones podemos citar la administración de cuentas, el almacenamiento
de las direcciones de los servidores FTP, la visualización de las cuentas remotas y de
la cuenta local; esta visualización es igual a la del explorador de Windows,
permitiéndonos el "arrastrar y soltar" con facilidad.
Este programa se ha usado para subir algunos archivos pdf a la base de datos remota.
Adobe Photoshop CC 2015
Para diseñar el logo de la aplicación se ha optado por utilizar la aplicación líder en
edición de imágenes.
IV. PRESUPUESTO
PRESUPUESTO
129
En este apartado se especifican los gastos que han conllevado la realización del
proyecto.
Para una mejor organización, se dividirá el presupuesto en las siguientes partes:
Hardware: coste de los equipos
Software: como todo el software utilizado es gratuito o se ha usado su versión
gratuita, no se incluirá dentro del presupuesto.
Costes derivados del proyecto: honorarios y gastos del ingeniero.
Presupuesto final: se calcula a partir de los subtotales anteriores incluyendo
un 21 % de IVA.
El coste de los equipos se calcula según la siguiente fórmula de amortización:
𝑐𝑜𝑠𝑡𝑒 = Precio del equipo
Vida útil ∗
𝑈𝑠𝑜
365
Hardware
Equipo Precio (€) Vida útil (años) Uso (días) Total (€)
Portátil 519 5 240 59,72
Smartphone 199 3 240 38,16
SUBTOTAL HARDWARE = 59,72 + 38,16 = 97,88 €
Costes derivados del proyecto
Servicios contratados: Cuenta en la consola de Google Play (25 USD = 22,22 €)
Servicios (€) Horas de desarrollo Precio/Hora
22,22 540 15
SUBTOTAL COSTES DERIVADOS = 22,22 + 540*15 = 8122,22 €
PRESUPUESTO
130
Presupuesto final
PRESUPUESTO TOTAL COSTE (€)
Hardware 97,88
Proyecto 8122,22
SUBTOTAL 8220,10
I.V.A. (21 %) 1726,22
TOTAL 9946,32
V. REFERENCIAS
REFERENCIAS
135
[1] LUENGO DE LA TORRE, María. Una aproximación al concepto de Sociedad Móvil. El smartphone: su expansión, funciones, usos, límites y riesgos. [En línea] derecom, 2012. Disponible en: <https://dialnet.unirioja.es/descarga/articulo/4331309.pdf> [consulta 18 de Marzo de 2016] ISSN 1988-2629 [2] ¿Cuántos españoles tienen un <<smartphone>>? [En línea] ABC, 20 de Octubre de 2014. Disponible en: <http://www.abc.es/tecnologia/movilestelefonia/20140725/abci-ventas-smartphones-tableta-espana-201407251123.html> [consulta 18 de Marzo de 2016] [3] Fundación Telefónica. España, el país más conectado de Europa. [En línea] Disponible en: <http://www.fundaciontelefonica.com/2015/01/21/sie14-informe-sociedad-informacion-espana-pais-conectado-europa/> [consulta 18 de Marzo de 2016] [4] MOLINA MONTOYA, Nancy Piedad. ¿Qué es el estado del arte? [En línea] Ciencia y
Tecnología para la Salud Visual y Ocular, Nº 5: 73-75. Julio - diciembre 2005.
Disponible en: <http://revistas.lasalle.edu.co/index.php/sv/article/view/1666>
[consulta: 9 de Noviembre de 2015] ISSN 1692-8415
[5] RANCHAL, Juan. Inicios, evolución y futuro del teléfono móvil. [En línea]
Disponible en: <http://www.muycanal.com/2014/01/31/futuro-del-telefono-movil>
[consulta: 9 de Noviembre de 2015]
[6] LÓPEZ MENÉNDEZ, José Ángel. Generaciones de la telefonía celular. [En línea]
Disponible en: <http://es.slideshare.net/CPT1stAngel/generaciones-de-la-telefona-
celular> [consulta: 9 de Noviembre de 2015]
[7] FERNÁNDEZ LÓPEZ, Antonio; GONZÁLEZ LÓPEZ, Daniel; RUBIO LARA, Alberto.
Transmisión y redes de datos. [En línea] Disponible en:
<http://www.uhu.es/fernando.gomez/transydat_archivos/Movil.PDF> [consulta: 9 de
Noviembre de 2015]
[8] SAZ URQUIJO, Borja. Rubicón: un nuevo enfoque para la seguridad en las aplicaciones de smartphones. Tesis doctoral en la Universidad de Deusto (País Vasco, España) [En línea] Disponible en:<http://www.ingenieria.deusto.es/> [consulta: 9 de Noviembre de 2015] [9] J. Cheng, S.H.Y. Wong, H. Yang, y S. Lu. Smartsiren: virus detection and alert for smartphones. En Proceedings of the 5th international conference on Mobile systems, applications and services, páginas 258–271. ACM, 2007. [10] G.W. Chow y A. Jones. A Framework for Anomaly Detection in OKL4-Linux Based Smartphones. En Australian Information Security Management Conference, página 49. Citeseer, 2008. [11] GSMArena. OS (OperatinSystem). [En línea] Disponible en:
<http://www.gsmarena.com/glossary.php3?term=os> [consulta: 10 de Noviembre de
2015]
REFERENCIAS
136
[12] MARTÍ, Anna. El tamaño importa y la resolución también: éstas son las
tendencias en los smartphones del mundo según Device Atlas. [En línea] Disponible
en: <http://www.xatakamovil.com/movil-y-sociedad/el-tamano-importa-y-la-
resolucion-tambien-estas-son-las-tendencias-en-los-smartphones-del-mundo-segun-
deviceatlas> [consulta: 10 de Noviembre de 2015]
[13] CID, Mikel. La cuota de ventas de iOS en España se resiente a la espera de los
nuevos iPhones según Kantar. [En línea] Disponible en:
<http://www.xatakamovil.com/mercado/la-cuota-de-ventas-de-ios-en-espana-se-
resiente-a-la-espera-de-los-nuevos-iphones-segun-kantar> [consulta: 10 de
Noviembre de 2015]
[14] TOMÁS, Jesús. ¿Qué hace a Android especial? [En línea] Disponible en:
<http://www.androidcurso.com/index.php/tutoriales-android-fundamentos/31-
unidad-1-vision-general-y-entorno-de-desarrollo/97-que-hace-a-android-especial>
[consulta: 11 de Noviembre de 2015]
[15] GCFAprendeLibre. Sistema Operativo móvil iOS. [En línea] Disponible en:
<http://www.gcfaprendelibre.org/tecnologia/curso/ipad/caracteristicas_generales_
del_ipad/3.do> [consulta: 11 de Noviembre de 2015]
[16] Culturacion. iOS: el sistema operativo móvil de apple. [En línea] Disponible en:
<http://culturacion.com/ios-el-sistema-operativo-movil-de-apple/> [consulta: 11 de
Noviembre de 2015]
[17] Actualidad iPhone. iOS. [En línea] Disponible en:
<http://www.actualidadiphone.com/category/ios/> [consulta: 11 de Noviembre de
2015]
[18] Xatakamóvil. De Cupcake a Marshmallow, así han sido las versiones de Android a
lo largo de su historia. [En línea] Disponible en:
<http://www.xatakamovil.com/sistemas-operativos/de-cupcake-a-marshmallow-asi-
han-sido-las-versiones-de-android-a-lo-largo-de-su-historia> [consulta: 12 de
Noviembre de 2015]
[19] Androideity. Arquitectura de Android. [En línea] Disponible en: <http://androideity.com/2011/07/04/arquitectura-de-android/> [consulta: 14 de Marzo de 2016] [20] TOMÁS, Jesús. Arquitectura de Android. [En línea] Disponible en: <http://www.androidcurso.com/index.php/99> [consulta: 14 de Marzo de 2016] [21] CANCELA GARCÍA, Lara; OSTOS LOBO, Sara (Universidad Carlos III de Madrid, Tutorial de Android). Arquitectura Android. [En línea]. Disponible en: <https://sites.google.com/site/swcuc3m/home/android/generalidades/2-2-arquitectura-de-android> [consulta: 14 de Marzo de 2016] [22] TOMÁS, Jesús. Ficheros y carpetas de un proyecto Android. [En línea] Disponible en: <http://www.androidcurso.com/index.php/tutoriales-android/31-unidad-1-vision-general-y-entorno-de-desarrollo/148-elementos-de-un-proyecto-android> [consulta: 15 de Marzo de 2016]
REFERENCIAS
137
[23] LEIRA, Adrián. ¿Cúal es la estructura de un proyecto en Android Studio? AndroidStudioFaqs te lo cuenta. [En línea] Disponible en: <http://androidstudiofaqs.com/conceptos/cual-es-la-estructura-de-un-proyecto-en-android-studio> [consulta: 15 de Marzo de 2016] [24] TOMÁS, Jesús. Componentes de una aplicación. [En línea] Disponible en: <http://www.androidcurso.com/index.php/tutoriales-android-fundamentos/31-unidad-1-vision-general-y-entorno-de-desarrollo/149-componentes-de-una-aplicacion> [consulta: 16 de Marzo de 2016] [25] REVELO, James. ¿Cuáles son los componentes de una aplicación Android? [En línea] Disponible en: <http://www.hermosaprogramacion.com/2014/08/android-app-componentes/> [consulta: 16 de Marzo de 2016] [26] REVELO, James. Utilizar fragmentos en una aplicación Android. [En línea] Disponible en: <http://www.hermosaprogramacion.com/2014/09/android-aplicaciones-fragmento/> [consulta: 16 de Marzo de 2016] [27] Hipertextual. Guía básica para crear aplicaciones de éxito. [En línea] Disponible en: <http://hipertextual.com/presentado-por/appodeal/desarrollo-de-aplicaciones> [consulta: 25 de Mayo de 2016] [28] GÓMEZ, Rubén. 10 trucos para crear apps de Android exitosas. [En línea] Disponible en: <http://googlelizados.com/10-trucos-crear-apps-android-exitosas-01881> [consulta: 25 de Mayo de 2016] [29] CARVAJAL, Héctor. Pasos para crear una app viral y exitosa. [En línea] Disponible en: <http://www.neostuff.net/pasos-para-crear-una-aplicacion-app-viral-y-exitosa/> [consulta: 25 de Mayo de 2016] [30] VERDOY, Álvaro. 10 claves para crear iPhone y Android apps de éxito. [En línea] Disponible en: <http://www.socialancer.com/consejos-para-apps-virales/> [consulta: 25 de Mayo de 2016] [31] DIMAS LUJÁN, José. ¿Qué es una Activity? [En línea] Disponible en: <http://www.desarrolloweb.com/articulos/android-que-es-una-activity-o-actividad.html> [consulta 28 de Marzo de 2016] [32] TOMÁS, Jesús. Diseño personalizado de vistas: Introducción. [En línea] Disponible en: <http://www.androidcurso.com/index.php/tutoriales-android-avanzado/50-unidad-2-diseno-personalizado-de-vistas/368-introduccion> [consulta 28 de Marzo de 2016] [33] REVELO, James. Configurar layouts y views en Android Studio. [En línea] Disponible en: <http://www.hermosaprogramacion.com/2014/09/android-layouts-views/> [consulta 28 de Marzo de 2016] [34] TOMÁS, Jesús. Diseño de la interfaz de usuario: Vistas y layouts. [En línea] Disponible en: <http://www.androidcurso.com/index.php/tutoriales-android-fundamentos/32-unidad-2-diseno-de-la-interfaz-de-usuario-vistas-y-layouts/114-layouts> [consulta 28 de Marzo de 2016]
REFERENCIAS
138
[35] Android Developers. RelativeLayout. [En línea] Disponible en: <https://developer.android.com/guide/topics/ui/layout/relative.html#Position> [consulta 29 de Marzo de 2016] [36] REVELO, James. Tutorial de Layouts en Android. [En línea] Disponible en: <http://www.hermosaprogramacion.com/2015/08/tutorial-layouts-en-android/> [consulta 29 de Marzo de 2016] [37] Android Developers. ScrollView. [En línea] Disponible en: <http://developer.android.com/intl/es/reference/android/widget/ScrollView.html> [consulta 29 de Marzo de 2016] [38] Android Developers. WebView. [En línea] Disponible en: <http://developer.android.com/intl/es/reference/android/webkit/WebView.html> [consulta 30 de Marzo de 2016] [39] Android Developers. ListView. [En línea] Disponible en: <http://developer.android.com/intl/es/guide/topics/ui/layout/listview.html> [consulta 30 de Marzo de 2016] [40] REVELO, James.Tutorial de listas y adaptadores en Android. [En línea] Disponible en: <http://www.hermosaprogramacion.com/2014/10/android-listas-adaptadores/> [consulta 30 de Marzo de 2016] [41] Android Developers. ExpandableListView. [En línea] Disponible en: <https://developer.android.com/reference/android/widget/ExpandableListView.html> [consulta 30 de Marzo de 2016] [42] Android Developers. Adding the app bar. [En línea] Disponible en: <http://developer.android.com/intl/es/training/appbar/index.html> [consulta 1 de Abril de 2016] [43] Android Developers. Creating a Navigation Drawer. [En línea] Disponible en: <http://developer.android.com/intl/es/training/implementing-navigation/nav-drawer.html> [consulta 1 de Abril de 2016] [44] PÉREZ VALDÉS, Damián. ¿Qué son las bases de datos? [En línea] Disponible en: <http://www.maestrosdelweb.com/que-son-las-bases-de-datos/> [consulta 3 de Abril de 2016] [45] REVELO, James. Tutorial de bases de datos SQLite en aplicaciones Android. [En línea] Disponible en: <http://www.hermosaprogramacion.com/2014/10/android-sqlite-bases-de-datos/> [consulta 5 de Abril de 2016]
[46] SQLite. SQLite. [En línea] Disponible en: <https://www.sqlite.org/> [consulta 5 de abril de 2016]
[47] Wikipedia. SQLite. [En línea] Disponible en: <https://es.wikipedia.org/wiki/SQLite> [consulta 5 de abril de 2016] [48] RÓMMEL, Filein. SQLite: La base de datos embebida. [En línea] Disponible en: <http://sg.com.mx/revista/17/sqlite-la-base-datos-embebida#.VvuhleYr50z> [consulta 5 de abril de 2016]
REFERENCIAS
139
[49] Sgoliver. Componentes de una aplicación Android. [En línea] Disponible en: <http://www.sgoliver.net/blog/componentes-de-una-aplicacion-android/> [consulta 29 de mayo de 2016] [50] Wikipedia. Google Play. [En línea] Disponible en: <https://es.wikipedia.org/wiki/Google_Play> [consulta 8 de junio de 2016] [51] Qode.pro. Qué es Google Play. [En línea] Disponible en: <http://qode.pro/blog/que-es-google-play/> [consulta 8 de junio de 2016] [52] e-encuesta. Satisfacción del cliente (general). [En línea] Disponible en: <http://www.e-encuesta.com/encuesta/satisfaccion-cliente-general> [consulta 10 de junio de 2016]