Skip to content

Releases: IESSanVicente/AppDummy

v7. Ejemplo práctico Tema 5

Choose a tag to compare

  • Se añaden las dependencias necesarias para realizar el tema 5 (Retrofit2).
  • Se añaden los DTOs LibroDTO y BusquedaResponseDto para mapear la respuesta de la API REST.
  • Se crea el objeto OpenLibrary para gestionar las URLs de las carátulas y el resto de constantes de la API.
  • Se crea el mappeador LibroMapper para convertir los DTOs en entidades de dominio.
  • Se añade un test unitario para el mappeador LibroMapperTest.
  • Se crea la interfaz OpenLibraryApiService para definir los endpoints de la API REST.
  • Se crea el objeto RetrofitClient para configurar Retrofit2 y OkHttpClient.
  • Se crea la clase RemoteDataSource para gestionar la obtención de datos desde la API REST.
  • Se modifica la clase RepositorioLibros para que utilice el RemoteDataSource y la base de datos ROOM para obtener los libros.
  • Se configura Coil para que utilice OkHttpClient con Retrofit2 en la carga de imágenes.
  • Se añade el composable CaratulaLibro para mostrar la carátula del libro en la pantalla de detalle.
  • Nueva ruta de navegación para la pantalla que permite añadir libros.
  • Se crea en utils el objeto Isbn para validar el ISBN de los libros.
  • Se añade la pantalla de añadir libro con validación de ISBN y control de errores.

v6. Ejemplo práctico Tema 4

Choose a tag to compare

  • Se añaden las dependencias necesarias para realizar el tema 4 (ROOM).
  • Modificación de la clase Libro para que sea una entidad de ROOM.
  • Se crea la interfaz LibrosDao para definir las operaciones de acceso a la base de datos.
  • Se crea la clase AppDatabase para definir la base de datos ROOM y su configuración.
  • Se añade la clase Converters para definir los conversores de tipos de datos personalizados.
  • Se añade la persistencia de datos utilizando ROOM para almacenar los libros favoritos y leídos.
  • Se modifica la clase RepositorioLibros para que utilice ROOM en lugar de datos simulados.
  • Se añade la clase AppDummyApplication para inicializar la base de datos y el repositorio.
  • Se modifica la clase LibrosViewModel para que utilice el repositorio de ROOM.

v5. Ejemplo práctico Tema 3

Choose a tag to compare

  • Se añaden las dependencias necesarias para realizar el bloque 3 (Navegación).
  • Se añade la navegación entre pantallas y la pantalla de detalle de libro.
  • Se crea navegación entre pantallas utilizando NavigationBar utilizando NavHost y NavController.

v4. Ejemplo práctico Tema 2

Choose a tag to compare

  • Se añaden las dependencias necesarias para realizar el bloque 2 (ViewModel, Lifecycle, Corrutinas y Testing).
  • Se añade la clase LibrosViewModel para gestionar el estado de la pantalla de listado de libros.
  • Se crea la clase Libro para representar los datos de cada libro, sustituyendo la versión anterior, LibroUI.
  • Se crea la clase LibrosUiState para representar los posibles estados de la pantalla de listado de libros.
  • Se crea la clase RepositorioLibros para simular la obtención de datos de libros desde un repositorio.
  • Se modifica la pantalla de listado de libros para que utilice el ViewModel y el estado de la pantalla se gestione a través de LibrosUiState.
  • Se añade un evento de un solo disparo para mostrar un Snackbar al marcar favoritos y libros leídos.
  • Se añade la clase LibrosViewModelTest para realizar pruebas unitarias del ViewModel.
  • Modificación de la clase MainActivity para lanzar la pantalla listado, pero se mantiene el método preview para lanzar directamente la pantalla listado.

v3. Ejemplo práctico Tema 1D

Choose a tag to compare

  • Se añade la pantalla de gestión de permisos en la carpeta screens.
  • Se añade el permiso de acceso a la cámara y características hardware en el archivo AndroidManifest.xml.

v2. Ejemplo práctico Tema 1C

Choose a tag to compare

  • Se añade la dependencia Coil (io.coil-kt.coil3:coil-compose:3.5.0) para la carga de imágenes.
  • Se añade la dependencia Coil Network OkHttp (io.coil-kt.coil3:coil-network-okhttp:3.5.0) para la carga de imágenes remotas.
  • Se añade el permiso de acceso a Internet en el archivo AndroidManifest.xml.
  • Se añade imagen nocover.jpg para libros sin portada en la carpeta res/drawable.
  • Se mueve la pantalla de bienvenida a la carpeta screens.

v1. Ejemplo práctico Tema 1B

Choose a tag to compare

  • Creación de la pantalla de bienvenida y se añade dependencia de Material Icons Extended.

v0. Creación inicial del proyecto AppDummy

Choose a tag to compare

  • Creación inicial del proyecto AppDummy en Android Studio con corrección de versiones de librerías para su correcto funcionamiento con API 36.