flutter_remote_asset_manager 0.2.0 copy "flutter_remote_asset_manager: ^0.2.0" to clipboard
flutter_remote_asset_manager: ^0.2.0 copied to clipboard

A lightweight Flutter/Dart asset management library for downloading, verifying, caching, and syncing files from a cdn or url

example/main.dart

// example/main.dart
import 'package:flutter/material.dart';
import 'package:flutter_remote_asset_manager/services/asset_management/asset_loader.dart';
import 'package:flutter_remote_asset_manager/services/asset_management/app_asset.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  runApp(const ExampleApp());
}

class ExampleApp extends StatefulWidget {
  const ExampleApp({super.key});

  @override
  State<ExampleApp> createState() => _ExampleAppState();
}

class _ExampleAppState extends State<ExampleApp> {
  double progress = 0;
  String status = "Starting...";

  @override
  void initState() {
    super.initState();
    _downloadExampleAssets();
  }

  Future<void> _downloadExampleAssets() async {
    setState(() => status = "Preparing assets...");

    final assets = [
      AppAsset(
        id: "flutter-logo",
        path: "images/flutter_logo.png",
        url: "https://flutter.dev/assets/images/shared/brand/flutter/logo/flutter-lockup.png",
      ),
      AppAsset(
        id: "dart-logo",
        path: "images/dart_logo.png",
        url: "https://dart.dev/assets/shared/dart/logo+text/horizontal/white.svg",
      ),
    ];

    await AssetLoader.downloadAssetList(
      assets: assets,
      urlResolver: (a) => a.url,
      concurrency: 2,
      onFileProgress: (asset, p) {
        setState(() {
          progress = p;
          status = "Downloading ${asset.path}";
        });
      },
      onFileCompleted: (asset, msg) {
        setState(() => status = "Completed ${asset.path}");
      },
      onFileFailed: (asset, err) {
        setState(() => status = "Failed ${asset.path}: $err");
      },
      onOverallProgress: (done, total) {
        setState(() => status = "Progress: $done / $total");
      },
      onAllCompleted: () {
        setState(() => status = "✅ All downloads complete!");
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Asset Manager Example',
      home: Scaffold(
        appBar: AppBar(title: const Text('Asset Manager Example')),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Text(status, textAlign: TextAlign.center),
              const SizedBox(height: 20),
              LinearProgressIndicator(value: progress.isNaN ? null : progress),
              const SizedBox(height: 40),
              ElevatedButton(
                onPressed: _downloadExampleAssets,
                child: const Text("Retry Download"),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
0
likes
130
points
49
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

A lightweight Flutter/Dart asset management library for downloading, verifying, caching, and syncing files from a cdn or url

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

chalkdart, crypto, dio, flutter, json_annotation, path, path_provider, sqflite

More

Packages that depend on flutter_remote_asset_manager