Saltar al contenido principal

Presentamos el paquete:flutter_lints

Migra a package:flutter_lints para obtener el último conjunto de lints recomendados, que fomentan buenas prácticas de codificación.

Resumen

#

El paquete package:flutter_lints define el conjunto más reciente de lints recomendados que fomentan buenas prácticas de codificación para aplicaciones, paquetes y plugins de Flutter. Los proyectos creados con flutter create utilizando la versión 2.5 de Flutter o una más reciente ya están habilitados para usar el último conjunto de lints recomendados. Los proyectos creados antes de esa versión pueden actualizarse siguiendo las instrucciones de esta guía.

Contexto

#

Antes de la introducción de package:flutter_lints, el framework de Flutter venía con un conjunto de lints definidos en analysis_options_user.yaml que utilizaba el analizador de Dart para identificar problemas en el código si un proyecto de Flutter no definía un archivo analysis_options.yaml personalizado. Dado que analysis_options_user.yaml estaba vinculado a una versión específica del framework, era difícil hacerlo evolucionar sin romper aplicaciones, paquetes y plugins existentes. Como resultado de eso, los lints definidos en analysis_options_user.yaml están fuertemente desactualizados. Para solucionar esto, se creó package:flutter_lints. El paquete versiona el conjunto de lints para permitir hacerlo evolucionar sin romper proyectos existentes. Dado que el paquete se basa en package:lints de Dart, también alinea los lints recomendados para proyectos de Flutter con el resto del ecosistema de Dart.

Guía de migración

#

Sigue estos pasos para migrar tu proyecto de Flutter y utilizar los últimos lints recomendados de package:flutter_lints:

Añade una dev_dependency a package:flutter_lints en el pubspec.yaml de tu proyecto ejecutando flutter pub add --dev flutter_lints en el directorio raíz del proyecto.

Crea un archivo analysis_options.yaml en el directorio raíz de tu proyecto (junto al archivo pubspec.yaml) con el siguiente contenido:

yaml
include: package:flutter_lints/flutter.yaml

El conjunto de lints recién activado puede identificar algunos problemas nuevos en tu código. Para encontrarlos, abre tu proyecto en un IDE con soporte para Dart o ejecuta flutter analyze en la línea de comandos. Es posible que puedas corregir algunos de los problemas reportados de forma automática ejecutando dart fix --apply en el directorio raíz de tu proyecto.

Archivo analysis_options.yaml personalizado existente

#

Si tu proyecto ya tiene un archivo analysis_options.yaml personalizado en su raíz, añade include: package:flutter_lints/flutter.yaml en la parte superior para activar los lints de package:flutter_lints. Si tu analysis_options.yaml ya contiene una directiva include:, tendrás que decidir si deseas mantener esos lints o si quieres reemplazarlos con los lints de package:flutter_lints porque el analizador de Dart solo admite una directiva include: por archivo analysis_options.yaml.

Personalización de lints

#

Los lints activados para un proyecto determinado se pueden personalizar aún más en el archivo analysis_options.yaml. Esto se muestra en el archivo de ejemplo a continuación, el cual es una reproducción del archivo analysis_options.yaml generado por flutter create para proyectos nuevos.

yaml
# This file configures the analyzer, which statically analyzes Dart code to
# check for errors, warnings, and lints.
#
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
# invoked from the command line by running `flutter analyze`.

# The following line activates a set of recommended lints for Flutter apps,
# packages, and plugins designed to encourage good coding practices.
include: package:flutter_lints/flutter.yaml

linter:
  # The lint rules applied to this project can be customized in the
  # section below to disable rules from the `package:flutter_lints/flutter.yaml`
  # included above or to enable additional rules. A list of all available lints
  # and their documentation is published at
  # https://dart-lang.github.io/linter/lints/index.html.
  #
  # Instead of disabling a lint rule for the entire project in the
  # section below, it can also be suppressed for a single line of code
  # or a specific dart file by using the `// ignore: name_of_lint` and
  # `// ignore_for_file: name_of_lint` syntax on the line or in the file
  # producing the lint.
  rules:
    # avoid_print: false  # Uncomment to disable the `avoid_print` rule
    # prefer_single_quotes: true  # Uncomment to enable the `prefer_single_quotes` rule

# Additional information about this file can be found at
# https://dart.dev/guides/language/analysis-options

Timeline

#

Introducido en la versión: 2.3.0-12.0.pre
En la versión estable: 2.5

Referencias

#

Documentación:

Problema relevante:

PRs relevantes: