localstorage 3.0.1+4

  • Readme
  • Changelog
  • Example
  • Installing
  • 91

Localstorage #

Simple json file-based storage for flutter

GitHub stars Twitter Follow

Installation #

Add dependency to pubspec.yaml

dependencies:
  ...
  localstorage: ^3.0.0

Run in your terminal

flutter packages get

Example #

class SomeWidget extends StatelessWidget {
  final LocalStorage storage = new LocalStorage('some_key');

  @override
  Widget build(BuildContext context) {
    return FutureBuilder(
      future: storage.ready,
      builder: (BuildContext context, snapshot) {
        if (snapshot.data == true) {
          Map<String, dynamic> data = storage.getItem('key');

          return SomeDataView(data: data);
        } else {
          return SomeLoadingStateWidget();
        }
      },
    );
  }
}

Desktop support #

In order to be able to use this package on desktop, add this to your pubspec.yaml

dependencies:
  localstorage: ^3.0.0
  path_provider_fde:
    git:
      url: https://github.com/google/flutter-desktop-embedding/
      path: plugins/flutter_plugins/path_provider_fde

V2 -> v3 migration

V3 doesn't add .json extension to a storage filename, so you need to do this on your own if you need a "migration". If you were using v2 with code like below:

final storage = new LocalStorage('my_data');

v3 equivalent:

final storage = new LocalStorage('my_data.json')

Integration tests #

cd ~/flutter_localstorage/test
flutter packages get
flutter drive --target=lib/main.dart

License #

MIT

GitHub stars Twitter Follow

3.0.1+4 #

  • fix remove(key) (drops value from in-memory cache)

3.0.0 #

Breaking changes (desktop only) #

Application document directory is no longer Platform['HOME']/.config as path_provider has desktop support with path_provider_fde.

In order to be able to use this package on desktop, add this to your pubspec.yaml

dependencies:
  localstorage: ^3.0.0
  path_provider_fde:
    git:
      url: https://github.com/google/flutter-desktop-embedding/
      path: plugins/flutter_plugins/path_provider_fde

See https://github.com/google/flutter-desktop-embedding/tree/master/plugins/flutter_plugins for more details

Features #

  • support web (kudos to @AppleEducate)
  • add [LocalStorage.stream] which receives new storage values after modifications

Bug fixes #

  • flush writes to fs

Misc #

  • use async read/writes instead of sync

2.0.0 #

  • fix inconsistent return format of getItem. It now always returns JsonEncodable representation of an item
  • add optional toEncodable arg to setItem

1.3.1 #

  • update README.md documentation
  • bump package_provider dependency to address getApplicationSupportDirectory
  • fix noSuchMethodError in _flush

1.3.0 #

  • add optional pathargument to specify storage folder
  • fixes for flutter-desktop-embedding

1.2.0 #

  • add clear method

1.1.0 #

  • add onError property (ValueNotifier which emits errors)

1.0.1 #

  • Add example application

1.0.0 #

  • Initial release

example/README.md

example #

A new Flutter project.

Getting Started #

For help getting started with Flutter, view our online documentation.

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  localstorage: ^3.0.1+4

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:localstorage/localstorage.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
98
Health:
Code health derived from static analysis. [more]
75
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
100
Overall:
Weighted score of the above. [more]
91
Learn more about scoring.

We analyzed this package on Nov 21, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.6.1
  • pana: 0.12.21
  • Flutter: 1.9.1+hotfix.6

Platforms

Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Health issues and suggestions

Fix lib/src/directory/web.dart. (-25 points)

Analysis of lib/src/directory/web.dart failed with 1 error:

line 3 col 8: Target of URI doesn't exist: 'dart:html'.

Fix lib/src/directory/unsupported.dart. (-0.50 points)

Analysis of lib/src/directory/unsupported.dart reported 1 hint:

line 12 col 42: Close instances of dart.core.Sink.

Maintenance issues and suggestions

Fix analysis_options.yaml.

The analyzer can't parse analysis_options.yaml.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.2.2 <3.0.0
flutter 0.0.0
path_provider ^1.4.0 1.4.4
Transitive dependencies
collection 1.14.11 1.14.12
meta 1.1.7 1.1.8
platform 2.2.1
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8
Dev dependencies
flutter_driver
flutter_test
test any