network_file_cacher 1.1.0 copy "network_file_cacher: ^1.1.0" to clipboard
network_file_cacher: ^1.1.0 copied to clipboard

A flutter library to download and cache files in the cache directory of the app.

Network File Cacher #

A Flutter package to download and cache files locally using dio and hive.

Supported Platforms #

  • Android
  • iOS
  • macOS
  • Windows
  • Linux

(Note: Web platform is not supported as this package requires native file system access provided by dart:io).

Features #

  • Download and cache files locally in temporary storage.
  • Auto-expiration mechanism for cached files (default: 12 hours).
  • Automatic MIME type detection to resolve original file extensions.
  • Support for progress tracking during download.
  • Fast local lookup backed by Hive KV database.

Installation #

Add dependency to your pubspec.yaml:

dependencies:
  network_file_cacher: ^1.0.0

Initialization #

Initialize NetworkFileCacher before downloading files (typically in main()):

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await NetworkFileCacher.init(expired: const Duration(hours: 12));
  runApp(const MyApp());
}

Usage #

Simple Usage with FutureBuilder #

FutureBuilder<File>(
  future: NetworkFileCacher.downloadFile('https://example.com/sample.pdf'),
  builder: (context, snapshot) {
    if (snapshot.connectionState == ConnectionState.waiting) {
      return const CircularProgressIndicator();
    }
    if (snapshot.hasError) {
      return Text('Error: ${snapshot.error}');
    }
    if (snapshot.hasData) {
      return Image.file(snapshot.data!);
    }
    return const SizedBox();
  },
)

Download with Progress Tracking #

File? file;
double progress = 0;

void loadFile(String url) async {
  try {
    final downloadedFile = await NetworkFileCacher.downloadFile(
      url,
      onReceiveProgress: (received, total) {
        if (total > 0) {
          setState(() {
            progress = (received / total) * 100;
          });
        }
      },
    );
    setState(() {
      file = downloadedFile;
    });
  } catch (e) {
    debugPrint('Download error: $e');
  }
}
2
likes
160
points
74
downloads

Documentation

API reference

Publisher

verified publisherdevlab.my.id

Weekly Downloads

A flutter library to download and cache files in the cache directory of the app.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

crypto, dio, flutter, hive, hive_flutter, mime, path, path_provider

More

Packages that depend on network_file_cacher