Git Product home page Git Product logo

curso_flutter_cinemapedia's Introduction

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

curso_flutter_cinemapedia's People

Contributors

dhorno avatar dhornop avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.