downloader_manager 2.0.1 copy "downloader_manager: ^2.0.1" to clipboard
downloader_manager: ^2.0.1 copied to clipboard

downloader_manager es una librería para Dart que te permite gestionar descargas de archivos desde internet de forma sencilla, eficiente y controlada. ¡Automatiza, pausa, reanuda, monitorea y detén des [...]

📦✨ downloader_manager #

downloader_manager es una poderosa librería para Dart que facilita la gestión avanzada de descargas de archivos desde internet. Permite crear, monitorear, pausar, reanudar y detener descargas de manera eficiente y controlada, utilizando aislamiento de procesos (Isolate) para no bloquear la interfaz de usuario ni el hilo principal de tu aplicación. Es ideal para aplicaciones que requieren descargas concurrentes, seguimiento de progreso en tiempo real y control total sobre cada tarea de descarga.

Con downloader_manager puedes:

  • 📥 Descargar múltiples archivos simultáneamente sin afectar el rendimiento de tu app.
  • ⏸️ Pausar y ▶️ reanudar descargas en cualquier momento.
  • 🛑 Detener y eliminar tareas de descarga de forma segura.
  • 📊 Monitorear el progreso y estado de cada descarga con streams reactivos.
  • 🏷️ Identificar y controlar descargas mediante tokens únicos.
  • ⚠️ Gestionar errores y eventos en tiempo real para una experiencia robusta.

🛠 Instalación #

Agrega la dependencia en tu archivo pubspec.yaml:

dependencies:
  downloader_manager:
    git: https://github.com/surco123es/downloader_manager

Luego ejecuta:

dart pub get

💡 Ejemplo de uso completo #

import 'package:downloader_manager/downloader_manager.dart';

void main() async {
  final manager = ManagerDownload();

  // 1️⃣ Crear una descarga
  final response = await manager.create(
    req: DownRequire(
      url: 'https://www.ejemplo.com/archivo.zip',
      fileName: 'archivo.zip',
      token: 12345,
    ),
  );

  final token = response.token;

  // 2️⃣ Escuchar el progreso de la descarga
  final controller = manager.controller(token);
  if (controller.exists) {
    controller.controller!.listen((status) {
      print('📊 Progreso: ${status.main.porcent}%');
      if (status.error) {
        print('❌ Error en la descarga');
      }
    });
  }

  // 3️⃣ Pausar la descarga
  bool paused = manager.pause(token);
  print(paused ? '⏸️ Descarga pausada' : '⚠️ No se pudo pausar');

  // 4️⃣ Reanudar la descarga
  bool resumed = manager.resume(token);
  print(resumed ? '▶️ Descarga reanudada' : '⚠️ No se pudo reanudar');

  // 5️⃣ Consultar el estado de la descarga
  final status = manager.status(token);
  print('ℹ️ Estado actual: ${status.pause ? "⏸️ Pausada" : "✅ Activa"}');

  // 6️⃣ Detener y eliminar la descarga
  bool stopped = await manager.stop(token: token);
  print(stopped ? '🛑 Descarga detenida y eliminada' : '⚠️ No se pudo detener');
}

🧩 API de ManagerDownload #

  • 🆕 create({required DownRequire req, Function? fc})
    Crea una nueva tarea de descarga.

  • ⏸️ pause(int token)
    Pausa la descarga asociada al token.

  • ▶️ resume(int token)
    Reanuda la descarga pausada.

  • ℹ️ status(int token)
    Obtiene el estado actual de la descarga.

  • 📡 controller(int token)
    Obtiene el stream para escuchar el progreso y eventos de la descarga.

  • 🛑 stop({required int token})
    Detiene y elimina la tarea de descarga.


⚡ Requisitos #

  • Dart SDK ^3.7.1
  • http ^1.1.0

🤝 Contribuciones #

¡Las contribuciones son bienvenidas! Abre un issue o pull request en GitHub.


¡Gestiona tus descargas como un profesional con downloader_manager! 🚀🎉

5
likes
0
points
49
downloads

Publisher

verified publishernio.ilove-soft.com

Weekly Downloads

downloader_manager es una librería para Dart que te permite gestionar descargas de archivos desde internet de forma sencilla, eficiente y controlada. ¡Automatiza, pausa, reanuda, monitorea y detén descargas fácilmente en tus proyectos Dart o Flutter!

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

http

More

Packages that depend on downloader_manager