पैकेज, रिपॉज़िटरी और ऐप श्रेणियाँ खोजें

पैकेज विवरणv0.3.0

shared_preferences_riverpod

riverpod के साथ shared_preferences का उपयोग करने में मदद करें

AndroidiOSWebmacOSWindowsLinux
30-दिन डाउनलोड
269
लाइक
29
Pub अंक
130

पैकेज इंस्टॉल करें

flutter pub add shared_preferences_riverpod

पैकेज अवलोकन

सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।

एक फ्लटर पैकेज जो shared_preferences को Riverpod के साथ एकीकृत करता है, जिससे स्थायी की-वैल्यू स्टोरेज के आसान और प्रतिक्रियाशील पहुंच की अनुमति मिलती है। यह रिएक्टिव तरीके से डेटा को बदलने और पढ़ने के लिए एक साफ, डिपेंडेंसी-इंजेक्टेड दृष्टिकोण प्रदान करता है, जो एप्लिकेशन रिस्टार्ट के बाद भी काम करता है, Riverpod के राज्य प्रबंधन क्षमताओं का उपयोग करता है। आधुनिक फ्लटर अभ्यास के साथ सरलता और संगतता के लिए डिज़ाइन किया गया है, जो न्यूनतम बॉयलरप्लेट के साथ प्रकार सुरक्षित, असिंक्रोनस ऑपरेशन सुनिश्चित करता है। उपयोगकर्ता प्राथमिकताओं, सेटिंग्स या छोटी मात्रा में स्थायी डेटा स्टोर करने के लिए आदर्श है।

उपयोग

  • उपयोगकर्ता पसंदीदा संग्रहित करना
  • एप्लिकेशन सेटिंग्स को स्थायी बनाएं
  • लॉगिन स्थिति सहेजें
  • थीम चयन का प्रबंधन
  • स्थानीय कैश का प्रबंधन
  • उपयोगकर्ता ओनबोर्डिंग प्रगति का ट्रैकिंग

मुख्य विशेषताएँ

  • Riverpod एकीकरण
  • प्रकार सुरक्षित भंडारण
  • असिंक्रोनस संचालन
  • प्रतिक्रियाशील अद्यतन
  • न्यूनतम बॉयलरप्लेट
  • क्रॉस-प्लेटफ़ॉर्म समर्थन

इनके लिए उपयुक्त

  • Riverpod का उपयोग करने वाले Flutter ऐप्स
  • स्थायी स्थानीय भंडारण की आवश्यकता वाले ऐप्स
  • साफ स्टेट मैनेजमेंट चाहने वाले डेवलपर्स
  • हल्के स्थायित्व की आवश्यकता वाले प्रोजेक्ट
  • आधुनिक Flutter आर्किटेक्चर का पालन करने वाली टीमें

विचार योग्य बातें

  • बड़े डेटासेट के लिए उपयुक्त नहीं
  • Riverpod सेटअप की आवश्यकता है
  • सरल कुंजी-मान जोड़े तक सीमित
  • डेटा डिफ़ॉल्ट रूप से एन्क्रिप्ट नहीं होता है
  • कोई निर्मित संचालन समर्थन नहीं है
  • छोटे, अक्सर एक्सेस किए जाने वाले डेटा के लिए सबसे अच्छा

मूल README

संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।

SharedPreferences_riverpod

Make it easier to access SharePreferences using Riverpod's Provider.

  • https://pub.dev/packages/shared_preferences
  • https://pub.dev/packages/riverpod

Usage

Primitive type or List<String>
  • Create Provider with createPrefProvider and generics parameter.
final booPrefProvider = createPrefProvider<bool>(
  prefs: (_) => prefs,
  prefKey: "boolValue",
  defaultValue: false,
);
  • Refer values with ref.watch(provider).
  • Update value with await ref.read(provider).update(newValue);.
Consumer(builder: (context, ref, _) {
  return CheckboxListTile(
    title: Text('checkbox'),
    value: ref.watch(booPrefProvider),
    onChanged: (v) async {
        if (v != null) await ref.read(booPrefProvider.notifier).update(v);
    },
  );
}
Other types
  • Create Provider with createPrefProvider and map functions.
enum EnumValues {
  foo,
  bar,
}

final enumPrefProvider = createMapPrefProvider<EnumValues>(
  prefs: (_) => prefs,
  prefKey: "enumValue",
  mapFrom: (v) => EnumValues.values
      .firstWhere((e) => e.toString() == v, orElse: () => EnumValues.foo),
  mapTo: (v) => v.toString(),
);

  • Refer values with ref.watch(provider).
  • Update value with await ref.read(provider).update(newValue);.
Consumer(builder: (context, ref, _) {
  return RadioListTile(
    title: Text('value1'),
    value: EnumValues.foo,
    groupValue: ref.watch(enumPrefProvider),
    onChanged: (EnumValues? v) async {
      if (v != null) await ref.read(enumPrefProvider.notifier).update(v);
    },
  );
}
Example

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:shared_preferences_riverpod/shared_preferences_riverpod.dart';

late SharedPreferences prefs;

final booPrefProvider = createPrefProvider<bool>(
  prefs: (_) => prefs,
  prefKey: "boolValue",
  defaultValue: false,
);

enum EnumValues {
  foo,
  bar,
}

final enumPrefProvider = createMapPrefProvider<EnumValues>(
  prefs: (_) => prefs,
  prefKey: "enumValue",
  mapFrom: (v) => EnumValues.values
      .firstWhere((e) => e.toString() == v, orElse: () => EnumValues.foo),
  mapTo: (v) => v.toString(),
);

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();

  prefs = await SharedPreferences.getInstance();

  runApp(ProviderScope(child: MyApp()));
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Sample',
      home: Scaffold(
        appBar: AppBar(),
        body: Consumer(builder: (context, ref, _) {
          return ListView(children: [
            CheckboxListTile(
              title: Text('BoolPrefNotifier ${ref.watch(booPrefProvider)}'),
              value: ref.watch(booPrefProvider),
              onChanged: (v) async {
                if (v != null)
                  await ref.read(booPrefProvider.notifier).update(v);
              },
            ),
            RadioListTile(
              title: Text('${EnumValues.foo.toString()}'),
              value: EnumValues.foo,
              groupValue: ref.watch(enumPrefProvider),
              onChanged: (EnumValues? v) async {
                if (v != null)
                  await ref.read(enumPrefProvider.notifier).update(v);
              },
            ),
            RadioListTile(
              title: Text('${EnumValues.bar.toString()}'),
              value: EnumValues.bar,
              groupValue: ref.watch(enumPrefProvider),
              onChanged: (EnumValues? v) async {
                if (v != null)
                  await ref.read(enumPrefProvider.notifier).update(v);
              },
            ),
          ]);
        }),
      ),
    );
  }
}

श्रेणियाँ

निर्भरताएँ

निर्भरता सूची 2 आइटम

सोर्स रिपॉज़िटरी

इस पैकेज का उपयोग करने वाले प्रोजेक्ट

अभी कोई डेटा उपलब्ध नहीं है।