Flutter Shared_preferences Plugin Util, Support Get Default Value,Save Object, Object List

sp_util 

Flutter shared_preferences plugin util, support get default value, save object, object list. Use SharedPreferences easily.

Pub 

dependencies:
  sp_util: ^2.0.3

APIs 

getObj
getObjList
putObject
getObject
putObjectList
getObjectList
getString
putString
getBool
putBool
getInt
putInt
getDouble
putDouble
getStringList
putStringList
getDynamic
haveKey
getKeys
remove
clear
reload
isInitialized

Example 

/// Example One.
/// await SpUtil initialization to complete before running the app.
/// sp init time release about 30ms,debug about 100ms.(Test on Android.)
void main() async {
  await SpUtil.getInstance();
  runApp(MyApp());
}

class MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
 
     /// examples
    SpUtil.putString("username", "sky24");
    String userName = SpUtil.getString("username", defValue: "");
    print("userName: " + userName);

    /// save object example.
    /// 存储实体对象示例。
    City city = City();
    city.name = "成都市";
    SpUtil.putObject("loc_city", city);

    City hisCity = SpUtil.getObj("loc_city", (v) => City.fromJson(v));
    print("City: " + (hisCity == null ? "null" : hisCity.toString()));

    /// save object list example.
    /// 存储实体对象list示例。
    List<City> list = List();
    list.add(City(name: "成都市"));
    list.add(City(name: "北京市"));
    SpUtil.putObjectList("loc_city_list", list);

    List<City> dataList = SpUtil.getObjList("loc_city_list", (v) => City.fromJson(v));
    print("CityList: " + (dataList == null ? "null" : dataList.toString()));
  }
  @override
  Widget build(BuildContext context) {
    return MaterialApp();
  }
}  


/// Example Two.
/// add SplashPage, complete sp initialization on the SplashPage. Then you can use it synchronously to the homepage。
...
...

More Util 

common_utils Dart common utils.

  1. TimelineUtil : timeline util.
  2. TimerUtil : countdown,timer.
  3. MoneyUtil : fen to yuan, format output.
  4. LogUtil : simply encapsulate print logs.
  5. DateUtil : date conversion formatted output.
  6. RegexUtil : regular verification of mobile phone numbers, ID cards, mailboxes and so on.
  7. NumUtil : keep [x] decimal places, add subtract multiply divide without loosing precision.
  8. ObjectUtil : object is empty, two List is equal.
  9. EncryptUtil : xor, md5 ,Base64..
  10. TextUtil : hide phoneNo.
  11. JsonUtil : json to object.

flustars Flutter common utils.

  1. SpUtil : SharedPreferences Util.
  2. ScreenUtil : get screen width height density, appBarHeight, statusBarHeight, orientation.
  3. WidgetUtil : get Widget width height,coordinates.
  4. ImageUtil : get image size.
  5. DirectoryUtil : Directory Util.
dependencies:
  # https://github.com/Sky24n/common_utils
  common_utils: ^1.2.1
  # https://github.com/Sky24n/flustars
  flustars: ^0.3.3
  # https://github.com/Sky24n/sp_util
  sp_util: ^2.0.0

Changelog 

Please see the Changelog page to know what's recently changed.

Use this package as a library

Depend on it

Run this command:

With Flutter:

 $ flutter pub add sp_util

This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get):

dependencies:
  sp_util: ^2.0.3

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

Import it

Now in your Dart code, you can use:

import 'package:sp_util/sp_util.dart';

example/lib/main.dart

import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart';
import 'package:sp_util/sp_util.dart';

import 'example2.dart';
import 'models.dart';

/// Example One.
/// await sp initialization to complete before running the app.
/// sp init time release about 30ms,debug about 100ms.(Test on Android.)
//  int old = DateTime.now().millisecondsSinceEpoch;
//  await SpUtil.getInstance();
//  int now = DateTime.now().millisecondsSinceEpoch;
//  LogUtil.e('sp init time: ${now - old}');
void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await SpUtil.getInstance();
  runApp(MyApp());
}

/// Example Two.
void main2() {
  runApp(MyApp2());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key? key, required this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;
  String spLastCounter = 'last_counter';

  void _incrementCounter() {
    setState(() {
      _counter++;
      SpUtil.putInt(spLastCounter, _counter);
    });
  }

  @override
  void initState() {
    super.initState();

    /// use sp.
    _counter = SpUtil.getInt(spLastCounter, defValue: 0)!;

    test();
//    /// examples
//    SpUtil.putString("username", "sky24");
//    String? userName = SpUtil.getString("username", defValue: "");
//    LogUtil.e("userName: $userName");
//
//    SpUtil.putString("username1", "sky24 1");
//    String? userName1 = SpUtil.getString("username1", defValue: "");
//    LogUtil.e("userName1: $userName1");

    /// save object example.
    /// 存储实体对象示例。
    City city = City(name: "成都市");
    SpUtil.putObject("loc_city", city);

    City? hisCity = SpUtil.getObj(
        "loc_city", (v) => City.fromJson(v as Map<String, dynamic>));
    LogUtil.e("City: " + (hisCity == null ? "null" : hisCity.toString()));

    /// save object list example.
    /// 存储实体对象list示例。
    List<City> list = [];
    list.add(City(name: "成都市"));
    list.add(City(name: "北京市"));
    SpUtil.putObjectList("loc_city_list", list);

    List<City>? dataList = SpUtil.getObjList(
        "loc_city_list", (v) => City.fromJson(v as Map<String, dynamic>));
    LogUtil.e("CityList: " + (dataList == null ? "null" : dataList.toString()));
  }

  void test() async {
    /// examples
    await SpUtil.putString("username", "sky24");
    String? userName = SpUtil.getString("username", defValue: "");
    LogUtil.e("userName: $userName");

    await SpUtil.putString("username1", "sky24 1");
    String? userName1 = SpUtil.getString("username1", defValue: "");
    LogUtil.e("userName1: $userName1");
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      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(
              '$_counter',
              style: Theme.of(context).textTheme.headline4,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ),
    );
  }
}

Download details:

Author: Sky24n

Source: https://github.com/Sky24n/sp_util

#flutter #android #ios

Flutter Shared_preferences Plugin Util, Support Get Default Value,Save Object, Object List
1.05 GEEK