flutter_map_cache 1.1.1 copy "flutter_map_cache: ^1.1.1" to clipboard
flutter_map_cache: ^1.1.1 copied to clipboard

A slim yet powerful caching plugin for flutter_map tile layers.

flutter_map_cache #

A slim yet powerful caching plugin for flutter_map tile layers.

Pub Likes Pub Points Pub Popularity Pub Version

GitHub last commit GitHub issues GitHub Repo stars

Features #

The package is using dio with the dio_cache_interceptor package and supports the storage backend that you like.

Supported storage backends are:

Getting started #

  1. Add the packages you want to use to your pubspec.yaml file. Only add the packages for the backend you want to use.
dependencies:
  flutter_map: ^5.0.0 # in case you don't have it yet 
  flutter_map_cache: ^1.0.0 # this package

  dio_cache_interceptor_db_store: ^5.1.0 # drift
  sqlite3_flutter_libs: ^0.5.15 # drift

  dio_cache_interceptor_file_store: ^1.2.2 # file system

  dio_cache_interceptor_hive_store: ^3.2.1 # hive

  dio_cache_interceptor_objectbox_store: ^1.1.1 # objectbox
  objectbox_flutter_libs: ^1.4.1 # objectbox  
  1. The storage backends might have their own required setups. Please check them out in their package documentations.

Usage #

Using the cache is easy. Here is an example how to use the Hive backend:

First get the cache directory of the app (i.e. with the path_provider package).

import 'package:path_provider/path_provider.dart';

Future<String> getPath() async {
  final cacheDirectory = await getTemporaryDirectory();
  return cacheDirectory.path;
}

Then use the directory path to initialize the HiveCacheStore. You can wrap FlutterMap inside a FutureBuilder to use the getPath() method.

@override
Widget build(BuildContext context) {
  return FlutterMap(
    options: MapOptions(),
    children: [
      TileLayer(
        urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
        tileProvider: CachedTileProvider(
          maxStale: const Duration(days: 30),
          store: HiveCacheStore(
            '$path${Platform.pathSeparator}HiveCacheStore',
            hiveBoxName: 'HiveCacheStore',
          ),
        ),
      ),
    ],
  );
}

Additional information #

Pull requests are welcome. If you want to add support for another storage backend you can check out dio_cache_interceptor.

If you need help you can open an issue or join the flutter_map discord server.

29
likes
0
pub points
94%
popularity

Publisher

verified publisherjoscha-eckert.de

A slim yet powerful caching plugin for flutter_map tile layers.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

dio, dio_cache_interceptor, flutter, flutter_map

More

Packages that depend on flutter_map_cache