# TunningEpub
## Descripción general

El principal objetivo de esta actividad encuadrada dentro del proyecto de aprendizaje Tecnologías multimedia e interacción es el desarrollo de una extensión del navegador Google Chrome que permita leer contenido en formato E-PUB y añadir funcionalidades a dicha extensión para la edición de los ficheros E-PUB. El método que se utilizará será incremental e iterativo según el estudio realizado por sus miembros para diferenciarse de los ya existentes. La funcionalidad básica consistirá en un lector de E-PUB que permita añadir playlists de música para acompañar la lectura de texto, la integración de un diccionario para conocer la definición de las palabras desconocidas por el lector y la posibilidad de generar anotaciones en los ficheros. A partir de esa estructura básica se estudiará la extensión de su funcionalidad.

## Objetivos específicos

* Adición de playlists para acompañar la lectura.
* Integración de diccionario en el editor para consultar palabras desconocidas.
* Generación de anotaciones en los ficheros.
* Lectura de contenido.
* Escuchar música.
* Cambio estilos.
* Cambio fuentes.
* Adición imágenes locales.
* Comunicación con redes sociales.

## Descripción del proceso de desarrollo

El proyecto se desarrollo en 5 iteraciones:
Iteración 1: En esta primera iteración se focalizaron las actividades en definir cuales eran las funcionalidades de la aplicación, se realizaron comparaciones con otras similares para buscar una diferenciación con el fín de aportar valor al desarrollo final. También se buscó identificar cuales eran las herramientas y tecnologías más adecuadas para el tipo de proyecto.
Al final de esta iteración de decidió realizar una App de Google Chrome como plataforma inicial sobre la cual se realizará el desarrollo.
Iteración 2: Una vez identificado los objetivos y las funcionalidades a realizar el equipo se enfocó en realizar un prototipo básico de la interfaz sobre el cual se fueron añadiendo funcionalidades básicas como mostrar la lista de Epub, mostrar las portadas de los libros, Cargar una carpeta del sistema con Epub. En esta iteración de definieron las clases y los modelos de datos necesarios para la implementación, así mismo se añadieron librerías adicionales como Jquery y JQuery Mobile para facilitar la construcción y estructuración de la interfaz.
Iteración 3: Ya con un prototipo que sirviese de cascarón para el resto de funcionalidades se procedió a analizar el contenido de los ficheros Epub y a crear una primera versión de la APP que realizaría una lectura real de ficheros Epub. Al mismo tiempo se implementaron características para poder añadir notas y diccionario, en este caso un diccionario en inglés.
Iteración 4: En esta iteración se percibieron errores de formato al momento de la lectura ocacionados por la diferencia interna que puede existir entre EPUBs, por lo que se decidió atacar el problema utilizando una librería que trate los ficheros Epub por igual ofreciendo una salida estandar. (https://github.com/futurepress/epub.js/) Sin embargo, la libería necesitó adaptación para poder funcionar correctamente como una Chrome APP.
Iteración 5: En esta última iteración se terminó de pulir detalles de implementación y se añadió la funcionalidad de poder reproducir ficheros MP3. Surgió otro problema que se escapa al alcanze del proyecto y es los cambios de políticas de seguridad de Google Chrome, esto ocacionó que la librería JQuery Mobile utilizada en la implementación de la interfaz sea incompatible y por lo tanto no se pueda incluir la aplicación dentro de google chrome como una APP.

## Tecnologías utilizadas

* JavaScript.
* JQuery
* JQueryMobile.
* HTML/CSS
* ePUB.
* Librería epub.js
* Librería soundManager2.js
* Diferentes formatos de audio.
* Diferentes formatos de imágenes.

## Código

El desarrollo del proyecto ha sido llevado a cabo en un repositorio abierto de GitHub contemplado bajo la licencia GPL. En este repositorio hemos trabajado tanto en etapas de desarrollo como de producción.
* TunningEPUB

## Resultados

* Se ha creado una extensión de Google Chrome para la lectura de contenidos EPUB.
* Dicha extensión permite:
** Lectura de contenido EPUB.
** Reproducción de música.
** Modificación tamaño de letra.
** Modificación fuente de letra.
** Creación de notas sobre libros.
** Búsqueda en diccionario online.

## Conclusiones

* JQueryMobile es una herramienta muy potente para el desarrollo de aplicaciones para diferentes formatos.
* Sería conveniente estandarizar el formato ePUB. Actualmente, al no ser así, es muy complicado el desarrollo de herramientas que lean todos los contenidos de este formato.
* La diversidad de lectores de ePUBS se debe a que no hay un lector que cubra a la vez las diferentes necesidades según el uso. Se atisba en este mercado un gran potencial para posibles desarrollos.

## Líneas futuras

* Inclusión de API que permita conectar con Spotify y otros reproductores de música online que tienen una gran cantidad de usuarios actualmente.
* Inclusión de funcionalidades específicas para determinadas temáticas.
* Inclusión de imágenes personales de cada usuario al contenido EPUB.
* Inclusión de plugin redes sociales.
* Desarrollo con gwt para utilización en plataformas de google.