SnapKit क्या है और इसकी ज़रूरत क्यों है?
SnapKit एक शक्तिशाली और सुंदर DSL (Domain-Specific Language) लाइब्रेरी है जो iOS, macOS, tvOS और watchOS ऐप्स में Auto Layout के साथ काम करने के लिए Swift में लिखी गई है। अगर आपने कभी Apple के स्टैंडर्ड API का उपयोग करके मैन्युअल रूप से constraints (बाधाएँ) लिखी हैं, तो आप जानते हैं कि यह कितना लंबा और पढ़ने में मुश्किल हो सकता है। SnapKit इस समस्या को हल करता है, एक साफ और सहज सिंटैक्स प्रदान करके जो कोड को सामान्य अंग्रेजी जैसा बनाता है।
SnapKit की ज़रूरत क्यों है?
- कोड पढ़ने में आसानी: लंबी
NSLayoutConstraint(item:attribute:relatedBy:toItem:attribute:multiplier:constant:)चेन के बजाय आप लिखते हैंview.snp.makeConstraints { $0.center.equalToSuperview() }। - डेवलपमेंट स्पीड: कोड छोटा और समझने में आसान होने से लेआउट बनाना तेज़ हो जाता है।
- टाइप सेफ्टी: SnapKit Swift की सख्त टाइपिंग का उपयोग करता है, जिससे रनटाइम एरर की संभावना कम हो जाती है।
- लचीलापन: Auto Layout की सभी सुविधाएँ सपोर्ट करता है: प्राथमिकताएँ, अनुपात, constraints को अपडेट और ओवरराइड करना।
- सक्रिय समुदाय: यह लाइब्रेरी इंडस्ट्री में व्यापक रूप से उपयोग की जाती है, इसकी बेहतरीन डॉक्यूमेंटेशन और ढेरों उदाहरण हैं।
SnapKit इंस्टॉलेशन
SnapKit को Swift के लोकप्रिय डिपेंडेंसी मैनेजरों में से किसी एक का उपयोग करके इंस्टॉल किया जा सकता है। नीचे Swift Package Manager (SPM) और CocoaPods के लिए निर्देश दिए गए हैं।
1. Swift Package Manager (अनुशंसित तरीका)
SPM Xcode में बिल्ट-इन पैकेज मैनेजर है। यह सबसे आसान और आधुनिक तरीका है।
- Xcode में अपना प्रोजेक्ट खोलें।
- File → Add Packages... पर जाएँ।
- सर्च बॉक्स में SnapKit का रिपॉजिटरी URL डालें:
https://github.com/SnapKit/SnapKit.git - मनचाहा वर्शन चुनें (नवीनतम स्थिर वर्शन अनुशंसित है) और Add Package पर क्लिक करें।
- सुनिश्चित करें कि पैकेज आपके टार्गेट में जुड़ गया है।
2. CocoaPods
अगर आप CocoaPods का उपयोग करते हैं, तो अपने Podfile में यह लाइन जोड़ें:
platform :ios, '12.0'
use_frameworks!
target 'YourAppTarget' do
pod 'SnapKit', '~> 5.6.0'
end
फिर अपने प्रोजेक्ट फोल्डर में टर्मिनल में pod install कमांड चलाएँ।
3. Carthage (कम लोकप्रिय)
Cartfile में जोड़ें:
github "SnapKit/SnapKit" ~> 5.6.0
carthage update चलाएँ और फ्रेमवर्क को प्रोजेक्ट में जोड़ें।
कोड उदाहरण के साथ त्वरित शुरुआत
चलिए एक सरल स्क्रीन बनाते हैं जिसमें स्क्रीन के बीच में एक लाल रंग का वर्ग हो। यह लेआउट के लिए क्लासिक "Hello, World!" है।
import UIKit
import SnapKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
setupUI()
}
private func setupUI() {
// 1. View बनाएँ
let redView = UIView()
redView.backgroundColor = .red
view.addSubview(redView)
// 2. लेआउट के लिए SnapKit लागू करें
redView.snp.makeConstraints { make in
make.center.equalToSuperview() // पैरेंट के सापेक्ष केंद्रित करें
make.width.height.equalTo(100) // चौड़ाई और ऊँचाई = 100
}
}
}
यहाँ क्या हो रहा है?
redView.snp.makeConstraints— SnapKit DSL में प्रवेश बिंदु है।snpएक विशेष प्रॉपर्टी है जिसे SnapKit सभी UIView में जोड़ता है।- क्लोज़र के अंदर हमें
make(ConstraintMaker) ऑब्जेक्ट मिलता है, जिसके द्वारा हम constraints का वर्णन करते हैं। make.center.equalToSuperview()— कहता है: "इस view के केंद्र को इसके सुपरव्यू के केंद्र के बराबर करो"