Aplicación Android y Servicios REST para Compartir Libros Electrónicos Máster Universitario en Desarrollo Software para Dispositivos Móviles Trabajo Fin de Máster Autor: Javier Ortega Bastida Tutor: Antonio Javier Gallego Sánchez Junio 2017 Página 1 Página 2 Agradecimientos Un agradecimiento a mi tutor por su ayuda. Página 3 Índice de contenido 1. Justificación y Objetivos....................................................................................................11 2. Introducción.........................................................................................................................12 2.1. Estructura de la Memoria......................................................................................................15 3. Estado del Arte.....................................................................................................................16 3.1. Marco Teórico...........................................................................................................................16 3.1.1. Diseño Responsive...........................................................................................................................16 3.2.1. Servicios Web.....................................................................................................................................17 3.1.3. Tipos de Aplicaciones Móviles.....................................................................................................19 3.2. Proyectos Técnicos..................................................................................................................21 3.2.1. YouTube...............................................................................................................................................21 3.2.2. Bubok.....................................................................................................................................................22 3.2.3. GitBook.................................................................................................................................................24 3.3. Estudio de la Competencia....................................................................................................25 3.3.1. En la Web.............................................................................................................................................25 3.3.2. Mercado de las Apps........................................................................................................................26 4. Objetivos................................................................................................................................27 5. Metodología..........................................................................................................................28 5.1. Diseño.........................................................................................................................................28 5.2. UML..............................................................................................................................................32 5.3. Tecnologías................................................................................................................................33 5.3.1. Laravel...................................................................................................................................................33 5.3.2. Servidor XAMPP................................................................................................................................38 5.3.3. HTML5, CSS y Boostrap..................................................................................................................40 5.3.4. IDE..........................................................................................................................................................41 5.3.5. Control de Versiones.......................................................................................................................41 5.4. Rutas de YouBook....................................................................................................................42 5.5. API RESTFul...............................................................................................................................43 5.6. Arquitectura..............................................................................................................................45 6. Desarrollo..............................................................................................................................46 Página 4 6.1. Implementación de la Aplicación Web..............................................................................46 6.1.1. Directorios de Laravel....................................................................................................................47 6.1.2. Definir las rutas.................................................................................................................................48 6.1.3. Definir el Layout Principal............................................................................................................49 6.1.4. Vista Principal: Listado de Libros..............................................................................................49 6.1.5. Funcionalidad de la Barra de Navegación...............................................................................53 6.1.6. Subir un Libro....................................................................................................................................58 6.1.7. Vista Información del Libro..........................................................................................................63 6.1.8. Editar y Eliminar un Libro............................................................................................................69 6.1.9. Vista Perfil...........................................................................................................................................71 6.1.10. Editar y Eliminar Usuario...........................................................................................................75 6.1.11. Definir la API RESTFul.................................................................................................................78 6.2. Implementación de la Aplicación Android......................................................................78 6.2.1. Vista Principal....................................................................................................................................80 Carga Lazy de Imágenes.............................................................................................................................82 6.2.2. Toolbar..................................................................................................................................................83 6.2.3. Vista Información Libro.................................................................................................................86 6.2.4. Vista Perfil...........................................................................................................................................91 6.2.5. Añadir un Libro.................................................................................................................................92 6.2.6. Vistas de Edición en la App...........................................................................................................97 7. Conclusiones y Trabajo Futuro....................................................................................100 8. Bibliografía ........................................................................................................................102 Página 5 Índice de Figuras Figura 1.1. Piratería en los Libros......................................................................................................11 Figura 2.1. Icono YouBook....................................................................................................................12 Figura 2.2. YouBook.................................................................................................................................13 Figura 2.3. App YouBook.......................................................................................................................14 Figura 3.1. Diseño Responsive............................................................................................................17 Figura 3.2. Cuerpo de una Petición REST........................................................................................18 Figura 3.3. Aplicaciones nativas: Android e iOS...........................................................................19 Figura 3.4. Aplicaciones web: Sencha y jQuery............................................................................20 Figura 3.5. Aplicaciones híbridas: Ionic y PhoneGap.................................................................20 Figura 3.6. YouTube.................................................................................................................................21 Figura 3.7. Listas en YouTube..............................................................................................................22 Figura 3.8. Página de Bubok.................................................................................................................23 Figura 3.9. Calculadora de Bubok......................................................................................................23 Figura 3.10. Precio de venta en Bubok............................................................................................23 Figura 3.11. GitBook................................................................................................................................24 Figura 3.12. Edición de Documentos en GitBook.........................................................................24 Figura 5.1. Diagrama de Flujo..............................................................................................................28 Figura 5.2. Vista Principal.....................................................................................................................29 Figura 5.3. Acciones Básicas sin necesidad de Identificarse...................................................30 Figura 5.4. Comentar y dar Me gusta a un libro...........................................................................30 Figura 5.5. Subir un libro.......................................................................................................................31 Figura 5.6. Editar libro............................................................................................................................31 Figura 5.7. Diagrama UML de la BD...................................................................................................32 Figura 5.8. Icono Laravel.......................................................................................................................33 Figura 5.9. Ejemplo de una Migración..............................................................................................34 Figura 5.10. Ejemplo de Comando de Artisan...............................................................................35 Figura 5.11. Patrón MVC........................................................................................................................36 Figura 5.12. Esquema de Funcionamiento de Larael.................................................................37 Figura 5.13. Icono de Composer.........................................................................................................37 Figura 5.14. XAMPP.................................................................................................................................38 Página 6 Figura 5.15. Panel de Control de XAMPP........................................................................................38 Figura 5.16. Panel de Control de PHPMyAdmin...........................................................................39 Figura 5.17. Visualización de Tablas y su contenido..................................................................39 Figura 5.18. HTML, CSS y Boostrap...................................................................................................40 Figura 5.19. Android Studio.................................................................................................................41 Figura 5.20. BitBucket............................................................................................................................41 Figura 5.21. Arquitectura YouBook...................................................................................................45 Figura 6.1. Página por defecto de Laravel......................................................................................46 Figura 6.2. Barra de Navegación de YouBook...............................................................................49 Figura 6.3. Vista Principal.....................................................................................................................50 Figura 6.4. Vista Principal en Tamaño Mediano..........................................................................51 Figura 6.5. Vista Principal en Tamaño Pequeño..........................................................................51 Figura 6.6. Vista Principal en Tamaño Extra Pequeño..............................................................52 Figura 6.7. Paginación.............................................................................................................................53 Figura 6.8. Página Principal..................................................................................................................53 Figura 6.9. Barra de Búsqueda............................................................................................................54 Figura 6.10. Resultado de la Búsqueda............................................................................................54 Figura 6.11. Donaciones Vía PayPal..................................................................................................55 Figura 6.12. Vista del Login..................................................................................................................55 Figura 6.13. Correo no Registrado.....................................................................................................56 Figura 6.14. Registrar Usuario............................................................................................................56 Figura 6.15. Sin Perfil..............................................................................................................................57 Figura 6.16. Barra de Navegación tras Iniciar Sesión................................................................57 Figura 6.17. Vista Subir Libro..............................................................................................................58 Figura 6.18. Errores de Validación....................................................................................................59 Figura 6.19. Formulario Rellenando.................................................................................................59 Figura 6.20. Directorio con las Portadas.........................................................................................60 Figura 6.21. Directorio con los PDFs................................................................................................61 Figura 6.22. Código Crear Libro..........................................................................................................61 Figura 6.23. Libro Añadido Correctamente...................................................................................62 Figura 6.24. Vista Información Libro................................................................................................63 Figura 6.25. Leer un Libro Online......................................................................................................64 Página 7 Figura 6.26. Leer un Cómic Online.....................................................................................................64 Figura 6.27. Dar Like a un Libro.........................................................................................................65 Figura 6.28. Libro Añadido a Favoritos...........................................................................................65 Figura 6.29. Código para el Botón de Like......................................................................................66 Figura 6.30. Comentarios de un Libro..............................................................................................67 Figura 6.31. Comentar un Libro..........................................................................................................67 Figura 6.32. Visualizando un Libro Subido por Nosotros........................................................68 Figura 6.33. Vista Edición......................................................................................................................69 Figura 6.34. Excepción al Editar el Libro de otro Usuario.......................................................70 Figura 6.35. Vista Perfil Completa.....................................................................................................71 Figura 6.36. Pago PayPal a un Usuario.............................................................................................72 Figura 6.37. Libros Subidos..................................................................................................................72 Figura 6.38. Pseudocódigo de un Carousel Dinámico................................................................73 Figura 6.39. Libros Favoritos...............................................................................................................74 Figura 6.40. Carousel Responsive......................................................................................................74 Figura 6.41. Detección del Propietario de la Cuenta..................................................................75 Figura 6.42. Vista Editar Perfil............................................................................................................76 Figura 6.43. Excepción al Editar el Perfil de otro Usuario.......................................................76 Figura 6.44. Directorio Fotos de Perfil.............................................................................................77 Figura 6.45. Perfil Editado Correctamente.....................................................................................77 Figura 6.46. Editor de Temas...............................................................................................................79 Figura 6.47. Vista Principal App.........................................................................................................80 Figura 6.48. Alerta de Android............................................................................................................81 Figura 6.49. Parsing de JSON................................................................................................................82 Figura 6.50. Resultado de la Búsqueda App..................................................................................83 Figura 6.51. Toolbar sin Identificase................................................................................................84 Figura 6.52. Diálogo para Iniciar Sesión..........................................................................................84 Figura 6.53. Diálogo para Registrarse..............................................................................................85 Figura 6.54. Toolbar tras Identificase..............................................................................................85 Figura 6.55. Vista Información App..................................................................................................86 Figura 6.56. Leer un Libro en la App................................................................................................87 Figura 6.57. Leer un Cómic en la App...............................................................................................88 Página 8 Figura 6.58. Documentos Pesados.....................................................................................................88 Figura 6.59. Leyendo un Documento Pesado................................................................................89 Figura 6.60. Sistema de Comentarios App......................................................................................90 Figura 6.61. Vista Perfil App.................................................................................................................91 Figura 6.62. Vista Añadir Libro App..................................................................................................92 Figura 6.63. Intent para cargar una Imagen..................................................................................93 Figura 6.64. Código para obtener el contenido de un Proveedor.........................................94 Figura 6.65. Archivos Extraídos del Proveedor de Contenidos.............................................95 Figura 6.66. Código de envío de Ficheros desde Android a un Servidor............................96 Figura 6.67. Libro Creado en la App..................................................................................................96 Figura 6.68. Dispositivos que 3jecutan la API 19........................................................................97 Figura 6.69. Editar un Libro en la App.............................................................................................98 Figura 6.70. Editar Perfil en la App...................................................................................................98 Figura 7.1. Trabajo Futuro: Modelos 3D.......................................................................................101 F Página 9 Índice de Tablas Tabla 5.1. Rutas de YouBook................................................................................................................42 Tabla 5.2. API RESTFul...........................................................................................................................43 Página 10
Description: