Skip to content

Informe de seguimiento de ASEE

Javier edited this page Nov 28, 2023 · 3 revisions

Revisión de la propuesta inicial.

Tras la revisión de la propuesta inicial, se analizaron y solventaron los aspectos a corregir de nuestra futura aplicación. Como aspectos a comentar, se decidió orientar la aplicación a gente de joven y mediana edad; tambíen a usuarios que tengan como hobbie las piezas Lego y no tanto para personas que vayan a usarla de forma profesional.

Además se revisaron las navegaciones entre distintas pantallas y se reemplateó la navegación en general, llegando a la conclusión de que una búsqueda separada por botones, centrada en una única actividad, sería lo más óptimo.

Decisiones tomadas.

Hasta el momento de la entrega condensamos las distintas decisiones que hemos tomado desde el inicio de la aplicación. En gran parte se ha mantenido la idea inicial del mock up; sin embargo, se han eliminado algunos elementos, y el filtrado se aplica a la pantalla de "Mi Inventario" proporcionando filtros genéricos, de búsqueda o ambos.

Los ajustes se han mantenido como en la versión original. Se ha reducido la información mostrada de "piezas" y "sets" para permitir un mayor espacio en la cantidad de estas en "Mi Inventario". Además, el botón "restar" solo restará hasta la cantidad 1, para eliminar una pieza se deberá usar el botón "eliminar".

La eliminación de los sets favoritos ahora se realiza desde el detalle del set, y se ha añadido el botón para poder compartir un set.

Implementación.

En este apartado vamos a comentar aspectos sobre la implementación de nuestro código, resumiendo las funcionalidades de nuestra aplicación para mayor facilidad de comprensión.

Para comenzar, la aplicación no cuenta con una implementación de la gestión de usuarios y no será necesario un inicio de sesión, puesto que está orientada a su uso de manera lúdica (y no necesita guardar datos personales); y se ha decidido aprovechar los recursos para realizar otras historias de usuario.

La aplicación se basa en la consulta y modificación de distintas piezas y sets de Lego, por lo que se han usado las siguientes herramientas para la consulta, visualización y navegación:

  • La navegación se realiza en su totalidad con "navGraph", permitiendo desplazarnos entre los distintos fragmentos de la app, todo esto contenida en una activity home "principal".
  • Para la visualización se ha optado por el uso de las RecyclerView para las listas de piezas y sets, tanto en la búsqueda como en nuestros favoritos o inventario. Mediante la "toolbar" podemos realizar las búsquedas y filtrados, además de contar con Chips y botones para filtrar distintas categorías o tipos de piezas.
  • La información de la aplicación es obtenida a través de la API de Rebrickable. En el caso en que añadamos una pieza al inventario o la cantidad de piezas sea mayor que 0, la información pasará a nuestra base de datos Room, a través de la cual también controlamos si un set es favorito o la cantidad de piezas que tenemos.

Como puntos mas complejos a comentar sobre el desarrollo, la implementación más complicada durante este proyecto ha sido la gestión de la API, pues debíamos realizar bastantes transformaciones para trabajar con esta y la carga de datos, por ejemplo: las piezas o sets dependen de la información como categorías y temas, por lo que si no tenemos esta información producía problemas en la aplicación; la vinculación de los datos y su visualización también dio ciertos problemas, debido a que algunas tareas se realizan en hilos distintos al principal o necesitan actualizar a este.

Vemos ahora los algunos puntos destacables de las distinas historias de usuario

  1. Buscar Pieza

    • El mayor problema de esta historia de usuario fue el mapeo de los tipos de datos desde la API hasta un tipo de dato con el que pudiesemos trabajar, además de que fuese compatible con la base de datos establecida, además para realizar correctamente la visualización se tuvo que recurrir a cambios de hilo de una manera forzada.
  2. Buscar Set

    • Al desarrollar previamente "Buscar Pieza" esta HU no resultó tan compleja y se realizó con mayor agilidad que la anterior, simplemente se tuvo que ajustar la barra de búsqueda para que consultase sets.
  3. Consultar sets favoritos

    • La consulta de sets favoritos permite ver los sets que se han buscado y al depender de consultas a la API su visualización se tuvo que recurrir a cambios de hilo de una manera forzada.
  4. Consultar sets favoritos (local)

    • La consulta de sets favoritos al no depender de consultas a la API la implementación de su visualización fue más sencilla de implementar que "Buscar Set"
  5. Guardar set en favoritos (local)

    • Una vez desarrollada la búsqueda y visualización de un set guardar en favorito no es más que añadirlo a la base de datos, la complejidad de este punto fue realizar un correcto binding para que la información se actualizase tanto en la vista de favoritos(local) como en la vista de la búsqueda(API).
  6. Eliminar set de favoritos (local)

    • Como el punto anterior, eliminar el set fue sencillo y ya se manejaba el binding por lo que fue sencillo de implementar.
  7. Cambiar tamaño de letra (Ajustes)

    • El punto más complejo de esta historia fue conseguir que la actualización del tamaño de letra se aplicara a todas las vistas.
  8. Cambiar a modo oscuro (Ajustes)

    • Cambiar el modo oscuro se basó en la creación de un nuevo tema y cambiar las preferencias para que pudiera activarse.
  9. Guardado de piezas individuales en “Mi inventario”

    • Similar al guardado de favoritos, al aumentar la cantidad se añadía la pieza a la BD, y de nuevo el punto más complejo fue la correcta vinculacion entre las pantallas de la búsqueda(API) e inventario(local) para que las cantidades fuesen las mismas.
  10. Consultar “Mi inventario”

    • La consulta del inventario consistió en el uso del recyclerView para cargar las distintas piezas de la BD con una cantidad mayor a 0, durante este punto se descubrió que solo se podrían añadir piezas cuyas categorías estuviesen previamente en la BD, por lo que al ejecutar la aplicación se almacenan todas las categorías de la API en la BD para que no haya confictos.
  11. Filtrado piezas en “Mi inventario”

    • Para este punto se usaron las chips de Google con algunos valores predefinidos para obtener una serie filtros por categorías, además se tuvo que readaptar para poder añadir un filtro mediante la barra de búsqueda y que ambos funcionaran simultaneamente.
  12. Modificación de piezas de “Mi inventario”

    • La modificación de piezas se basa en la modificación de la base de datos, de nuevo el punto más complicado fue la vinculación con la pantalla de búsqueda para que se mostrará la misma cantidad o, al eliminar la cantidad de la búsqueda pasara a 0.
  13. Eliminar piezas de “Mi inventario”

    • se decicidó que la eliminación de piezas se realizaría a través de un botón de papelera en vez de pulsar el botón "-" hasta reducir la cantidad a 0, una vez implementados los métodos anteriores este no tuvo mayor complejidad.
  14. **Compartir set **

    • Para compartir un set finalmente se optó por compartir el enlace del set de la página de Rebrickable a través de alguna aplicación de mensajería.