Skip to content

Latest commit

History

19 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

pub packagepub packageBuy Me A CoffeeDonate

Settings Manager

  • Flutter settings store built on top of shared preferences.
  • Code Generator for supported types

Usage

import'dart:async';
import'package:flutter/material.dart';
import'package:settings_manager/settings_manager.dart';
import'package:shared_preferences/shared_preferences.dart';
part'settings.g.dart';
classSettings=SettingsBasewith_$Settings;
abstractclassSettingsBasewithSettingsStore {
@BoolSetting(defaultValue:false)
bool darkMode;
@StringSetting(defaultValue:'none')
String userId;
@IntSetting(defaultValue:0)
int counterValue;
@DoubleSetting(defaultValue:0)
double radialValue;
@StringListSetting(defaultValue: [])
List<String> savedItems;
}

Example

import'package:flutter/material.dart';
import'settings.dart';
voidmain() {
runApp(MyApp());
}
classMyAppextendsStatelessWidget {
@overrideWidgetbuild(BuildContext context) {
returnMaterialApp(
title:'Flutter Demo',
theme:ThemeData(primarySwatch:Colors.blue),
home:MyHomePage(title:'Flutter Demo Home Page'),
);
}
}
classMyHomePageextendsStatefulWidget {
MyHomePage({Key key, this.title}) :super(key: key);
finalString title;
@override_MyHomePageStatecreateState() =>_MyHomePageState();
}
class_MyHomePageStateextendsState<MyHomePage> {
final _settings =Settings();
@overridevoidinitState() {
_settings.init().then((ready) {
if (mounted) setState(() {});
});
super.initState();
}
@overrideWidgetbuild(BuildContext context) {
returnStreamBuilder<int>(
stream: _settings.counterValueStream,
builder: (context, snapshot) {
returnScaffold(
appBar:AppBar(title:Text(widget.title)),
body:Center(
child:Column(
mainAxisAlignment:MainAxisAlignment.center,
children:<Widget>[
Text(
'You have pushed the button this many times:',
),
Text(
'${snapshot.data}',
style:Theme.of(context).textTheme.headline4,
),
],
),
),
floatingActionButton:FloatingActionButton(
onPressed: () => _settings.counterValue = snapshot.data +1,
tooltip:'Increment',
child:Icon(Icons.add),
),
);
});
}
}

About

Flutter settings manager built on top of Shared Preferences

Topics

Resources

Stars

17 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages