¿Qué es un package?
Un package es un método o un fragmento de código listo para usar que puedes importar y usar en tu aplicación. Utilizar estas herramientas presenta una gran ventaja, especialmente cuando se está empezando. De hecho, permiten simplificar enormemente la implementación de ciertas funciones o elementos visuales, que a veces son complejos de codificar o requieren mucho tiempo.
Por ejemplo, existen packages de Flutter para:
- Conectar tu aplicación con servicios de terceros como Firebase;
- Añadir fácilmente animaciones de carga;
- Añadir nuevas tipografías para tus textos o nuevos íconos;
- Abrir URLs en una nueva ventana o llamar números de teléfono;
- Hacer zoom en una foto cuando el usuario «pellizca» la pantalla, o girarla cuando gira su pantalla, etc.
¿Cómo instalar un package en Flutter?
Para instalar un package, dirígete al sitio Pub.dev donde están todos agrupados. Busca el package que te interesa y ve a la sección «installing». Luego, tienes dos opciones de instalación:
- Usar la terminal de comandos e ingresar
flutter pub add nombre_del_package
; - Ir a tu archivo
pubspec.yaml
(en la parte inferior de tus carpetas cuando abres Visual Studio) y pegar la dependencia con la versión que deseas instalar, debajo de la líneacupertino_icons: ^1.0.2
.
El package será importado a tus carpetas y podrás usarlo en tu aplicación.
Usar un package
Has importado un package, pero eso no es suficiente para poder usarlo. De hecho, para poder usarlo en una página específica, también tendrás que importarlo en ella. Afortunadamente, es muy simple; solo tienes que pegar la ruta de importación que está indicada en la parte «installing» del package, que se ve así:
import 'package:mi_package/mi_package.dart';
¡Listo! Estás preparado para usar tu package.
El package no necesita ser importado en tu archivo main.dart
(a menos que lo necesites allí, por supuesto), sino en cada página en la que planeas usarlo. También recuerda utilizar la documentación proporcionada con el package, ya que generalmente explica cómo usarlo.
Tipos de packages
No existen tipos de packages per se, pero desde mi experiencia, podemos dividirlos en tres categorías:
- Visuales, para añadir elementos visuales a tu aplicación, como tipografías, íconos, animaciones, etc.
- Funcionales, que te permiten realizar acciones, como abrir una URL, mostrar un mensaje de error que desaparece después de un tiempo determinado, etc.
- De servicios externos, que te permiten conectar y utilizar las funcionalidades de servicios de terceros como Firebase, tu cuenta de Google, tu cuenta de Apple, etc.
Packages visuales
Aquí tienes una lista de algunos packages visuales que podrían ser útiles:
- google_Font (para importar tipografías);
- caroussel_Slider (para crear carruseles de fotos);
- fluttertoast (para mostrar mensajes de alerta que luego desaparecen);
- lottie (para añadir animaciones tipo gif);
- auto_size_text (para adaptar el tamaño de los textos según el tamaño de la pantalla);
- flutter_launch_icons (para cambiar el ícono de lanzamiento de tu aplicación);
- packages de íconos (Ionicons, Feather, Unicons, etc).
Packages funcionales
Aquí tienes una lista de algunos packages funcionales que podrían ser útiles:
- url_launcher (para abrir URLs en Google Chrome, números de teléfono, etc);
- Image_picker (para acceder a las imágenes del teléfono y a la cámara);
- video_player (para poder reproducir videos desde tu aplicación);
- geocoding (para geolocalizarte);
- audioplayers (para reproducir varios archivos de audio a la vez);
Packages de servicios externos
Aquí tienes una lista de algunos packages de servicios externos que podrían ser útiles:
- firebase_core (para conectar tu aplicación a Firebase y aprovechar sus servicios);
- firebase_auth (para acceder a la herramienta Firebase Authentication, donde podrás almacenar las cuentas de tus usuarios);
- cloud_firestore (para poder escribir funciones en el backend);
- google_sign_in (para poder iniciar sesión en tu aplicación con tu cuenta de Google);
- sign_in_with_apple (para poder iniciar sesión en tu aplicación con tu cuenta de Apple).
Mis packages favoritos de Flutter
Aquí tienes la lista de packages de Flutter que he utilizado personalmente y que puedo recomendarte:

Guía completa de Flutter: El widget TextField

Guía completa de Flutter: El widget Checkbox

Guía completa de Flutter: El widget ElevatedButton

Guía completa de Flutter: El widget Image

Guía completa Flutter: El widget Icon

Guía completa Flutter: El widget Text

Guía completa Flutter: El widget Row

Guía completa Flutter: El widget Column

Guía completa de Flutter: El widget Container
