Creare librería en Dart instalable con Pub

Author
Por Darío Rivera
Publicado el en Flutter

A medida que aumentas tu nivel como desarrollador y vas creando funcionalidades en uno y otro proyecto, te das cuenta que bien podrías crear una librería centralizada e instalarla en todos tus demás proyectos. Esta librería podría ser privada o pública, pero la idea central es que sea un proyecto de código independiente, mantenible y centralizado. Es por esto que hoy veremos cómo crear una librería Dart que puedas fácilmente instalar en todos tus proyectos.

Scaffolding

Lo primero que debes hacer es crear el scaffolding de tu aplicación. Para esto, puedes utilizar el siguiente comando.

dart create --template=package-simple mypackage

Este comando creará algunos archivos dentro de los cuales se puede resaltar los siguientes:

#	lib/
#	|-- mypackage.dart
#	    lib/src/
#	    |-- mypackage_base.dart

El archivo mypackage.dart contendrá los exportes de las clases de tus paquetes. Este archivo será el que se cargue cuando importemos la librería, hay que tener en cuenta que todo lo que esté bajo el directorio src es privado y no se puede acceder por fuera de la librería a menos que lo declaremos explícitamente.

library mypackage;

export 'src/mypackage_base.dart';

El otro archivo es un ejemplo de lo que podría ser una clase.

class Awesome {
  bool get isAwesome => true;
}

Carga de la librería mediante pub

Para cargar la librería de manera local, deberás crear un directorio llamado packages y agregarlo de la siguiente manera al pubspec.yaml en la sección de dependencias.

dev_dependencies:
  ...
  mypackage:
    packages/mypackage

Posterior a esto deberás ejecutar el siguiente comando.

dart pub get

Sube tu proyecto a GitHub

Sube tus cambios de manera organizada a GitHub. Recuerda que GitHub es un VCS hosting service, no es un servicio de almacenamiento en donde simplemente subes tu código. Crea cada funcionalidad y súbela en un commit. Puedes utilizar GitFlow también, esto te presentará como un desarrollador profesional.

Versiona tu librería

Cuando ya tengas lista tu primera versión debes indicarlo primero en el archivo pubspec.yml con la key version.

version: 0.1.0

Puedes crear un release o crear o Lightweight Tag. Te recomiendo visitar la página oficial de GIT para elegir el método de versionado correcto para tu repositorio.

Carga de tu librería en pub.dev

pub.dev es un repositorio para paquetes de pub. Cuando ejecutas dart pub get para instalar las dependencias de un proyecto pub busca todos estos paquetes en pub.dev y descarga las versiones indicadas en el archivo pubspec.yml.

Puedes crear tu cuenta de pub.dev con una cuenta de Google y publicar tus paquetes desde allí. También puedes crear un publiser para publicar paquetes en nombre de tu dominio. Todo esto lo puedes ver más a fondo directamente en Publishing Packages.

Es muy recomendable que antes de publicar tu paquete corras un "dry-run" para verificar que no tienes ningún warning y verificar la estructura del paquete q estás subiendo.

dart pub publish --dry-run

Una vez estés seguro de tus cambios puedes corre el comando para publicar sin dry-run.

dart pub publish

La consula te mostrará una URL a la cual debes acceder para subir el paquete a dev.pub. La primera vez que subas un paquete siempre quedará en tu cuenta personal y no en la de un publisher.

Transferir paquete a un Publisher

Para transferir un paquete a un publisher debes ingresar al paquete en cuestión, y en la pestaña Admin seleccionar el publish al cual quieres transferir el paquete y finalmente dar clic en TRANSFER TO PUBLISHER. Este proceso tomará aproximadamente 15-20 minutos.


Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.