Flutter Cache Image

A flutter library to cache network images. This package support the download of images from a standard network url and from a firebase gs storage url.

This package depends only on the flutter firebase storage library; there are no others external dependencies.

Images are stored in the app temporary directory.

How to add

Add to pubspec.yaml:

dependencies:
  cache_image: "^0.0.1"

Add it to your dart file:

import 'package:cache_image/cache_image.dart';

How to use

CacheImage widget can be used in two different way:

Standard network image path
return CacheImage.network(
  path: 'image_url_path',
  placeholder: new Container(
    padding: EdgeInsets.all(16.0),
    color: Colors.grey[100],
    child: new Center(
      child: new Image.asset('image_asset_path'),
    ),
  )
)
Firebase network image path
return CacheImage.firebase(
  path: 'gs_url_path',
  placeholder: new Container(
    padding: EdgeInsets.all(16.0),
    color: Colors.grey[100],
    child: new Center(
      child: new Image.asset('image_asset_path'),
    ),
  )
)

API

  • Widget Placeholder - Widget to display when online image isn't in cache
  • String Prefix - String used to parse gs firebase storage path.
  • Duration Duration - Animation duration between placeholder and image.
  • String Path - Firebase/Network image path.

Libraries

cache_image

Dart

dart:ui
Built-in types and core primitives for a Flutter application. [...]

Core

dart:async
Support for asynchronous programming, with classes such as Future and Stream. [...]
dart:collection
Classes and utilities that supplement the collection support in dart:core. [...]
dart:convert
Encoders and decoders for converting between different data representations, including JSON and UTF-8. [...]
dart:core
Built-in types, collections, and other core functionality for every Dart program. [...]
dart:developer
Interact with developer tools such as the debugger and inspector. [...]
dart:math
Mathematical constants and functions, plus a random number generator. [...]
dart:typed_data
Lists that efficiently handle fixed sized data (for example, unsigned 8 byte integers) and SIMD numeric types. [...]

VM

dart:io
File, socket, HTTP, and other I/O support for non-web applications. [...]
dart:isolate
Concurrent programming using isolates: independent workers that are similar to threads but don't share memory, communicating only via messages. [...]