SwiftyUserDefaults क्या है और इसकी आवश्यकता क्यों है?
SwiftyUserDefaults Swift में UserDefaults क्लास के लिए एक हल्की लेकिन शक्तिशाली रैपर लाइब्रेरी है। अगर आपने कभी सीधे UserDefaults के साथ काम किया है, तो आप जानते हैं कि यह कितना थकाऊ हो सकता है: वैल्यू सेव और निकालने के लिए बहुत सारा बॉयलरप्लेट कोड लिखना पड़ता है, डेटा टाइप स्पष्ट रूप से बताना होता है, स्ट्रिंग कीज़ का उपयोग करना होता है (जिसमें टाइपिंग की गलती हो सकती है) और ऑप्शनल वैल्यू को हैंडल करना होता है।
SwiftyUserDefaults इन सभी समस्याओं को हल करती है। यह प्रदान करती है:
- स्टैटिक टाइपिंग: कंपाइलर टाइप चेक करता है, जिससे रनटाइम एरर खत्म हो जाते हैं।
- ग्लोबल एक्सेस: सुविधाजनक
Defaultsप्रॉपर्टी के ज़रिए वैल्यू तक पहुंच। - कस्टम टाइप्स के लिए सपोर्ट:
DefaultsSerializableप्रोटोकॉल लागू करके अपनी स्ट्रक्चर और क्लासेज को सेव कर सकते हैं। - सिंटैक्स शुगर: UserDefaults के साथ काम करना सामान्य प्रॉपर्टीज की तरह आसान हो जाता है।
- सुरक्षा: स्ट्रिंग की में टाइपिंग गलती का जोखिम खत्म हो जाता है।
यह लाइब्रेरी छोटे डेटा को स्टोर करने के लिए आदर्श है: ऐप सेटिंग्स, यूज़र इंटरफ़ेस की स्थिति, ऑथेंटिकेशन टोकन आदि। यह बड़े डेटा सेट के लिए नहीं है — इसके लिए Core Data, Realm या फ़ाइलों का उपयोग करें।
इंस्टॉलेशन
SwiftyUserDefaults Swift Package Manager (SPM), CocoaPods और Carthage के ज़रिए उपलब्ध है। आइए दो सबसे लोकप्रिय तरीकों को देखें।
Swift Package Manager (अनुशंसित)
- Xcode में मेन्यू खोलें:
File → Add Packages... - रिपॉजिटरी URL डालें:
https://github.com/sunshinejr/SwiftyUserDefaults.git - वर्जन चुनें (नवीनतम स्थिर वर्जन अनुशंसित है) और
Add Packageपर क्लिक करें। - सुनिश्चित करें कि पैकेज आपके टार्गेट में जुड़ गया है।
CocoaPods
अपने Podfile में जोड़ें:
target 'YourAppTarget' do
use_frameworks!
pod 'SwiftyUserDefaults', '~> 5.3'
end
फिर pod install चलाएं।
इंस्टॉलेशन के बाद, ज़रूरी फ़ाइल में लाइब्रेरी को इम्पोर्ट करें:
import SwiftyUserDefaults
त्वरित शुरुआत
चलिए सीधे कोड पर आते हैं। यहां देखिए कि SwiftyUserDefaults के बिना और साथ UserDefaults का उपयोग कैसा दिखता है।
SwiftyUserDefaults के बिना (सामान्य तरीका)
// सेव करना
UserDefaults.standard.set("Rahul", forKey: "user_name")
UserDefaults.standard.set(25, forKey: "user_age")
UserDefaults.standard.set(true, forKey: "is_logged_in")
// पढ़ना
let name = UserDefaults.standard.string(forKey: "user_name") ?? ""
let age = UserDefaults.standard.integer(forKey: "user_age")
let isLoggedIn = UserDefaults.standard.bool(forKey: "is_logged_in")
SwiftyUserDefaults के साथ
// कीज़ को परिभाषित करें (एक अलग फ़ाइल में कर सकते हैं)
extension DefaultsKeys {
var userName: DefaultsKey<String> { .init("user_name") }
var userAge: DefaultsKey<Int> { .init("user_age") }
var isLoggedIn: DefaultsKey<Bool> { .init("is_logged_in") }
}
// सेव करना
Defaults[\.userName] = "Rahul"
Defaults[\.userAge] = 25
Defaults[\.isLoggedIn] = true
// पढ़ना
let name: String = Defaults[\.userName]
let age: Int = Defaults[\.userAge]
let isLoggedIn: Bool = Defaults[\.isLoggedIn]
print("\(name) की उम्र \(age) साल है। लॉग इन: \(isLoggedIn)")
जैसा कि आप देख सकते हैं, कोड साफ हो गया है, टाइप कंपाइल टाइम पर चेक हो जाते हैं, और कीज़ एक ही जगह परिभाषित हैं।
मुख्य तरीके और फंक्शन
आइए लाइब्रेरी की 10 प्रमुख क्षमताओं को उदाहरणों के साथ देखें।
1. Defaults[\.key] — वैल्यू प्राप्त करना और सेट करना
क्या करता है: वैल्यू तक पहुंचने का मुख्य तरीका।
पुस्तकालय में भी
C++ के लिए Swagger/OpenAPI जनरेशन: टूल्स और लाइब्रेरीज़ का अवलोकन
Go (Golang) के लिए CLI फ्रेमवर्क: पूर्ण अवलोकन और तुलना
Go में ZIP आर्काइव के साथ काम करना: archive/zip पैकेज की पूरी गाइड
Quartz.NET C# (.NET) पूर्ण गाइड: शेड्यूलिंग, उदाहरण और ट्यूटोरियल