En este módulo, aprenderás cómo crear tus propios paquetes en Dart. Los paquetes son una forma de organizar y compartir código reutilizable. Dart tiene un sistema de paquetes robusto que te permite crear, publicar y gestionar paquetes fácilmente.
Objetivos del Módulo
- Comprender la estructura de un paquete en Dart.
- Aprender a crear un paquete desde cero.
- Conocer cómo publicar un paquete en pub.dev.
- Aprender a gestionar dependencias y versiones.
- Estructura de un Paquete en Dart
Un paquete en Dart tiene una estructura específica que facilita la organización del código y la documentación. A continuación, se muestra la estructura básica de un paquete:
my_package/ ├── lib/ │ └── my_package.dart ├── test/ │ └── my_package_test.dart ├── example/ │ └── my_package_example.dart ├── pubspec.yaml ├── README.md ├── CHANGELOG.md └── LICENSE
Descripción de los Archivos y Directorios
- lib/: Contiene el código fuente del paquete. El archivo principal suele llamarse
my_package.dart
. - test/: Contiene las pruebas unitarias para el paquete.
- example/: Contiene ejemplos de cómo usar el paquete.
- pubspec.yaml: Archivo de configuración del paquete, donde se definen las dependencias, la versión, el nombre del paquete, etc.
- README.md: Archivo de documentación que describe el paquete y cómo usarlo.
- CHANGELOG.md: Archivo que documenta los cambios realizados en cada versión del paquete.
- LICENSE: Archivo que especifica la licencia del paquete.
- Creación de un Paquete desde Cero
Paso 1: Crear la Estructura del Paquete
Para crear un nuevo paquete, puedes usar el comando dart create
:
Este comando creará una estructura básica de paquete en el directorio my_package
.
Paso 2: Configurar el Archivo pubspec.yaml
El archivo pubspec.yaml
es crucial para la configuración del paquete. Aquí hay un ejemplo básico:
name: my_package description: A new Dart package. version: 0.0.1 author: Your Name <[email protected]> homepage: https://example.com environment: sdk: '>=2.12.0 <3.0.0' dependencies: # Añade las dependencias aquí dev_dependencies: test: ^1.16.0
Paso 3: Escribir el Código del Paquete
En el archivo lib/my_package.dart
, puedes empezar a escribir el código de tu paquete. Aquí hay un ejemplo simple:
library my_package; /// A simple function that adds two numbers. int add(int a, int b) { return a + b; }
Paso 4: Escribir Pruebas Unitarias
En el archivo test/my_package_test.dart
, puedes escribir pruebas unitarias para tu paquete:
import 'package:test/test.dart'; import 'package:my_package/my_package.dart'; void main() { test('adds two numbers', () { expect(add(2, 3), 5); }); }
Paso 5: Documentar el Paquete
Asegúrate de documentar tu paquete adecuadamente en el archivo README.md
. Aquí hay un ejemplo básico:
import 'package:my_package/my_package.dart';
void main() { print(add(2, 3)); // 5 }
- Publicar un Paquete en pub.dev
Paso 1: Crear una Cuenta en pub.dev
Antes de publicar un paquete, necesitas una cuenta en pub.dev. Puedes registrarte en pub.dev.
Paso 2: Validar el Paquete
Antes de publicar, asegúrate de que tu paquete cumple con las normas de pub.dev. Puedes usar el comando dart pub publish --dry-run
para validar tu paquete:
Paso 3: Publicar el Paquete
Si todo está en orden, puedes publicar tu paquete con el siguiente comando:
- Gestión de Dependencias y Versiones
Dependencias
Puedes añadir dependencias en el archivo pubspec.yaml
bajo la sección dependencies
:
Versiones
Es importante seguir las convenciones de versionado semántico (semver) para tu paquete. La versión se especifica en el archivo pubspec.yaml
:
Ejercicio Práctico
Ejercicio 1: Crear un Paquete Simple
- Crea un nuevo paquete llamado
math_utils
. - Añade una función en
lib/math_utils.dart
que calcule el factorial de un número. - Escribe pruebas unitarias para la función en
test/math_utils_test.dart
. - Documenta el paquete en
README.md
.
Solución
lib/math_utils.dart:
library math_utils; /// Calculates the factorial of a number. int factorial(int n) { if (n <= 1) return 1; return n * factorial(n - 1); }
test/math_utils_test.dart:
import 'package:test/test.dart'; import 'package:math_utils/math_utils.dart'; void main() { test('calculates factorial of 5', () { expect(factorial(5), 120); }); test('calculates factorial of 0', () { expect(factorial(0), 1); }); }
README.md:
import 'package:math_utils/math_utils.dart';
void main() { print(factorial(5)); // 120 }
Conclusión
En este módulo, has aprendido cómo crear, configurar y publicar un paquete en Dart. También has aprendido a gestionar dependencias y versiones. Crear paquetes es una habilidad esencial para compartir y reutilizar código en proyectos de Dart. ¡Ahora estás listo para crear y publicar tus propios paquetes!
Curso de Programación en Dart
Módulo 1: Introducción a Dart
- Introducción a Dart
- Configuración del Entorno de Desarrollo
- Tu Primer Programa en Dart
- Sintaxis y Estructura Básica