Content
Content
2014-2015
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
2
Resumen
El proyecto consiste en el desarrollo de una aplicación para dispositivos móviles
(Smartphones y tablets).
Mediante esta aplicación, CasiTeka, el usuario podrá utilizar su dispositivo móvil para
acceder a la biblioteca online de la UPV y gestionar la reserva de todo el material disponible en
ella. Además incluye integración con redes sociales para compartir contenido.
Abstract
The project involves the development of an application for mobile devices (Smartphones and
tablets).
Using this application, Casiteka, the user can use his mobile device to access the online
library of the UPV and manage reservations of all the material available on it. It also includes
integration with social networks to share content.
Throughout memory the context of mobile applications and Android, iOS, BlackBerry an
Windows Phone systems are explained. Besides the concepts and tools applied during
development will be explained, in order to be as didactic as possible.
3
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
4
Tabla de contenidos
1. Introducción ..................................................................................................................... 8
1.1. SITUACION ........................................................................................................ 8
1.2. MOTIVACION .................................................................................................... 9
1.3. ALCANCE ........................................................................................................... 9
1.4. OBJETIVO .........................................................................................................10
1.5. METODOLOGÍA DE DESARROLLO ..............................................................10
1.6. ORGANIZACIÓN DE LA MEMORIA .............................................................. 11
2. Análisis de requisitos ...................................................................................................... 12
2.1. ANALISIS INICIAL........................................................................................... 12
2.2. ANALISIS DE REQUISITOS ............................................................................ 12
2.3. ANALISIS DE STAKEHOLDERS .................................................................... 15
2.4. ANALISIS TECNOLOGICO.............................................................................. 19
2.4.1 Análisis de sistemas operativos ......................................................................... 20
2.4.2 Elección de Sistema Operativo. ......................................................................... 23
2.4.3 Análisis de aplicaciones ..................................................................................... 24
2.4.4 Elección de aplicación........................................................................................ 27
3. Especificación del sistema .............................................................................................. 29
3.1. CASOS DE USO ................................................................................................ 29
3.1.1 Actores ................................................................................................................. 30
3.1.2 Diagramas de casos de uso................................................................................. 30
3.1.3 Descripción de los casos de uso .......................................................................... 31
3.2. MODELO CONCEPTUAL.................................................................................37
3.2.1 Descripción del modelo .......................................................................................37
4. Diseño............................................................................................................................ 39
4.1. ARQUITECTURA FÍSICA ............................................................................... 40
4.2. TECNOLOGÍAS UTILIZADAS .........................................................................41
4.2.1 [Link] ............................................................................................................... 41
4.2.2 JQuery Mobile [16] ............................................................................................ 43
4.2.3 Comuniaciones ................................................................................................... 48
4.3. INTERFAZ GRÁFICA ....................................................................................... 51
4.3.1 Mapa de navegación ............................................................................................57
4.4. GESTIÓN DE DATOS ...................................................................................... 58
5
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
6
7.3. MEJORAS......................................................................................................... 78
7.4. VALORACIÓN .................................................................................................. 79
8. Bibliografía .....................................................................................................................81
8.1. Bibliografía referenciada ..................................................................................81
8.2. Bibliografía no referenciada ............................................................................ 82
9. Apéndice ........................................................................................................................ 84
9.1 Descripción BBDD ..................................................................................................... 84
9.1.1.- ANÁLISIS DE REQUISITOS Y DESCRIPCIÓN DEL SISTEMA................... 84
9.1.2.- ENTIDADES Y ATRIBUTOS ........................................................................... 85
9.1.3.- DIAGRAMA ENTIDAD-RELACIÓN .............................................................. 86
9.1.4.- DISEÑO LÓGICO............................................................................................. 86
9.1.5.- CREACIÓN DE TABLAS.................................................................................. 89
9.1.6.- INSERCCIÓN DE LOS DATOS ........................................................................ 91
7
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
1. Introducción
Este documento pretende materializar el trabajo realizado durante el desarrollo del
Trabajo de Fin de Grado Casiteka. Se ha realizado la documentación lo más realista
posible, así como la descripción adecuada de cada una de las fases por las que pasa un
proyecto software de forma habitual.
1.1. SITUACION
Actualmente vivimos en una época caracterizada por el rápido avance de las tecnologías
que ha conllevado a una mejoría de todas las herramientas tecnológicas, ya sea en
ámbito laboral, social, estudiantil…. Concretamente nos importa centrarnos en los
avances de la tecnología móvil y todo lo que esto conlleva. Hemos pasado en apenas
unos 10 años de usar un teléfono fijo para llamar a nuestros conocidos a usar un
teléfono móvil para monitorizar nuestra localización mientras salimos a realizar
actividad física y así obtener datos para mejorar la próxima vez. Este solo es un ejemplo
de todo lo que podemos hacer y un aliciente para motivarnos de todo lo que aún nos
queda por poder hacer con los móviles.
8
1.2. MOTIVACION
En esta época siempre se busca integrar las nuevas tecnologías con la vida diaria y es
por ello por lo que se desarrollan multitud de aplicaciones para smartphones que
ayuden a las personas a desarrollar estas actividades. Aplicaciones como calendarios,
guías de cocina, reproductores de música… nos permiten desarrollar la mayoría de
cosas que hacemos en un día normal con la ayuda de un único dispositivo.
Por eso surge la necesidad también de integrar los estudios con las facilidades que
otorga un Smartphone y de ahí surge la idea de la Casiteka. Una aplicación móvil que
permite la reserva de contenido de lectura disponible en bibliotecas al instante o la
descarga de contenido multimedia (audios, libros, revistas, presentaciones…). Además
de ofrecer esto al estudiante se busca una integración entre los libros y documentos de
lectura con las nuevas tecnologías para hacerlos más llamativos a los jóvenes, que cada
vez optan más por el uso de ver vídeos o leer pdf en sus dispositivos en lugar de
reservar libros.
Esta herramienta debe ser sencilla y fácil de usar ya que las pantallas táctiles tienen un
tamaño reducido y no se puede poner mucha información en la ventana que se muestra
al usuario.
1.3. ALCANCE
La primera tarea en todo proyecto consiste en definir el alcance del mismo. Esto
consiste en establecer las funcionalidades a desarrollar, identificar los distintos
“stakeholders”, seleccionar las herramientas más adecuadas para definir y gestionar el
proyecto y realiar un desglose del proyecto y sus entregables.
La Casiteka consistiría en una aplicación móvil que gestionaría todas las bibliotecas de
la UPV. Con esto se pretende que los usuarios puedan reservar los libros de estas
bibliotecas, consultar información sobre las bibliotecas, incluso descargar contenido
multimedia de las bibliotecas como audios, revistas digitales u otros documentos.
Además se pretende integrar las bibliotecas y fomentar el uso de ellas permitiendo a los
usuarios expresar su opinión sobre los documentos o compartirlos en las redes sociales.
9
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
parte los profesores podrán usar la aplicación para compartir con sus alumnos los
documentos mediante links directos que podrán enviar incluso por correo electrónico.
El rol del personal de biblioteca es el más técnico, ya que serían los encargados de
mantener el sistema al día, ya sea manteniendo al día la lista de documentos o
actualizando la información de las bibliotecas, gestionando peticiones de
documentos….
Para ello, se pretende desarrollar una aplicación web instalada en un servidor con
acceso garantizado mediante el dominio [Link], que permitirá el acceso a la
aplicación a todo el personal registrado en la intranet de la UPV. De esta forma el
usuario tendría toda la información de su cuenta en la biblioteca en esta aplicación de
fácil uso y sencillez visual.
1.4. OBJETIVO
Hay una gran variedad de modelos de desarrollo software que se podrían dividir en
genéricos o ágiles [2]. Los modelos genéricos suelen desarrollar las distintas partes de
un proyecto software (análisis de requisitos, especificación, diseño, implementación,
pruebas, mantenimiento y documentación) una única vez y cada una durante un periodo
de tiempo extenso. Los ágiles sin embargo, dividen el proyecto en fases de unas cuatro
semanas en las que se llevan a cabo las distintas partes de un proyecto software a
menor escala. De esta forma el proyecto permite más cambios en los requisitos y en el
diseño.
Dado que los requisitos de la Casiteka no van a sufrir grandes modificaciones con el
paso del proyecto se ha considerado oportuno desarrollar una metodología genérica.
10
Principalmente se basará en la metodología de cascada. El modelo en cascada es un
proceso secuencial de desarrollo de las fases de un proyecto software. Permite cierta
superposición entre estas fases permitiendo comenzar una poco antes de que acabe la
anterior. Un punto fuerte de este modelo es que se invierte gran tiempo en la
especificación y diseño software, lo que garantiza mayor éxito a la hora de alcanzar los
objetivos y evitar desvíos en la planificación. Lo malo es su rigidez a los casos de uso y
la dificultad de cambiar los requisitos una vez ya han pasado su fase.
Finalmente concluimos que este es el modelo que más se adecua a la Casiteka ya que
los requisitos están claros desde el principio y se tenía muy claro el cómo desarrollarlos.
Una vez descritas estas estas etapas del proyecto, se pasará a un análisis final del
proyecto y evaluar si lo que se tenía planificado al principio ha podido desarrollarse con
satisfacción y sencillez gracias al uso de la tecnología elegida. Junto con todo esto se
explica también la experiencia del desarrollador con la herramienta y sus opiniones
sobre ella. Como parte extra se presentarán unas pequeñas ideas para aumentar la
experiencia del usuario con la aplicación en forma de mejoras para el futuro.
11
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
2. Análisis de requisitos
En este capítulo está detallado el análisis realizado durante la fase inicial del proyecto.
En primer lugar se desarrolló el análisis de requisitos, basados en los objetivos del
proyecto y que nos definen el sistema a construir. Posteriormente se realizó un estudio
de las tecnologías que se podrían utilizar y así justificar la tecnología que se decidió
utilizar.
12
Código de REQ02 Alta /
Prioridad
requisito Imprescindible
Ver información detallada sobre cada documento de la
Nombre
biblioteca.
El usuario una vez dentro de la aplicación deberá poder ver
todos los documentos disponibles en la biblioteca junto con toda
la información referente a cada uno. Esta información se
Descripción
compone de autor, titulo, año de publicación, editorial, tipo de
documento, páginas, sinopsis, isbn, puntuación y una imagen
del documento.
13
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
14
Código de REQ08 Media / Deseable
Prioridad
requisito
Disponer de un buzón de sugerencias de los usuarios.
Nombre
De cara a mejoras y a tener un feedback por parte de los
usuarios siempre está bien disponer de un buzón de
sugerencias.
Descripción
Para ello se creará una cuenta de email en nuestro dominio. Esta
cuenta recibirirá todas las dudas y sugerencias que envíen los
usuarios a través de la sección diseñada expresamente para esto
en la aplicación
Este análisis consiste en analizar todos los interesados que puedan afectar al desarrollo
de nuestro proyecto. En proyectos comerciales se estudian desde los usuarios objetivos
de nuestra aplicación hasta posibles usuarios que supongan una amenaza para el éxito
de la misma.
15
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
no hay ninguna amenaza a nivel de usuarios para nuestra aplicación. De esta forma nos
centramos en los usuarios potenciales que harán uso de la aplicación.
A continuación se han elaborado tres fichas para cada uno de los usuarios. En función
de estas fichas luego se llegará a una conclusión sobre las características principales
que deberá tener nuestra aplicación.
Biografía
• 53 años de edad
• Nacido en Alcoy
• Trabaja de profesor de programación orientada a videojuegos en la
escuela superior de ingeniería informática en la Universidad Politécnica
de Valencia, campus de Alcoy
• Vive en Alcoy con su mujer y dos hijos
• Titulado en ingeniería informática en San Sebastián
• Cobra unos 70000 euros anuales
• Tiene un Ford Mondeo, con el que se desplaza a la universidad cada día
Objetivos
• Ponérselo fácil a sus alumnos a la hora de estudiar
• Optimizar su tiempo libre para compaginar su vida privada con la de profesor
• Suministrar documentación adicional a los alumnos
• Seguir aprendiendo sobre las nuevas tecnologías
Tecnología
• Está acostumbrada a usar ordenadores debido a su trabajo
• Tiene un IPhone 5S
• Usa multitud de redes sociales y está al día gracias a ellas
• No tiene problema en adaptarse a nuevas interfaces gráficas
• Le gusta experimentar nuevas tecnologías
Salud
• Tiene un problema de garganta debido a su adicción a fumar, por lo que usa contenido
de audio digital de la biblioteca para recomendárselo a sus alumnos
16
Michael Van Cassidy – persona
secundaria (Alumno)
Biografía
• 21 años de edad
• Nacido en Breda, Holanda
• Es estudiante de ingeniería informática en la Hogeschool van
Amsterdam
• Es estudiante Erasmus esta año en la escuela de ingeniería informática
de la universidad politécnica de Valencia
• Vive en un piso compartido con otros estudiantes Erasmus de Valencia
• Recibe una beca por deportista de elite, lo que le permite pagar sus
estudios con facilidad
• Utiliza el transporte público, ya que no dispone de vehículo propio.
• Apasionado de las bicicletas
Objetivos
• Ser el mejor en el ciclismo y en sus estudios
• Combinar sus aficiones con los estudios para disfrutar más de ambas cosas
• Acabar sus estudios y vivir de ello
• Seguir aprendiendo sobre las nuevas tecnologías
Tecnología
• Tiene un ordenador portátil potente para poder desarrollar aplicaciones
• Tiene un Smartphone y es imprescindible en su día a día
• Usa multitud de redes sociales y está al día gracias a ellas
• Desarrolla aplicaciones web de forma esporádica fuera de los estudios
• Le encanta probar programas en desarrollo y se apunta a todas las betas que le interesan
• Como buen informático prefiere usar multitud de tutoriales en la web antes que sacar
libros de bibliotecas
• Le encanta trabajar con música, tanto que es un joven dj que ha empezado recientemente
a producir su propia música
Salud
• Desarrollar deporte casi a diario le hace tener una salud casi perfecta
17
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Biografía
• 25 años de edad
• Nacida en Argentina pero vive en España desde que tenía 5 años
• Trabaja en la biblioteca de la Universidad Politécnica de Valencia como
auxiliar
• Vive en un piso con su hermana en la misma ciudad de Valencia
• Titulada en magisterio con especialidad para trabajar en bibliotecas
• Sus padres viven en Málaga
• Cobra unos 20000 euros anuales
• Le apasiona la lectura
Objetivos
• Desarrollar su trabajo lo más eficiente posible
• Tener algo de tiempo libre para visitar a sus padres
• Tener vida social fuera de la biblioteca
Tecnología
• Está acostumbrada a usar ordenadores debido a su trabajo
• Tiene un smartphone y una tablet que usa a diario
• Usa multitud de redes sociales y está al día gracias a ellas
Como podemos ver tras analizar 3 personas tipo llegamos a las siguientes conclusiones:
• Debido a lo anterior y como los usuarios no tiene mucho tiempo para aprender,
la aplicación deberá ser fácil de utilizar.
18
• Vemos como los estudiantes prefieren hacer consultas en internet para ver que
documentos les van a venir mejor de cara a sus exámenes o trabajos. Por esto
sería de gran importancia tener un buen sistema de comentarios en los
documentos para que así puedan conocer de antemano las experiencias de otros
alumnos y ver si realmente es lo que necesitan.
• Dado que los profesores usarán la plataforma para sugerir publicaciones a sus
alumnos, puede que llegue el momento de que vayan a sugerir un documento y
este no se encuentre en la biblioteca. Sería deseable desarrollar un sistema de
peticiones para los profesores. De esta forma podrían solicitar un documento a
los administradores.
• Finalmente para que cada uno tuviera una idea de la situación de sus préstamos
o reservas, es necesario hacer una sección específica para cada usuario en la que
pueda ver el estado de estos.
Esta fase del análisis es tan importante como el análisis de requisitos, ya que con una
buena elección de la tecnología para desarrollar la aplicación lograremos un gran
avance de cara a la implementación y diseño de la misma.
Una vez establecidos los objetivos y las necesidades del producto a desarrollar
descritas en el punto anterior vamos a proceder a elegir la tecnología que utilizaremos
para desarrollar nuestra herramienta.
El primer paso de todos consiste en elegir el sistema objetivo para nuestra aplicación.
Hay multitud de sistemas operativos móviles, entre los que destacan: Android, IOS,
Blackberry y Windows Phone. La elección del sistema objetivo es el primer paso
importante, por lo que vamos a realizar un análisis de cada uno de ellos.
19
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
[Link] Android
Este sistema ha tenido tanto éxito entre las compañías de teléfonos que brinda al
usuario un amplio catálogo de distintos modelos de diferentes compañías. Con esto
podemos tener móviles con una gran resolución de pantalla, otros solo para jugar, uno
diseñado para hacer fotos de gran calidad o incluso algunos para visitar las redes
sociales y hacer un uso mínimo de las demás funcionalidades.
Este amplio abanico nos permite encontrar móviles en el mercado a cualquier precio.
[Link] iOS
El sistema operativo que revoluciono la telefonía tal y como la conocíamos hace apenas
unos años. Es un sistema exclusivo de la marca Apple y brinda una experiencia única al
usuario otorgándole un funcionamiento sencillo, intuitivo y un gran rendimiento.
Tiene un amplio mercado de aplicaciones que además es el mercado que más beneficios
reporta anualmente. Las aplicaciones son revisadas una a una antes de ser puestas en el
mercado por un equipo de trabajadores de Apple para asegurar una calidad mínima en
las aplicaciones.
20
[Link] Windows Phone
Windows comenzó su andadura con los sistemas operativos móviles con Windows
Mobile, un sistema operativo para las PDAs. Esto supuso un gran éxito en aquel
entonces pero con el paso del tiempo se vio relegado a un segundo plano con la
irrupción de iOS y Android en el mercado.
Ahora tras el lanzamiento de Windows 8 que permite usar el mismo sistema operativo
tanto en ordenadores como en tablets están intentando ganar terreno a las otras dos
compañías. Bien es sabido que Windows nunca ha sido código abierto pero con la
nueva actualización a Windows 10 se prevee que esto cambie, ya que se ha anunciado
que será gratuita.
Así pues Windows puede dar un gran salto en el mercado si consigue unificar los
sistemas operativos de ordenadores, tablets y smartphones. Esto permitiría al usuario
saber utilizar un solo sistema operativo para usar tres dispositivos distintos, reduciendo
en mucho tiempo la curva de aprendizaje del usuario y haciendo más satisfactoria su
experiencia.
[Link] Blackberry
El principal atractivo de estos dispositivos era un teclado físico QWERTY en lugar del
típco teclado virtual que suele ocasionar frustración a los usuarios. Esto no fue
suficiente para atraer a los clientes y se vieron obligados a reinventarse con el
lanzamiento de Blackberry 10.
21
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Blackberry está orientado a que se pueda usar el máximo del dispositivo mediante el
código HTML5, mientras que los demás sistemas operativos tienen algo limitada esta
característica.
A pesar de esta revolución se ha podido ver como no ha tenido mucho éxito entre los
usuarios y continúa relegada en el segundo plano.
Vamos a proceder a una breve comparación respecto a las cuotas de mercado de los
sistemas operativos analizados y algunos minoritarios más.
Esto hace pensar que en el futuro Android seguirá aumentando su presencia en el resto
de dispositivos móviles y lo confirma como el sistema a batir. Además vemos como
Windows Phone y BlackBerry no alcanzan ni un 3% sobre el total, lo que los hace poco
interesantes como objetivo de nuestra aplicación.
22
ILUSTRACIÓN 6: TENDENCIA DE LOS SISTEMAS OPERATIVOS DURANTE EL AÑO 2014.
La figura anterior ilustra la evolución de los sistemas operativos durante el año 2014,
donde podemos apreciar claramente el gran avance de Android y a caída de iOS
respecto a él.
Además de todo esto durante este último año se han producido intentos de desbancar a
Google y su Android como mayor sistema operativo como Tizen, Firefox, Baidu…
Aunque se ha podido comprobar que no han tenido éxito alguno y se han quedado en
un mero intento.
Debido a todas estas conclusiones es fácil pensar que el objetivo de nuestra aplicación
debe ser Android o iOS, ya que nos aseguraríamos que la mitad de smartphones
pudieran acceder a nuestra aplicación. Pero ahora surge un gran debate por cuál de las
dos escoger y vamos a intentar resolverlo en el próximo punto.
Una vez hecho el análisis anterior vamos a elegir el sistema operativo para el que
desarrollaremos nuestra aplicación.
23
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
• En tercer lugar tenemos que investigar los mercados de aplicaciones para ver
cuál es el más interesante para nosotros y debido a la gran cuota de mercado
que tienen Android y iOS son los que más nos interesan.
• Como último punto clave necesitaremos una gran comunidad que nos de
soporte en caso de que nos surjan dudas y problemas durante la programación
de la aplicación nos resulte fácil encontrar una solución. Además debido a la
experiencia durante la carrera en desarrollo de aplicaciones Java y aplicaciones
web sería interesante que el lenguaje de programación fuera uno de estos para
evitar aprender desde cero un nuevo lenguaje.
Así que la gran decisión no es elegir el sistema objetivo si no el tipo de aplicación que
vamos a desarrollar, por lo que ahora vamos a examinar los distintos tipos de
aplicaciones que hay y lo que esto conllevaría.
Cada empresa, ya sea Google, Apple, Windows o BlackBerry, pone a disposición de los
desarrolladores un SDK(Software Development Kit). Este SDK incluye un conjunto de
herramientas y programas de desarrollo que permiten a los desarrolladores crear
aplicaciones para un sistema operativo en este caso. En la mayoría de los casos incluyen
herramientas de debugger, códigos de ejemplo e incluso un entorno de programación
propio.
24
• Android: Utiliza el lenguaje Java y sus SDK más importante es Android Studio
[5].
• BlackBerry: Hace uso del lenguaje C++ mediante su SDK [8]. Es la plataforma
más evolucionada en este tema ya que actualmente han adaptado su SDK para
poder programar también en Java y en ActionScript.
Desarrollar una aplicación nativa es la mejor opción en caso de que se quiera sacar el
máximo rendimiento al software y hardware del dispositivo. Todo depende de la
experiencia de los desarrolladores pero con un buen código el resultado será el mejor ya
que se desarrolla específicamente para un sistema operativo siguiendo las directrices
que imponen los desarrolladores del mismo.
Sin embargo no todo son ventajas en este tipo de aplicaciones. Como vimos en la
decisión para elegir sistema operativo, este tipo de aplicaciones te limita el usuario
objetivo de la aplicación ya que solo se puede acceder a una mitad del mercado si se
escoge Android y a la otra mitad si se escoge iOS. Desarrollar dos aplicaciones iguales
pero para distintos sistemas supondría un alto coste económico y de tiempo. Además
de lo que supondría la curva de aprendizaje de aprender los lenguajes de programación.
La otra gran desventaja de las aplicaciones nativas son las continuas actualizaciones del
sistema operativo. Estas actualizaciones obligan al desarrollador a modificar la
aplicación para adecuarla a las nuevas funcionalidades.
25
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Vistos los principales frameworks nos podemos hacer una idea de cómo son las
aplicaciones híbridas. El grado de integración con el SO dependerá en mayor medida
del framework elegido y como de abierto sea el SO. De esta forma se tiene bastante
acceso al hardware del teléfono e incluso a veces a las librerías del sistema, aunque no
ha conseguido mejorar la respuesta y experiencia de usuario de una aplicación nativa.
Finalmente cabe destacar el progreso de este tipo de aplicaciones que ahora están
combinando funcionalidades ejecutadas como web y otras en nativo. De esta forma
para las funcionalidades que requieran uso del hardware del teléfono da mayor
rendimiento ejecutarlo como nativo.
26
[Link] Aplicaciones Web
Estas aplicaciones se caracterizan por ser simplemente una página web. Consiste en
una web a la que se accede a través de un navegador del dispositivo y esta se adapta al
formato de la pantalla para que tenga un aspecto de navegación App. Al tratarse de una
web normal y corriente los lenguajes que se utilizan para su programación son HTML5,
CSS3 y JavaScript.
La gran desventaja es el limitado acceso al hardware del dispositivo por no decir nulo.
Además de que estas apps no se encuentran en las Stores, a diferencia de los otros dos
tipos de aplicaciones.
27
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
las características expuestas en el punto de elección de sistema operativo y ver qué tipo
de aplicación se adecua más a nuestra aplicación.
• Como último punto clave necesitaremos una gran comunidad que nos de
soporte en caso de que nos surjan dudas y problemas durante la programación
de la aplicación nos resulte fácil encontrar una solución. Como durante la
carrera se aprende a programar en Java, HTML, JavaScript, Php…. Lo más
factible sería hacer una aplicación nativa de Android o desarrollar aplicaciones
híbridas o web apps.
Vistos todos estos puntos nos faltaría analizar un último punto. Nuestra aplicación
tiene que hacer consultas a una base de datos externa para poder llevar a cabo la
mayoría de sus funcionalidades. Esto conlleva que para que la aplicación funcione
correctamente se necesita hacer uso de internet, lo que hace que la ventaja de las
aplicaciones híbridas y nativas de poder ser usadas offline no sea un punto a favor de
ellas, ya que nuestra aplicación siempre necesitará acceso a internet.
Con todo lo analizado se estima conveniente desarrollar una Web App. Nos basamos en
los 4 puntos analizados anteriormente ya que con desarrollar una única aplicación
conseguimos toda la cuota de mercado a nivel de sistema operativo. Lo segundo es el
tiempo que nos ahorramos programando respecto a las híbridas, ya que las híbridas
necesitan retoques para adaptarlas a cada SO. El punto para decidir entre híbridas y
web apps es que nuestra aplicación no necesita hacer uso del hardware del teléfono
móvil. Debido a esto se prefiere desarrollar una webApp ya que el desarrollo será más
sencillo y se eliminan todas estas características extras que no son necesarias.
28
3. Especificación del sistema
La fase de especificación consiste en documentar de forma sencilla y precisa, las
necesidades y funciones específicas de un sistema determinado.
En la fase de especificación vamos a definir los casos de uso. Esta técnica sirve para
definir las interacciones entre un sistema y sus actores. De esta forma se detalla la
forma en que el sistema reacciona a un evento iniciado por un actor.
Los casos de uso surgen de los requisitos funcionales del sistema y ya hace una pequeña
especificación de cómo será el diseño de la aplicación, a nivel de que debe haber en las
secciones por las que debe pasar el usuario pero no el cómo se implementan.
Primero se mostrarán los diagramas de casos de uso, que definirán de forma gráfica los
casos de uso, y seguidamente se describirá cada uno de ellos de forma detallada.
Una vez visto que son los casos de uso, vamos a proceder a mostrar los actores y el
diagrama de casos de uso. Los actores son entidades externas al sistema que guardan
relación con este y le demanda funcionalidad.
29
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
3.1.1 Actores
Dentro de la aplicación diferenciamos dos actores muy parecidos pero con alguna
pequeña diferencia, el usuario alumno y el profesor. Un alumno puede acceder a todo el
contenido de la aplicación al igual que un profesor. La diferencia está en que el profesor
tiene acceso a algunas funciones más para contactar de forma rápida con los
administradores.
A continuación podemos ver la siguiente figura que ilustra los casos de uso de la
aplicación móvil junto con los actores que los realizan.
30
3.1.3 Descripción de los casos de uso
Primer flujo alternativo – Reservar cualquier otro documento físico (Paso 4 flujo básico)
1. El usuario puede seleccionar novedades, destacados, audio y revistas para poder
continuar con el flujo básico y reservar un documento de ese tipo de la misma forma
que el anterior.
31
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
32
UC4: DEMANDAR DOCUMENTO
Descripción : El usuario (con privilegios de profesor) puede solicitar a los administradores de
la biblioteca la inserción de un nuevo documento a ella misma.
Actores: Usuario profesor.
Precondición: El usuario debe tener permisos especiales para solicitar un documento. Solo los
profesores o auxiliares pueden usar esta funcionalidad, así que el usuario deberá poseer uno de
estos dos roles.
Flujo principal:
1. El usuario abrirá la aplicación.
2. Al abrir la aplicación el sistema muestra un menú para introducir los credenciales de
usuario y permitir así el login de los usuarios.
3. El usuario debe introducir su usuario y contraseña. Una vez hecho esto procede a
loguearse.
4. El sistema muestra menú con distintas opciones: mi sección, novedades, destacados,
libros, audio, revistas, docs online, bibliotecas y contacto. Además de todo esto se
incluye un campo para realizar búsquedas.
5. El usuario seleccionará la opción de me sección.
6. El sistema le mostrará tres secciones: mis libros, mis reservas, mis peticiones.
7. El usuario pulsará sobre el botón de solicitar documento, que se encuentra en la sección
de mis peticiones.
8. El sistema le muestra un formulario para introducir el título, el autor, la editorial y el
año de publicación del documento.
9. El usuario rellena los datos y pulsa en el botón de solicitar.
10. El sistema le muestra un mensaje de confirmación.
Flujo principal:
1. El usuario abrirá la aplicación.
2. Al abrir la aplicación el sistema muestra un menú para introducir los credenciales de
usuario y permitir así el login de los usuarios.
3. El usuario debe introducir su usuario y contraseña. Una vez hecho esto procede a
loguearse.
4. El sistema muestra menú con distintas opciones: mi sección, novedades, destacados,
libros, audio, revistas, docs online, bibliotecas y contacto. Además de todo esto se
incluye un campo para realizar búsquedas.
5. El usuario seleccionará la opción de me sección.
6. El sistema le mostrará tres secciones: mis libros, mis reservas, mis peticiones.
7. El usuario pulsará sobre el botón de cancelar, que se encuentra en la sección de mis
reservas, correspondiente a libro que anticipó su reserva y ahora desea cancelarlo.
8. El sistema le mostrará un mensaje confirmando su cancelación.
33
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Primer flujo alternativo – Recomendar cualquier otro documento (Paso 4 flujo básico)
1. El usuario puede seleccionar novedades, destacados, audio, revistas, docs online o
resultados de búsqueda para poder continuar con el flujo básico y reservar un
documento de ese tipo de la misma forma que el anterior.
34
UC7: OPINAR SOBRE UN DOCUMENTO
Descripción : El usuario dispondrá de la opción de dar su opinión sobre un documento.
35
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
UC9: CONTACTAR
Descripción : El usuario podrá contactar con administración en caso de que tenga dudas
referentes a cualquier tema de la aplicación.
36
3.2. MODELO CONCEPTUAL
Una vez determinados los casos de uso, se debe determinar un modelo de datos para el
sistema. Un modelo de datos está compuesto por clases, atributos, métodos y relaciones
que representarán los objetos del sistema.
Este modelo conceptual se define a través de un diagrama de clases en el que cada clase
contiene unos atributos y unos métodos. Una vez tenemos definidas todas las clases se
procede a establecer la relación que hay entre cada una de ellas y de esta forma
obtenemos el diagrama de clases.
Este modelo de datos representa un sistema en el que todos los usuarios pueden
interactuar con el sistema en función de su rol.
Lo mismo pasa con los comentarios. Un usuario puede comentar tantos documentos
como quiera las veces que quiera pero un comentario solo puede estar hecho por un
usuario. Un documento tiene comentarios ilimitados mientras que un comentario es
específico para un documento.
A parte de la gran relación entre usuarios y documentos existen otras dos relaciones
más en nuestro modelo.
37
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
La relación entre usuarios y bibliotecas que consiste simplemente en que los usuarios
pueden consultar la información de cualquier biblioteca y las bibliotecas pueden ser
consultadas por cuantos usuarios quieran.
La última relación es la de usuarios con peticiones. Esta relación especial, ya que solo
los usuarios que tenga el atributo “rol” igual a profesor podrán tener esta relación. Un
usuario profesor puede crear cuantas peticiones quiera, mientras que una petición solo
puede ser creada por un usuario.
38
4. Diseño
La fase siguiente a la especificación es la de diseño. En esta fase se va a estudiar y
decidir cómo va a funcionar el sistema, basándonos en su arquitectura y teniendo en
cuenta todos los requisitos no funcionales. El objetivo final es definir un sistema con el
suficiente detalle que permita su implementación.
• Crear una abstracción del desarrollo de todos los componentes del sistema. Esto
permitirá en un futuro la posibilidad de rediseñar el proyecto y su
implementación de forma más sencilla.
Para comenzar con la sección de diseño se describirá la arquitectura física del sistema
para que estos se adecuen a las funcionalidades descritas anteriormente de la mejor
forma posible. Posteriormente se describirán las tecnologías elegidas para el desarrollo
de la aplicación en el análisis tecnológico. Finalmente se mostrará la descripción de las
interfaces junto con un diagrama de transición de estados para entender mejor que
hace cada pantalla.
39
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Para resumir un poco la estructura del proyecto sería la siguiente. Un servidor que
contenga toda la aplicación y los datos de ella en una base de datos al que acceden los
clientes. Los clientes acceden a la aplicación a través del navegador de su dispositivo
móvil. También pueden acceder a través de un ordenador pero la aplicación está
optimizada para el uso en dispositivos móviles y no se garantiza el correcto
funcionamiento en ordenadores.
40
• Además se dispone de un servicio de gestión de correo en el mismo servidor
para poder atender todas las consultas que nos lleguen al buzón mediante la
sección de “contacto”.
El servidor donde se alojará todo será por el desarrollador, pero su ubicación no estará
relacionada con el desarrollador. Concretamente el servidor es suministrado por la
empresa [Link] [14], que tiene alojados sus servidores en Dinamarca como se puede
ver en algunas páginas que muestran donde están físicamente alojados los dominios
web [15].
4.2.1 [Link]
Esta la empresa que nos suministra el servidor físico donde se aloja toda la aplicación.
Nos hemos decantando por ella solamente por el aspecto económico ya que durante el
primer año ofrecen un dominio gratuito con una capacidad máxima de 15 GB.
En nuestro caso la aplicación excede ese tamaño y tampoco los datos almacenados en la
base de datos. Si en un futuro se llegara a ocupar todo ese espacio, la empresa ofrece la
posibilidad de ampliación de tamaño de servidor. De esta forma para el comienzo
tenemos un espacio reducido aunque suficiente pero tenemos la opción de ampliar este
espacio si el sistema lo necesita.
Las principales ventajas que nos ofrece este servicio de alojamiento son las siguientes:
• Editor web: Un editor WYSIWYG (What You See Is What You Get) permite
realizar páginas web mucho más fácil. Un editor web no es necesariamente un
paquete de software que se instala en el ordenador personal tras haber sido
comprado.
En este caso se proporciona al usuario un editor web en línea y se pueden
utilizar desde cualquier odenador con acceso a internet. Con este editor se
proporcionan multitud de plantillas para utilizar como base para un nuevo sitio
web.
Como nuestra aplicación no es una aplicación web normal, ya que usa el
framework JQuery Mobile no hemos hecho uso de este editor pero si hemos
usado el editor de texto normal que ofrecen en su File Manager, en lugar de
utilizar otro como SublimeText o Dreamweaver. Esta decisión se ha tomado
41
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
• Asistencia 24/7: Se ofrece una asistencia las 24 horas del día durante los 7 días
de la semana mediante un chat. De esta forma tenemos apoyo técnico respecto a
cualquier duda que nos surja durante el uso de los servicios de [Link] en
cualquier momento.
• SSL: [Link] utiliza SNI (Server Name Indicator) que hace posible tener varios
certificados SSL en el mismo número IP. Además te aseguran un certificado SSL
a coste 0. Ofrecen ejecución y mantenimiento de este certificado y garantizan
que la seguridad es de primera clase.
42
los documentos de forma rápida y sencilla, además de la posibilidad de editarlos
gracias al editor de texto que incorpora. Este editor ha sido el utilizado para
programar la aplicación.
• PHP y MySQL: También ofrecen acceso a PHP 5 y a una base de datos MySQL,
que es la que hemos utilizado para guardar toda la información de la aplicación
referente a usuarios, bibliotecas, documentos….
• Google Adwords: Como [Link] es socio de Google, estos ofrecen a sus clientes
un cupón de anuncios AdWords. De esta forma nuestro sitio web se ofrecería
dentro del sistema de marketing dirigido creado por Google. Este sistema
consiste en mostrar publicidad a los visitantes que realmente están buscando lo
que el sitio web anunciante puede ofrecerles.
JQuery Mobile lleva el famoso dicho “Write less, do more” (escribe menos, haz más) a
un nuevo nivel: Este diseña webs de forma automática con una estética fácil de usar y
que además funcionará en la mayoría de dispositivos móviles.
En lugar de escribir una aplicación para cada dispositivo móvil o sistema operativo
jQuery Mobile resulte este problema mediante el uso de HTML5, CSS3 y JavaScrip para
desarrollar una aplicación web estándar que será visible a través de cualquier
navegador móvil.
43
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Como bien se ha explicado a lo largo de esta memoria vamos a utilizar los lenguajes de
programación HTML5, CSS3 y JavaScript para desarrollar la interfaz y lógica interna
de la aplicación.
Para empezar vamos a describir brevemente en qué consisten estos tres lenguajes:
Como podemos ver con estos tres lenguajes podemos hacer todo lo que queremos. Pero
si nos fijamos en la descripción de JavaScript, dice que no tiene acceso a funciones del
servidor. Ahí es donde entra en juego el papel de PHP que se encargará de acceder a
esas funciones y JavaScript se limitará a interpretar los resultados que devuelven los
métodos PHP para mostrarlos en la aplicación. Luego se entrará más en detalle sobre
PHP y la comunicación entre la base de datos y la aplicación.
44
[Link] Añadiendo jQuery Mobile a una página web
Una vez explicados por encima los distintos lenguajes que se usarán vamos a explicar
cómo comenzar a desarrollar una página web basada en jQuery Mobile.
El primer paso consiste en añadir jQuery Mobile al sitio web. Para hacer esto hay dos
métodos distintos:
<head>
<!—Metadatos para autoescalar la pantalla y fijar el zoom
predeterminado -->
<meta name="viewport" content="width=device-width, initial-
scale=1">
<!—Incluye la hoja de estilos de jQuery Mobile -->
<link rel="stylesheet"
href="[Link]
[Link]">
<!—Incluye la librería de Jquery -->
<script src="[Link]
</script>
<!-- Incluye la librería de Jquery Mobile -->
<script src="[Link]
[Link]"></script>
</head>
45
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Ahora que ya tenemos claro cómo debemos comenzar cualquier proyecto jQuery Mobile
vamos a mostrar cómo es la estructura básica de una página.
<body>
<div data-role="page">
<div data-role="header">
<h1>Welcome To My Homepage</h1>
</div>
<div data-role="main" class="ui-content">
<p>I Am Now A Mobile Developer!!</p>
</div>
<div data-role="footer">
<h1>Footer Text</h1>
</div>
</div>
</body>
46
[Link] Efectos visuales
JQuery Mobile incluye efectos CSS3 que permiten al usuario multitud de opciones.
Entre ellos destacan:
De esta forma nos quedamos con la siguiente tabla de compatibilidad con los
navegadores más importanes junto con el número de versión mínimo para
ejecutar las transiciones.
Para añadir una transición tan sólo debemos añadir la etiqueta data-
transition=”tipoTransicion” a la etiqueta <a href> que queramos dotar de
transición. El valor de “tipoTransicion” tomará un valor en función del tipo de
transición que se quiera poner (flip, flow, pop, slide, sideup….)
• Iconos: Un inconveniente principal de utilizar una web app es que esta tiene
una limitación muy grande a la hora de hacer uso del hardware del dispositivo
móvil. Esto hace que no sea posible acceder a las librerías de iconos.
• Popups: Un popup es muy parecido a los diálogos y estos pueden ser utilizados
para mostrar un pequeño texto, fotos, mapas u otros contenidos.
47
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Para desarrollar una interfaz compatible con las pantallas de dispositivos móviles,
jQuery Mobile dispone de multitud de elementos diseñados específicamente para uso
en pantallas táctiles y de tamaño reducido.
• Botones: Para crear los botones podemos hacerlo de tres formas distintas:
o <input type="button" value="Button">: Utilizado para validar
formularios.
o <button class="ui-btn">Button</button>: Su uso es similar al del
anterior.
o <a href="#anylink" class="ui-btn">Button</a>: Aconsejado para
enlazar con otras páginas.
Del mismo modo que en cualquier página normal HTML existen otros tipos de
botones pero modificados para los dispositivos móviles. Estos botones pueden
ser: botón de atrás, botones alineados, botones agrupados de selección única o
checkbox entre otros.
Además de estos tipos de elementos existen muchos otros. Más adelante describiremos
en más detalle los elementos que más hemos utilizado en la aplicación junto con
algunos ejemplos de su uso.
4.2.3 Comuniaciones
48
Todas las conexiones a la base de datos se realizan mediante métodos PHP.
PHP [17] es un lenguaje de código abierto adecuado para el desarrollo web y puede ser
incrustado en HTML. Mediante el uso de las etiquetas <?php y ¿> podemos entrar y
salir respectivamente del modo php dentro de un archivo HTML.
• Scripts del lado del servidor: Es el objetivo principal de PHP y el ámbito más
tradicional. Para que esto funcione son necesarias tres cosas: analizador de
PHP, servidor web y navegador web. Es necesario ejecutar el servidor con una
instalación de PHP conectada. Se puede acceder al resultado del código
mediante un navegador.
Como hemos visto nuestro uso sería el primero, ya que tenemos el analizador de PHP
instalado en el servidor web y un navegador desde el que poder acceder al servidor y ver
el resultado de nuestras consultas.
Una vez descrito brevemente en que consiste PHP podemos explicar de forma más
técnica como se han desarrollado las comunicaciones.
Todos los métodos PHP tienen la misma estructura. Primero realizamos la conexión a
la base de datos junto con los credenciales de usuario:
49
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Una vez se hace la consulta, se recibe toda la información que cumple la condición de la
misma. Ahora tan sólo hay que crear un array con formato JSON y enviarlo de vuelta a
la aplicación.
$principio="[";
$container="";
while($row = $res->fetch_row())
{
$codd = $row[0];
$titulo = $row[1];
$autor = $row[2];
$ano = $row[3];
$editorial = $row[4];
$paginas = $row[5];
$tipo = $row[6];
$lengua = $row[7];
$isbn = $row[8];
$sinopsis = $row[9];
$puntos = $row[10];
$voto = $row[11];
$valoracion = $row[12];
$imagen = $row[13];
$online = $row[14];
$iduser = $row[15];
$fechainsert = $row[16];
$container.="{\"codd\":\"".$codd
."\",\"titulo\":\"".$titulo."\",\"autor\":\"".$autor."\",\"ano\":\"".$ano."\",\"editorial\":
\"".$editorial."\",\"paginas\":\"".$paginas."\",\"tipo\":\"".$tipo."\",\"lengua\":\"".$le
ngua."\",\"isbn\":\"".$isbn."\",\"sinopsis\":\"".$sinopsis."\",\"puntos\":\"".$puntos."\
",\"voto\":\"".$voto."\",\"valoracion\":\"".$valoracion."\",\"imagen\":\"".$imagen."\",
\"online\":\"".$online."\",\"iduser\":\"".$iduser."\",\"fechainsert\":\"".$fechainsert."\
"},";
}
$fin="]";
$json=$principio.$container.$fin;
$json = str_replace(",]","]",$json);
echo $json;
Como podemos ver los métodos PHP son muy sencillos. Solamente tenemos que
establecer conexión con la base de datos y enviar los datos devuelta en formato JSON a
la aplicación. Posteriormente la aplicación deberá tratar estos datos haciendo uso de la
función de getJson que tiene implementada la librería de jQuery. Esta función se
50
encarga de llamar al método PHP anteriormente explicado y de recibir los datos. Luego
tan sólo se debe recorrer el array que se recibe para coger los valores y mostrarlos en
nuestra aplicación.
Como se puede ver la comunicación es muy simple ya que siempre sigue el mismo
patrón y todas las comunicaciones se basan en esto.
Como un pequeño apéndice vamos a explicar en qué consisten los archivos JSON [18]:
• Otra gran diferencia es que JSON es mucho más ligero que XML y por lo tanto
permite la transferencia de más datos en menos tamaño.
Un mapa de navegación permiten saber de forma rápida cual será la forma de navegar a
través del software, o dicho de otra forma, pasar de unas pantallas de la aplicación a
otras.
Para comenzar vamos a ir presentando una a una todas las interfaces desarrolladas y
explicando su funcionamiento para luego relacionarlas todas en el mapa de navegación.
51
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Aquí se muestra el menu principal con las diferentes funcionalidades que la aplicación
presta al usuario. Esta es el eje principal de toda la aplicación y desde ella se puede
acceder a todo el contenido que ofrece la aplicación.
52
ILUSTRACIÓN 19: MI SECCIÓN
En esta ventana el usuario podrá consultar todos los libros que tiene reservados
actualmente y en la segunda sección los libros que tiene reservados para el futuro. El
usuario de tipo alumno tendrá estas dos secciones, mientras que el profesor además
dispondrá de la opción de realizar peticiones y ver su estado.
Esta es la sección que solo podrán ver los usuarios del tipo profesor, en ella se pueden
ver una lista de las peticiones realizadas y un pequeño formulario para realizar más.
53
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Tras pulsar sobre un elemento de la lista en la venta de listado, accederemos a todos los
datos de un documento. En este caso se muestra un documento online y un libro. para
el online vemos como se muestra el botón de descargar y para el libro físico se muestra
un aviso de cuando está disponible y un selector de fecha para seleccionar cuando
queremos el libro.
54
ILUSTRACIÓN 24: DOCUMENTO2
55
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
56
ILUSTRACIÓN 28: CONTACTO
Inicio
Biblioteca
Log in Log out
Contacto Contacto
Atrás Menú Selec biblio Atrás
Atrás
Atrás Bibliotecas
Audio, Docs, Bibliotecas
Revistas,
Novs, , Libros,
Atrás
Destacados
Sección Listado
57
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
En la Casiteka, los datos más importantes con los que vamos a trabajar son los
diferentes tipos de contenido necesarios para cada funcionalidad. Como ya se vió
anteriormente en el modelo entidad relación la estructura que tendrá nuestra base de
datos vamos a pasar a explicar cada una de las tablas y sus atributos más importantes.
De esta forma se proporcionará una idea general de cómo se almacenan los datos que
se muestran en la aplicación en nuestra base de datos.
4.4.1 Documentos
• Título: Nombre que define al documento tanto en las listas como en la sección
individual de un documento.
• FechaInsert: Nos permite ordenar los documentos de los más recientes a más
antiguos en la biblioteca para mostrarlos como “novedades”.
58
4.4.2 Usuarios
Los usuarios contienen toda la información de cada usuario. Gracias a este tipo de
contenido podemos gestionar los usuarios y sus contraseñas, junto con el tipo de
usuario que son para darles más o menos privilegios en la aplicación.
• Rol: Código que nos permite diferenciar los usuarios alumnos de profesores.
4.4.3 Préstamos
Los préstamos contienen la información referente a los documentos reservados por los
usuarios. De esta forma podemos tratarlos como una entidad propia y dotarla de
atributos para así añadir caducidad a los préstamos y poder gestionarlos en una línea
de espacio.
4.4.4 Comentarios
Los comentarios permiten a los usuarios dar su opinión sobre un documento. Este
contenido nos permite dotar de información suplementaria a los documentos y de
forma transparente a los desarrolladores, ya que serán los usuarios quienes añadan esta
información en función de su experiencia con el documento.
59
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
4.4.5 Peticiones
Las peticiones sirven para gestionar los documentos demandados por los profesores.
Así se permite una fácil gestión de las peticiones y la posibilidad de consultar su estado
al creador.
• Estado: Estado de la petición que se mostrará al usuario para que conozca como
va su petición.
4.4.6 Bibliotecas
Este contenido almacena toda la información referente a las bibliotecas. Con esto
podemos suministrar al usuario desde los horarios hasta un mapa con la ubicación
concreta de la biblioteca.
60
5. Implementación
Una vez visto el diseño del producto, se va a proceder a describir de forma detallada las
tareas realizadas durante el desarrollo de la aplicación.
Este capítulo va a estar divido en tres grandes partes. Para comenzar vamos a describir
el trabajo previo para poner el servidor a punto para nuestra aplicación seguido de una
explicación de cómo se comunica una página con otra. Para finalizar, se explicará el
desarrollo de las funcionalidades del sistema.
Una vez comprado el dominio del servidor y con esto conseguido el acceso a la
plataforma de [Link], el primer paso era como alojar la aplicación en nuestro
servidor. Como se ha explicado antes [Link] ofrece multitud de servicios, entre ellos
un File Manager en el que se pueden alojar ficheros.
61
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
A través de esta herramienta se subirán todos nuestros ficheros html, js, php o css,
además de todas las imágenes y demás documentos necesarios para la aplicación. De
esta forma se creará un directorio raíz, el cuál contendrá los ficheros “.html” y “.php”
más las carpetas “CSS”, “JavaScripts” e “Imágenes”. Cada carpeta contendrá lo que su
propio nombre indica, archivos css, JavaScript y las imágenes que se utilicen en la
aplicación.
Como punto extra cabe añadir que se usará Dropbox para alojar los archivos online. Si
bien es cierto que podríamos alojarlos en nuestro propio servidor, hemos optado por
esta opción ya que la velocidad de descarga a través de Dropbox es mayor que si
nuestro servidor ofreciera la descarga. Además este cambio de alojamiento no supone
ningún problema para la implementación, ya que solo hace falta una url que asociar a
cada documento y Dropbox ofrece url públicas a documentos alojados en la carpeta
Public [19].
Esta herramienta permite crear una base de datos perfectamente integrable con la
Casiteka. La herramienta es “PhpMyAdmin”, que es la misma que ofrece XAMPP. En la
siguiente ilustración se puede apreciar la interfaz básica en la que a la izquierda se
muestran todas las tablas de la base de datos y en la sección central se puede ir
cambiando la vista para ver el contenido de una tabla, la estructura, ejecutar sentencias
SQL, opciones….
62
ILUSTRACIÓN 33: PHPMYADMIN
Una vez creado el contenido y con esto también los usuarios, el mayor problema que se
nos plantea es la gestión de usuarios. Dado que no usamos ningún gestor de contenidos
que nos ofrezca una gestión de usuarios ni ningún tipo de framework que nos facilite
este cometido debemos implementar una solución mediante código.
Tras investigar un poco las posibles opciones se decide que la más acertada para
nuestro cometido es la comunicación mediante el paso de parámetros por la url. Con
esto conseguimos una comunicación directa y sencilla de implementar. Para
implementarla básicamente tenemos que seguir dos pasos muy sencillos. Primero
tenemos que enviar la url con los parámetros previamente leídos de la página y
después parsear los parámetros de la url para obtenerlos en la nueva página.
A continuación se muestra un ejemplo del código para enviar unos parámetros y como
posteriormente se leen en la siguiente página.
Con esta línea simplemente se llama a la siguiente página correspondiente del mapa de
navegación junto con unos parámetros. Se aprecia como para añadir parámetros se
debe añadir una interrogación seguida de una dupla nombre=valor. En el caso de
querer pasar más de un parámetro se añadirán más duplas separadas por el signo &.
63
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Una vez con la estructura de contenidos preparada, junto con los usuarios y además
elegido un método de comunicación entre páginas ya se puede empezar a desarrollar
todas las funcionalidades que tendrá el sistema.
A modo de destacar las tareas que han requerido mayor esfuerzo, se va a proceder a
describir el trabajo realizado para implementar las principales funcionalidades de la
aplicación.
Como bien se sabe para usar jQuery Mobile un fichero html siempre tiene que llevar los
links a las librerías y hojas de estilos. Además debe tener una estructura fija mínima
basada en los tags de header, main y footer dentro de un div page como ya se ha
explicado en la sección de diseño.
64
5.3.1 Inicio de sesión
Además de todo esto, el usuario es necesario para cargar la sección de cada uno y
mostrar toda su actividad en la Casiteka.
Para su desarrollo lo único que hizo falta fue implementar un método en php que
permitiera la consulta de usuario y contraseña en nuestra base de datos. Este método
comprueba que el usuario indicado tiene asignada la contraseña indicada en la tabla
usuarios.
Para comenzar el usuario tiene que elegir en el menú principal que tipo de listado
quiere ver o introducir una palabra clave en el buscador. A continuación se llama a un
método php que realiza un tipo de búsqueda u otro en la tabla documentos de la base
de datos.
Este método nos devuelve campos como el título, el autor, la imagen o la valoración del
documento. Con esto conseguimos los datos necesarios para luego cargarlos en una
lista en la que el usuario pueda ver la información más relevante de cada documento.
Para esto hemos creado un elemento de lista con thumb. El thumb nos permite mostrar
una imagen en el margen izquierdo del elemento y en el resto se muestra la demás
información. A continuación se muestra un ejemplo de elemento.
65
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
});
Con este método llamamos al método php “tipo2” y parseamos el array obtenido de
nuestra consulta. Cada objeto del array es un documento que contiene 5 propiedades.
Esas propiedades se corresponden con los datos del documento que se van a mostrar y
por lo tanto el código coge estos atributos y los añada al listítem mediante la función de
jQuery $.append().
Con este código conseguimos crear la lista de todos los documentos que cumplen con
los criterios establecidos por el usuario.
66
5.3.3 Reservar documento
Una vez el usuario selecciona un documento el sistema vuelve a hacer una petición php
a la base de datos para recuperar todos los datos de dicho documento. Posteriormente
estos datos son tratados por la aplicación de la misma forma que en la sección 5.3.2 y
son mostrados en tres secciones: Información principal del libro, información adicional
y documentos.
Para implementar el selector de fechas se ha tenido que hacer uso de un plugin externo
[20], ya que jQuery no proporciona ningún elemento tipo calendario ni parecidos.
Una vez el usuario selecciona una fecha se vuelve a llamar a otra función php muy
parecida a la descrita en la sección anterior:
$.getJSON( '[Link]', {
iduser:codu,iddoc:codd,fechaini:fechacal,fechafin:fechacalfin})
.done(function(json) {
for (var i = 0; i < [Link]; i++) {
var object = json[i];
j=0;
for(property in object){
result[j] = object[property];
// This alerts "id=1", "created=2010-03-19", etc..
j++;
}
respuesta =result[0];
}
});
}
if(reservadaok==0){
alert("La reserva no se pudo efectuar para las fechas seleccionadas");
[Link]();
}
if(reservadaok==1){
alert("Reserva realizada correctamente hasta el día: "+fechacalfin);
[Link]();
67
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Esta llamada al php es algo distinta, ya que se le pasan unos argumentos al método. El
método php es igual que la mayoría salvo que en lugar de hacer un select de una tabla,
hace un insert de los datos pasado en la tabla de préstamos. De esta forma el método
mostrado arriba envía los datos de código usuario, código documento, fecha inicio y
fecha fin (fecha inicio +15 días) al método y se espera a que se tramite la petición. En
función de la respuesta del php luego se muestra el aviso de si se ha podido realizar o
no la reserva.
A la hora de crear la ficha de los datos está ahora mostrará un botón de descargar, que
simplemente hace referencia a la url de Dropbox del archivo a descargar. Una vez el
usuario pulsa en este botón se redirigirá a la página de descarga. El usuario podrá
realizar tantas descargas como quiera de cada documento.
JQuery Mobile no tiene ninguna función desarrollada parecida a esta, por lo que ha
sido necesario hacer uso de un plugin externo [21]. Para hacer uso de él se tienen que
asociar a la página las librerías de javascript y las hojas de estilo de este plugin.
68
Test',url:'[Link] ui: {flyout:
'top center'}});"
Aquí se aprecia cómo se crea un div con la nomenclatura especificada por el plugin.
Posteriormente mediante un script se definen las características principales del botón,
entre las que se pueden apreciar el título, la url que se compartirá y un estilo de
interfaz.
Cuando el usuario pulse sobre el botón “SHARE” entonces tendrá que elegir la opción
donde quiere compartirlo y el resto del proceso ya se llevará a cabo en la propia red
social.
Esta sección ha sido muy sencilla de implementar ya que sigue la misma estructura que
la consulta de los datos de un documento pero sobre la tabla de comentarios. El proceso
lee el código del documento abierto y carga sobre la lista todos los comentarios cuyo
identificador de documento sea igual al que se está visualizando.
Una vez hecho esto el usuario puede dejar un comentario mediante el formulario que se
muestra al final de esta sección. Este formulario es un único campo de texto que el
usuario deberá rellenar antes de pulsar en “Comentar” o el sistema le indicará que debe
introducir un comentario.
Cuando se pulsa en comentar, se ejecuta otro método php que hace una consulta de
insert sobre la tabla “comentarios” y añade el comentario junto con el código del
documento y el código del usuario que lo ha hecho.
69
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Este Google Map ha sido creado mediante el acceso a la aplicación de navegador. Tan
sólo se ha tenido que buscar cada biblioteca en Google Maps y pulsar en el botón
situado en la zona inferior derecha de compartir o insertar mapa.
En este caso debemos clicar sobre “insertar mapa” y copiar la línea de código html que
generá Google Maps automáticamente. Esta línea se guarda en la base de datos para
cada biblioteca y luego solo se tiene que añadir por completo en la aplicación al leer la
información de cada biblioteca y se mostrará un mapa dinámico mostrando la
ubicación de la biblioteca.
70
5.3.7 Contacto
Para comenzar la sección consta de 4 campos de texto que componen el formulario que
compondrá el mensaje que se enviará a los administradores. Situado más abajo se
encuentra el botón que da funcionalidad a esta página.
Una vez se pulsa el botón se accede al método php que tramita los datos y envía el
email. En este paso se podían seguir diferentes opciones. La más sencilla era utilizar la
ya creada por javascript que permite hacer uso de Microsoft Outlook. Esta opción se
descartó, ya que el uso de Outlook en dispositivos móviles no está muy expandido
debido a que Google incluye Gmail en todos los dispositivos de Android como gestor
principal de correo.
Es aquí donde entra en juego el php puro. A través de la siguiente función se consigue
enviar un email.
$to = "administrator@[Link]";
$subject = $asunto;
$message = $correo;
$headers = 'From: ' .$nombre . "\r\n" .
'Reply-To: ' .$email . "\r\n" .
'X-Mailer: PHP/' . phpversion();
Las variables $asunto, $correo, $nombre y $email se crean a partir de los datos
introducidos por el usuario en los campos del formulario de la sección contacto. Este
crea una cadena de texto a partir de estos datos y los envía a través del método mail que
devuelve una variable booleana en función de si se ha podido enviar o no. Así en
función de esta variable podemos indicarle al usuario si su email ha sido enviado
correctamente o no.
71
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
6. Pruebas
La fase de pruebas, llevada a cabo conjuntamente con el desarrollo de todas las
funcionalidades del proyecto, es una parte muy importante. Con esta fase nos
aseguramos que todas las funcionalidades funcionan correctamente en tiempo de
desarrollo ya que las se iban ejecutando cada vez que se completaba una funcionalidad.
Esto además permite ver vulnerabilidades de la aplicación y posibles mejoras leves.
Debido a esto ahora se mostrarán las pruebas realizadas para testear cada caso de uso y
junto a ella el resultado de las mismas.
72
6.2. RESERVAR DOCUMENTO
73
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
6.9. CONTACTO
74
7. Conclusiones
Este capítulo contiene revisiones y opiniones sobre todo el trabajo realizado.
Primero se realizará una revisión de los objetivos iniciales marcados, seguida de las
desviaciones y problemas que se han producido durante el desarrollo de la aplicación
con respecto a lo planificado inicialmente. Finalmente se concluirá el contenido
principal de esta memoria con una valoración personal y algunas posibles mejoras del
sistema.
Es importante ver si se han cumplido con los objetivos iniciales del proyecto, una vez
acabado el desarrollo, por lo que se volverán a nombrar cada uno de ellos junto con una
breve explicación de los resultados obtenidos.
• Inicio de sesión para cada uno de los usuarios, de forma que se distingan los
distintos usuarios y así ofrecer distintas funcionalidades en función de ellos.
• Gestión de los documentos del usuario mediante una interfaz que resuma el
estado de sus reservas o peticiones.
• Sistema que gestione de manera coherente las reservas de documento, así como
la descarga de los documentos online y opiniones de los usuarios.
75
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
• La aplicación debe tener una interfaz simple e intuitiva orientada a las pantallas
móviles, además de mostrar mensajes de error al usuario.
Como revisión final se puede asegurar que se ha cumplido con todos los objetivos
propuestos.
En el análisis del proyecto se realizó una estimación de las tecnologías a utilizar. Debido
a que no se tenía mucha experiencia en algunas o simplemente eran desconocidas, se
han encontrado algunos problemas que han alargado el tiempo estimado del proyecto.
76
7.2.1 Uso de PHP
Antes de empezar el proyecto no se tenía experiencia previa ninguna con PHP. Esto
conllevo que a la hora de desarrollar los primeros métodos como el login, o algunas
consultas para mostrar el listado de documentos se perdiera mucho tiempo.
Debido a esto se consultó con otras personas como poder hacer este tipo de consultas y
al final se optó por la opción de crear un string en formato JSON manualmente en el
fichero PHP. De esta forma funciona correctamente y así justificamos la elección de una
aplicación web, ya que debido a la gran comunidad de usuarios que conoce todos estos
lenguajes nos resulta fácil encontrar una solución como se preveía antes de comenzar el
proyecto.
Para evitar todos estos problemas y pérdidas de tiempo se decidió contratar un dominio
como el que ofrecía [Link]. Además como ya se ha explicado antes, esto nos ofrecía
multitud de ventajas y ya venía configurado para subir el index al servidor y arrancar la
aplicación.
De esta forma se ahorró tiempo y trabajo, que luego vino bien para depurar mejor el
código.
La forma de mantener una “sesión” de usuarios fue uno de los principales problemas
desde el principio. Como también se ha comentado antes habían múltiples opciones y la
más fácil era la de utilizar PHP SESSION.
Esta opción se descartó pronto debido al gran desconocimiento que se tenía sobre PHP
y de cómo integrarlo en HTML. Entonces se contempló la opción de pasar el código de
usuario mediante la barra de direcciones para así poder leerlo en cada página y poder
mantener una especie de sesión.
77
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Como después haría falta pasar más códigos como el de documentos a la hora de ver
información de un documento está opción se estimó como la más indicada. Así no solo
podríamos mantener la información de los usuarios, si no que podríamos mantener
información de documentos, bibliotecas…
El envío de emails parecía algo muy sencillo en la planificación ya que se pensaba que
ya habría una función en jQuery predefinida para esto. La sorpresa surgió cuando la
única función programada en las librerías de jQuery necesitaba que Microsoft Outlook
estuviera instalado en el dispositivo, ya que la función preparaba el correo pero no lo
enviaba sino que lo abría en Outlook para que el usuario pulsara en enviar.
Esta opción no parecía correcta ya que en dispositivos Android se suele utilizar el gestor
de correos Gmail. Así que tocó investigar en otra forma de enviar correos y tras buscar
en la red y probar distintos códigos finalmente se encontró un método php capaz de
enviar un correo electrónico en función de los parámetros que se le pasaran haciendo
uso de la función mail de php.
Una solución sencilla y poco extensa en código pero que costó de entender debido a que
se le pasaban algunas variables mediante GET y otras mediante POST y no funcionaba
correctamente, por lo que se le pasaron todas mediante GET y funcionó la prueba.
7.3. MEJORAS
Todos los puntos descritos no se han podido llevar a cabo por una limitación clara
como el tiempo. Está claro que una aplicación nunca es perfecta en su primera versión
y siempre están en continua actualización para ofrecer al usuario más funcionalidades y
corregir fallos. Por eso se eligió una aplicación web, debido a su facilidad para instaurar
las actualizaciones del sistema de forma transparente al usuario.
• Mejoras de seguridad mediante el paso de parámetros por url. Cifrar los datos
antes de escribirlos en la url para evitar que los usuarios sepan datos
confidenciales y no se pueda intentar entrar a la aplicación de forma
fraudulenta.
78
• Añadir un módulo para los auxiliares de bibliotecas. Como se estudió en el
análisis de stakeholders los auxiliares son los que mantendrán el sistema
actualizado, así que sería deseable programar un módulo para que les resulte
mucho más sencillo gestionar la aplicación sin tener que entrar al phpMyAdmin
y modificar la base de datos en lenguaje SQL.
7.4. VALORACIÓN
La Casiteka ha sido una experiencia increíble que ha aumentado en gran cantidad mis
conocimientos sobre los distintos tipos de aplicaciones para dispositivos móviles, asi
como las tecnologías que permiten implementarlas.
79
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
Finalmente para concluir me gustaría añadir que me siento muy orgulloso del trabajo
realizado y de cómo lo he realizado. Está claro que si hubiera sabido mucho más sobre
los lenguajes y técnicas de desarrollo se podría haber conseguido una aplicación mucho
más elaborada, pero mi objetivo ahora y siempre será aprender y esta aplicación es uno
de los primeros pasos y de los más importantes en el resto de mi vida laboral.
80
8. Bibliografía
En este capítulo se recogen las distintas fuentes y referencias que han servido de apoyo
para desarrollar el proyecto. Dividiremos la bibliografía dividida en dos partes. La
primera está compuesta por la bibliografía referenciada a lo largo de la memoria y la
segunda es la que hace referencia a material utilizado en general pero no de forma
específica en algún punto.
[11] OpenGL
[Link]
81
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
[3] Mark Pilgrim (O’Reily & Google Press 2010) HTML5 Up and Running
[4] Raymond Camdem & Andy Matthews (Packt Publishing 2012) jQuery
Mobile Web Development Essentials
82
[6] Robin Nixon (O’Reily 2009) Learning PHP, MySQL and JavaScript
83
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
9. Apéndice
9.1 Descripción BBDD
84
necesitará el CODU, referente al usuario, el tipo de penalización y las fechas de
inicio y fin. Además se establece un Código que identifica cada penalización de
forma única (CODZ).
Finalmente para gestionar las peticiones que realicen los profesores y/o
auxiliares se necesita otra tabla en la que se almacene cada petición. Para ello se
necesitan el CODU, referente al usuario que realiza la petición, el título, el autor,
año de publicación y editorial del libro solicitado. También será necesario un
campo estado en el que se podrá comprobar si está pendiente de resolución la
petición o ha sido aceptada o no. Cada petición tendrá un código único (CODT).
85
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
86
N Columna Tipo Anchu Escal Restricción
ra a
1 CODD INT 9 PRIMARY KEY
DOCUMENT AUTOINCREME
OS NT
2 TITULO VARCHAR 30 NOT NULL
3 AUTOR VARCHAR 50 NOT NULL
4 ANO INT 4 NOT NULL
5 EDITORIAL VARCHAR 15
6 PAGINAS INT 5
7 TIPO VARCHAR 15
8 LENGUA VARCHAR 15
9 ISBN CHAR 13
10 SINOPSIS VARCHAR 255
11 PUNTOS INT 10
12 VOTOS INT 10
13 VALORACION DOUBLE 2 2
14 IMAGEN VARCHAR 255
15 ONLINE VARCHAR 255
16 FECHAINSERT DATE NOT NULL
Tabla 2. Tabla Documentos.
87
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
88
9.1.5.- CREACIÓN DE TABLAS
[Link].- USUARIO
[Link].- DOCUMENTOS
[Link].- COMENTARIOS
89
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
[Link].- PRESTAMOS
[Link].- PETICIONES
[Link].- BIBLIOTECAS
90
9.1.6.- INSERCCIÓN DE LOS DATOS
[Link].- USUARIO
[Link].- DOCUMENTOS
91
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
INSERT
INTO `documentos` ( `titulo` , `autor` , `ano` , `editorial` , `p
aginas` , `tipo` , `lengua` , `isbn` , `sinopsis` , `puntos` , `vo
tos` , `valoracion` , `imagen` , `online` , `iduser` , `fechaInser
t` )
VALUES ('Dont you worry child', 'Swedish House Mafia', '2012',
'EMI', 0, 'Audio', 'Inglés', '0', 'Best song of 2012', 10, 1, 10,
'images/documentos/[Link]','[Link]
[Link]/u/49796845/Swedish%20House%20Mafia%20%E2%80%93%20Don%27t%2
0You%20Worry%20Child%20feat.%20John%20Martin%20%28Pete%20Tong%20Ra
dio%20Exclusive%2010.08.12%29%20-
%20officialswedishhousemafia.mp3', '2015/05/02'
);
INSERT
INTO`documentos` (`codd` ,`titulo` ,`autor` ,`ano` ,`editorial` ,
`paginas`,`tipo` ,`lengua` ,`isbn` ,`sinopsis` ,`puntos` ,`votos`
,`valoracion` ,`imagen` ,`online` ,`iduser` ,`fechaInsert`)
VALUES (NULL , 'El código da Vinci', 'Dan Brown' , '2013'
, 'DoubleDay', '300' , 'Libro' ,'Castellano' , '84-95618-60-5'
, NULL, '7' , '3', '7' , NULL , NULL , '2015-05-12');
INSERT
INTO `casiteka_com`.`documentos` (`codd` ,`titulo` ,`autor` ,`ano
` ,`editorial` ,`paginas` ,`tipo` ,`lengua` ,`isbn` ,`sinopsis` ,`
puntos` ,`votos` ,`valoracion` ,`imagen` ,`online` ,`iduser` ,`fec
haInsert`) VALUES (NULL , 'Los pilares de la Tierra', 'Ken
Follet', '1989', 'Macmillan ', '1300', 'Libro', 'Castellano', '0-
333-51983-3', NULL , '9' , '2' ,'9', NULL , NULL , '2015-05-12');
[Link].- COMENTARIOS
92
[Link].- PRESTAMOS
[Link].- BIBLIOTECAS
93
Desarrollo de aplicaciones web para dispositivos móviles con JQuery mobile
94
95