Skip to content

App desarrollada durante el curso de Flutter de Fernando Herrera

Notifications You must be signed in to change notification settings

dhornop/curso_flutter_cinemapedia

Repository files navigation

Cinemapedia

App desarrollada durante el curso de Flutter de Fernando Herrera

Desarrollo

  1. Copiar el .env.template y renombrarlo a .env

  2. Cambiar las variables de entorno (The MovieDB)

  3. Cambios en la entidad, hay que ejecutar el comando:

    flutter pub run build_runner build

Base de datos Isar

Instalación y configuración

  1. Instalar las dependencias isar, isar_flutter_libs y path_provider:

    flutter pub add isar isar_flutter_libs path_provider

  2. Instalar las dependencias de desarrollo isar_generator y build_runner:

    flutter pub add -d isar_generator build_runner

    Todas las dependencias de Isar (isar, isar_flutter_libs e isar_generator) deben tener la misma versión.

    https://pub.dev/packages/isar

    https://pub.dev/packages/isar_flutter_libs

    https://pub.dev/packages/isar_generator

  3. Añadir la anotación @collection: Asocia la clase de la entidad con la clase de base de datos.

  4. Añadir el identificador único para la base de datos:

    Id? isarId;
    
  5. Añadir el part con la nomenclatura nombreClase.g.dart. Varios ejemplos:

    Movie > part "movie.g.dart"

    Cliente > part "cliente.g.dart"

    Factura > part "factura.g.dart"

    Al añadirlo, se mostrará un error, es normal.

  6. Ejecutar el comando generador de base de datos:

    flutter pub run build_runner build

Estructura de ejemplo:

- domain
    - datasources
        - local_storage_datasource.dart
    - repositories
        - local_storage_repository.dart
- infrastructure
    - datasources
        - isar_datasource.dart                  (1)
    - repositories
        - local_storage_repository_impl.dart    (2)
- presentation
    - providers > storage
        - local_storage_provider.dart           (Provider genérico con los métodos definidos que une 1 con 2)
        - favorite_movies_provider.dart         (Provider para el listado de películas favoritas)

    + screens > movies
        + movie_screen.dart                     (Botón "Marcar favorito" > Buscar "Botón para añadir/quitar de favoritos")

    + views > movies
        + favorites_view.dart                   (Listado de películas favoritas)

Al ejecutar la aplicación desde Visual Studio Code e instanciar por primera vez la base de datos, en la ventana de "Consola de depuración" se nos mostrará un enlace para poder visualizar la base de datos.

Tipos diferentes de Providers (Riverpod)

Hay múltiples tipos de providers para diferentes casos de uso.

Con todos estos providers disponibles, a veces es difícil entender cuándo utilizar un tipo de provider sobre otro. Utiliza la tabla a continuación para elegir un provider que se adapte a lo que deseas proporcionar al árbol de widgets.

Tipo de Provider Función de creación de Provider Ejemplo de caso de uso
Provider Retorna cualquier tipo Una clase de servicio / propiedad calculada (lista filtrada)
StateProvider Retorna cualquier tipo Una condición de filtro / objeto de estado simple
FutureProvider Retorna un Future de cualquier tipo Un resultado de una llamada a una API
StreamProvider Retorna un Stream de cualquier tipo Un stream de los resultados de una API
StateNotifierProvider Retorna una subclase de StateNotifier Un objeto de estado complejo que es inmutable excepto a través de una interfaz

About

App desarrollada durante el curso de Flutter de Fernando Herrera

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published