Creación de una aplicación Flash para consumir una API de película (TMDb) | Kleber Andrade | Octubre de 2020

Por ejemplo, habrá muchos cambios en la respuesta, eliminando métodos que no se utilizan y también corrigiendo tradiciones, como, por ejemplo, el uso de enumeradores de sustancias por Strings.

Clase MovieModel

Crie a classe (lib → modelos → movie_model.dart) para realizar un seguimiento de la información de la película.

Clase MovieResponseModel

Crie a classe (lib → modelos → movie_response_model.dart) para proteger información de páginas, videos de películas, videos de películas y modelos de películas.

Clase MovieDetailModel

Crie a classe (lib → modelos → movie_detail_model.dart) que guarda los detalles de la película.

Classe género de películas

Crie a classe (lib → modelos → movie_genre.dart) que mapea los géneros de esta película.

Classe ProductionCompanyModel

Crie a classe (lib → modelos → production_company_model.dart) que mapaia jako empresas que produziram o filmu.

Producción de clases País Modelo

Crie a classe (lib → modelos → production_country_model.dart) que mapaia jako cidades.

Clase habladaLanguageModel

Crie a classe (lib → modelos → spoken_language_model.dart) que mapaia jako linguas faladas.

El repositorio de patrones es uno de los patrones de proyecto utilizados y concebidos en el desarrollo del sistema. El aporte, que no contribuye al aislamiento del camión de acesso a dados (DAL) y del camión de negócio, se concibe más como una kamada de domínio.

El patrón de repositorio permite encapsular el acceso lógico a los datos, lo que implica el uso de la inyección de dependencia (DI) y proporciona el objeto visualmente orientado de las interacciones con el DAL.

Constantes de API

Cree una clase api (lib → core → api.dart), lo que requeriría contingencias constantes para acceder a la API de TMDb.

Un poco de valores diferentes kApiKey pela suva chave gerada na página de configuresções> API do TMDb.

Clase MovieError

Crie a classe (lib → errores → movie_error.dart) por lo que tenemos derecho a Excepciones personalizadas en nuestro proyecto.

Repositorio de películas de Classe

Cree una clase MovieRepository (lib → repositorios → movie_repository.dart) para conectarse a la API de TMDb utilizando dio Convertidor y responsable de archivo JSON para um objeto (modelo).

  • Toda la comunicación con los servicios (Banco de datos, API, Archivos, etc.) métodos ensamblados.
  • Traducido de import e import de erros, para isso, usamos try / catch;
  • Para finalizar, tenga cuidado con el uso de Be para devolver o corregir el objeto o uno;

Aprendiendo un poco mas HTTP (Protocolo de transferencia de hipertexto)

Verificación de estado HTTP Indicador de estado con enfoque HTTP Principalmente para verificar el contenido de êxito. Las respuestas se agrupan en cinco clases: respuestas informativas, respuestas bien establecidas, reducciones, errores del cliente y errores del servidor. Los códigos de estado se definen en ver 10 de RFC 2616

Lidiar con más REST (Transferencia de estado representativo)

Creemos 2 controladores, para cada página (página), por qué el código o no tiene más y mejor: hay un obstáculo para crear un solo controlador.

MovieController

Crie a classe MovieController (lib → controladores → movie_controller.dart), que permite controlar la exención de películas populares.

Tan pronto como nuestro método fetchAllMovies, no incluido en la lista de películas, simplemente se agrega:

  • moviesResponseModel.movies.addAll (film.movies);

Tal como está, es posible crear una lista infinita.

MovieDetailController

Cree una clase MovieDetailController (lib → controladores → movie_detail_controller.dart), lo que permite controlar los detalles de las películas.

Siempre posible, crearemos algunos componentes para facilitar el diseño de las carrocerías y también para reutilizar los widgets en otros proyectos.

Mensaje centrado en clases

Cree una clase CenteredMessage (lib → widgets → centered_message.dart), que presenta un contenedor para expresar un mensaje y un icono en el centro.

Curso enfocado a la clase

Cree una clase CenteredProgress (lib → widgets → centered_progress.dart), que representa un Contenedor para expresar un círculo animado que indica el progreso del envío.

Clase MovieCard

Cree una clase MovieCard (lib → widgets → movie_card.dart), que presenta un contenedor para expresar una imagen de la película. Esta imagen se agrega en:

Constante de clase

Crie a classe Constant (lib → core → constant.dart), que guardará como constantes se utiliza en la aplicación.

Clase ChipDate

Cree una clase ChipDate (lib → widgets → chip_date.dart) para presentar un chip personalizado con un ícono de calendario para mostrar la fecha de lanzamiento de la película.

Tarifa de clase

Crie a classe Rate (lib → widgets → rate.dart) para presentar una Fila con 2 widgets (Icono y Texto) con un icono de corazón rojo y tenga en cuenta que la película se recibe en ese momento.

Para este projeto, teremos 2 vistas:

  • MoviePage: tela que muestra una cuadrícula de archivos usando;
  • MovieDetailPage: un cuerpo que muestra los detalles de la película;

Clase MoviePage

Crear clase MoviePage (lib → páginas → movie_page.dart), que define la lista de películas.

  • La inicialización de la página (initState) está deshabilitada por el método fetchAllMovie ();
  • Durante la carga se requiere un cuerpo de carga;
  • Caso, algunos de los cuales se agregaron (por ejemplo: archivo de Internet), se muestra un mensaje en el centro de la página;
  • El método _initScrollListener configura uno Observador para cortar el body roll, y decir siempre que el body no termina, es más películas para API. Este proceso garantiza un papel en la existencia de películas existentes.
  • Cuando haces clic en la película, hay un conjunto de detalles que pasan a la identificación de la película (método _openDetailPage).

Classe MovieDetailPage

Cree una clase MovieDetailPage (lib → páginas → movie_detail_page.dart), que define la página de los detalles de la película.

  • Pasaremos la identificación de la película seleccionada en el generador de páginas;
  • La inicialización de la página está deshabilitada o el método fetchMoviebyId ();
  • Durante la carga se requiere un cuerpo de carga;
  • Caso, algunos de los cuales se agregaron (por ejemplo: archivo de Internet), se muestra un mensaje en el centro de la página;

Cree un archivo (lib → core → theme_app.dart), que define el tema de aplicación.

Actualicemos el archivo main.dart para esa instancia en nuestra página (mostrar) MoviePage. Por el momento, también podemos definir el tema de aplicación (tema).

Ahora abierto F5 para iniciar la depreciación del proyecto. Seleccione un emulador existente o cree un nuevo se para lo esencial.

Mire el estado celular conectado a la computadora y con el modo de desarrollo activo, que se puede usar o aplicar directamente en la celda.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *