Flutter मोबाइल विकास · पाठ

डेटा के लिए Shared Preferences

उपयोगकर्ता सेटिंग और प्राथमिकताओं जैसी छोटी मात्रा में डेटा को स्थानीय रूप से कुंजी-मूल्य युग्मों में संग्रहीत करने के लिए `shared_preferences` का उपयोग करें।

पाठ 1, कुल 4 में से12 चरण

डेटा के लिए Shared Preferences, CoddyKit पर Flutter मोबाइल विकास का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Flutter मोबाइल विकास सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Flutter मोबाइल विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Shared Preferences क्या हैं?

मोबाइल ऐप बनाते समय आपको अक्सर डिवाइस पर थोड़ी मात्रा में डेटा स्थानीय रूप से संग्रहीत करने की आवश्यकता होती है। यह उपयोगकर्ता की डार्क मोड पसंद से लेकर पिछली बार लॉग-इन होने की स्थिति तक कुछ भी हो सकता है।

shared_preferences एक Flutter पैकेज है, जो आपको यही काम करने में मदद करता है! यह प्राथमिक डेटा प्रकारों के कुंजी-वैल्यू युग्म संग्रहीत करने का सरल तरीका प्रदान करता है।

Shared Preferences का उपयोग क्यों करें?

  • सरल डेटा: बूलियन, पूर्णांक, दशमलव, स्ट्रिंग और स्ट्रिंग की सूचियों जैसे सरल डेटा प्रकारों को संग्रहीत करने के लिए आदर्श।
  • उपयोगकर्ता सेटिंग: उपयोगकर्ता की पसंद, ऐप सेटिंग या थीम विकल्प सहेजने के लिए बिल्कुल उपयुक्त।
  • हल्का: पूरे डेटाबेस की आवश्यकता के बिना थोड़ी मात्रा में डेटा बनाए रखने का तेज़ और आसान तरीका।

इसे अपने ऐप की अस्थायी स्मृति के लिए एक छोटी डिजिटल नोटबुक जैसा समझिए!

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

shared_preferences का उपयोग करने के लिए सबसे पहले आपको इसे अपने प्रोजेक्ट की निर्भरताओं में जोड़ना होगा।

अपनी pubspec.yaml फ़ाइल खोलें और dependencies: के नीचे निम्नलिखित पंक्ति जोड़ें:

dependencies:
  flutter:
    sdk: flutter
  shared_preferences: ^2.2.2 # Add this line

अपनी पहली पसंद सहेजना

पैकेज जुड़ जाने के बाद, आप डेटा सहेजना शुरू कर सकते हैं। आपको SharedPreferences का एक इंस्टेंस प्राप्त करना होगा और फिर setBool(), setString() जैसी विधियों का उपयोग करना होगा।

await का उपयोग करना याद रखें, क्योंकि ये संचालन अतुल्यकालिक हैं!

import 'package:shared_preferences/shared_preferences.dart';

Future<void> saveSetting() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  await prefs.setBool('isDarkMode', true);
  print('Dark mode setting saved!');
}

चलाकर देखें: बूलियन सहेजना

यह देखने के लिए इस उदाहरण को चलाकर देखें कि बूलियन वैल्यू कैसे सहेजी जाती है। हम 'welcomeShown' फ़्लैग को true पर सेट करेंगे।

import 'package:flutter/widgets.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized(); 
  SharedPreferences prefs = await SharedPreferences.getInstance();

  // Save a boolean value
  await prefs.setBool('welcomeShown', true);
  print('welcomeShown saved: ${prefs.getBool('welcomeShown')}');
}

सहेजा गया डेटा प्राप्त करना

डेटा वापस प्राप्त करने के लिए, आप संबंधित get विधियों, जैसे getBool(), getString() आदि का उपयोग करते हैं। ये विधियाँ नल-योग्य प्रकार लौटाती हैं (जैसे bool?), क्योंकि हो सकता है कि कुंजी मौजूद न हो।

यदि कुंजी नहीं मिलती है, तो ?? ऑपरेटर का उपयोग करके डिफ़ॉल्ट वैल्यू देना अच्छी प्रथा है।

import 'package:shared_preferences/shared_preferences.dart';

Future<bool> getSetting() async {
  SharedPreferences prefs = await SharedPreferences.getInstance();
  // Get 'isDarkMode', default to false if not found
  bool isDark = prefs.getBool('isDarkMode') ?? false;
  return isDark;
}

चलाकर देखें: बूलियन लोड करना

आइए पहले सहेजी गई welcomeShown पसंद को लोड करें। ध्यान दीजिए कि यदि यह मौजूद न हो, तो हम false की डिफ़ॉल्ट वैल्यू देकर उस स्थिति को कैसे संभालते हैं।

import 'package:flutter/widgets.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  SharedPreferences prefs = await SharedPreferences.getInstance();

  // Load 'welcomeShown', default to false if not present
  bool welcomeShown = prefs.getBool('welcomeShown') ?? false;
  print('Is welcome screen already shown? $welcomeShown');

  // Let's try to load a key that doesn't exist
  String? userName = prefs.getString('userName');
  print('User Name: ${userName ?? 'Guest'}');
}

अन्य डेटा प्रकार सहेजना

shared_preferences कई बुनियादी डेटा प्रकारों का समर्थन करता है:

  • setString(key, value) पाठ के लिए
  • setInt(key, value) पूर्ण संख्याओं के लिए
  • setDouble(key, value) दशमलव संख्याओं के लिए
  • setStringList(key, value) स्ट्रिंग की सूचियों के लिए

प्रत्येक प्रकार के लिए संबंधित get विधियाँ उपलब्ध हैं।

चलाकर देखें: मिश्रित डेटा सहेजना

यह उदाहरण स्ट्रिंग, पूर्णांक और स्ट्रिंग की सूची को सहेजने और लोड करने का तरीका दिखाता है। देखें कि अलग-अलग प्रकारों को कैसे संभाला जाता है।

import 'package:flutter/widgets.dart';
import 'package:shared_preferences/shared_preferences.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  SharedPreferences prefs = await SharedPreferences.getInstance();

  // Save different data types
  await prefs.setString('userName', 'Coddy');
  await prefs.setInt('score', 12345);
  await prefs.setStringList('favoriteFoods', ['Pizza', 'Sushi', 'Tacos']);
  print('All data saved!');

  // Load and print them
  String? name = prefs.getString('userName');
  int? score = prefs.getInt('score');
  List<String>? foods = prefs.getStringList('favoriteFoods');

  print('User Name: ${name ?? 'N/A'}');
  print('Score: ${score ?? 0}');
  print('Favorite Foods: ${foods ?? []}');
}

प्राथमिकताएँ हटाना

आप सहेजी गई प्राथमिकताओं को हटा भी सकते हैं:

  • remove(key): किसी खास कुंजी-मान युग्म को हटाता है।
  • clear(): shared_preferences का उपयोग करके आपके ऐप द्वारा सहेजे गए ALL डेटा को हटाता है। सावधानी से उपयोग करें!

दोनों विधियाँ अतुल्यकालिक हैं और सफलता दर्शाने वाला Future<bool> लौटाती हैं।

त्वरित जाँच

आप उपयोगकर्ता की पसंदीदा भाषा सहेजना चाहते हैं, जो 'en_US' या 'es_ES' जैसी एकल स्ट्रिंग है। इस डेटा को सहेजने के लिए कौन-सी shared_preferences विधि सबसे उपयुक्त है?

पुनरावृत्ति और अगले चरण

बहुत अच्छा! आपने सीखा कि अपने Flutter ऐप्लिकेशन में छोटे और सरल डेटा को स्थानीय रूप से सहेजने और प्राप्त करने के लिए shared_preferences का उपयोग कैसे किया जाता है।

  • यह उपयोगकर्ता की सेटिंग और प्राथमिकताओं के लिए आदर्श है।
  • यह बुनियादी प्रकारों का समर्थन करता है: bool, int, double, string और List<String>।
  • संचालन अतुल्यकालिक होते हैं (await का उपयोग करें)।
  • डेटा प्राप्त करते समय null मानों को संभालना याद रखें।

अब आप SQLite डेटाबेस के साथ अधिक संरचित डेटा संग्रहण का अध्ययन करेंगे!

शुरुआत निःशुल्क

एआई शिक्षक के साथ Dart सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
22
पाठ
88

अक्सर पूछे जाने वाले प्रश्न

क्या “डेटा के लिए Shared Preferences” पाठ निःशुल्क है?

हाँ — Flutter मोबाइल विकास अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “डेटा के लिए Shared Preferences” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Flutter मोबाइल विकास पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“डेटा के लिए Shared Preferences” में मैं क्या सीखूँगा?

उपयोगकर्ता सेटिंग और प्राथमिकताओं जैसी छोटी मात्रा में डेटा को स्थानीय रूप से कुंजी-मूल्य युग्मों में संग्रहीत करने के लिए `shared_preferences` का उपयोग करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Flutter मोबाइल विकास का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Flutter मोबाइल विकास शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Flutter मोबाइल विकास शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“डेटा के लिए Shared Preferences” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Flutter मोबाइल विकास पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Flutter मोबाइल विकास पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. डेटा के लिए Shared Preferences
  2. SQLite डेटाबेस एकीकरण
  3. फ़ाइल सिस्टम संचालन
  4. Hive और NoSQL स्थानीय संग्रहण
← Flutter मोबाइल विकास पर वापस जाएँ