Today Widget एक iOS एक्सटेंशन है जो नोटिफिकेशन सेंटर या “Today” स्क्रीन पर इंटरैक्टिव जानकारी प्रदर्शित करता है। उपयोगकर्ता मुख्य ऐप खोले बिना नवीनतम डेटा — मौसम, विनिमय दर, कैलेंडर — देखता है। Apple WWDC (2025) के अनुसार, iOS 17 में इंटरैक्टिव विजेट शुरू होने के बाद WidgetKit के उपयोग में 40% की वृद्धि हुई। Today Widget जानकारी तक त्वरित पहुँच की समस्या को हल करता है: स्क्रीन पर एक नज़र — और उपयोगकर्ता बिना ऐप में नेविगेट किए आवश्यक डेटा प्राप्त करता है।
मुख्य बिंदु
Today Widget (जिसे नोटिफिकेशन सेंटर विजेट के रूप में भी जाना जाता है) एक iOS इंटरफ़ेस तत्व है जो ऐप लॉन्च किए बिना उसकी संक्षिप्त जानकारी प्रदर्शित करता है। उपयोगकर्ता लॉक स्क्रीन या होम स्क्रीन पर बाईं ओर स्वाइप करके विजेट देखता है। विजेट डायनामिक डेटा — विनिमय दर, नवीनतम समाचार, कार्य स्थिति, डिवाइस की स्थिति — दिखा सकता है।
ऐतिहासिक रूप से, Today Widget iOS 8 में नोटिफिकेशन सेंटर फ्रेमवर्क के माध्यम से कार्यान्वित नोटिफिकेशन सेंटर एक्सटेंशन के रूप में दिखाई दिया। iOS 14 के साथ, Apple ने WidgetKit पेश किया — एक पूरी तरह से पुनः डिज़ाइन की गई आर्किटेक्चर जो विजेट को सीधे होम स्क्रीन पर रखने की अनुमति देती है। आधुनिक अर्थों में Today Widget एक WidgetKit विजेट है जो “Today” सेक्शन (पहली स्क्रीन के बाईं ओर विजेट सेक्शन) में रखा जाता है।
मुख्य लक्ष्य जानकारी तक पहुँचने का समय कम करना है। ऐप खोलने, मेनू में नेविगेट करने और लोडिंग की प्रतीक्षा करने के बजाय, उपयोगकर्ता तुरंत आवश्यक डेटा देखता है। Apple (2024) के अनुसार, विजेट वाले ऐप 27% अधिक उपयोगकर्ता जुड़ाव दिखाते हैं। अतिरिक्त उपयोग के मामले: त्वरित कार्रवाई (कार्य को पूर्ण के रूप में चिह्नित करना), निगरानी (हृदय गति, गतिविधि) और स्थिति (बैटरी चार्ज, सूचनाएं)।
Today Widget डेवलपर के पास दो दृष्टिकोण उपलब्ध हैं: आधुनिक WidgetKit (iOS 14+) और लीगेसी NCWidgetProviding एक्सटेंशन (iOS 8–13)। चयन न्यूनतम समर्थित iOS संस्करण पर निर्भर करता है। WidgetKit नए प्रोजेक्ट के लिए अनुशंसित है, NCWidgetProviding पुराने उपकरणों के समर्थन के लिए।
| विशेषता | WidgetKit | NCWidgetProviding |
|---|---|---|
| न्यूनतम iOS | iOS 14 | iOS 8 |
| स्थान | होम स्क्रीन + “Today” | केवल “Today” |
| आकार | छोटा, मध्यम, बड़ा | एक निश्चित आकार |
| इंटरैक्टिविटी | iOS 17+ बटन और टॉगल | केवल ऐप खोलना |
| अपडेट | Timeline Provider | widgetPerformUpdate |
| भाषा | SwiftUI | UIKit |
यदि आपका ऐप iOS 14 और नए को सपोर्ट करता है — WidgetKit का उपयोग करें। यह समृद्ध क्षमताएं प्रदान करता है: कई आकार, intents के माध्यम से कॉन्फ़िगरेशन, iOS 17 के साथ रीडिज़ाइन और डीप लिंक। SwiftUI की घोषणात्मकता विजेट कोड को कॉम्पैक्ट और पढ़ने योग्य बनाती है। Timeline Provider बिजली खपत को ध्यान में रखते हुए स्वचालित रूप से अपडेट शेड्यूल का प्रबंधन करता है।
केवल यदि iOS 9–13 समर्थन आवश्यक हो। NCWidgetProviding लागू करना सरल है — यह एक प्रोटोकॉल के साथ एक सामान्य UIViewController है। हालांकि, यह सीमित है: एक एकल आकार, केवल UIKit, कोई कॉन्फ़िगरेशन नहीं। Apple पुराने प्रोजेक्ट के लिए भी availability check का उपयोग करके WidgetKit पर स्विच करने की अनुशंसा करता है: iOS 14+ पर WidgetKit, फ़ॉलबैक के रूप में NCWidgetProviding।
आधुनिक iOS में, कार्यात्मक उद्देश्य के अनुसार तीन प्रकार के विजेट हैं। प्रत्येक प्रकार अपनी समस्या को हल करता है और डेटा और इंटरफ़ेस डिज़ाइन के लिए एक अलग दृष्टिकोण की आवश्यकता होती है। वर्गीकरण आपके ऐप के लिए सही आर्किटेक्चर चुनने में मदद करता है।
स्थिर या समय-समय पर अपडेट की जाने वाली जानकारी प्रदर्शित करते हैं: मौसम, तारीख, विनिमय दर, सर्वर स्थिति। Timeline Provider के माध्यम से शेड्यूल पर डेटा अपडेट किया जाता है। उपयोगकर्ता विजेट के साथ इंटरैक्ट नहीं करता — केवल पढ़ता है। सूचनात्मक विजेट लागू करने में सबसे सरल हैं, टच इवेंट हैंडलिंग की आवश्यकता नहीं है और अतिरिक्त अनुमतियों के बिना बैकग्राउंड में काम करते हैं।
iOS 17 के साथ, WidgetKit विजेट में बटन, टॉगल और स्लाइडर को सपोर्ट करता है। उपयोगकर्ता ऐप खोले बिना कार्रवाई कर सकता है — कार्य चिह्नित करना, संगीत रोकना, लाइट चालू करना। इंटरैक्टिव विजेट मुख्य ऐप में कार्रवाई पहुँचाने के लिए App Intents का उपयोग करते हैं। सीमा: केवल होम स्क्रीन पर, iOS 18 तक “Today” सेक्शन में नहीं।
उपयोगकर्ता सिस्टम इंटरफ़ेस के माध्यम से प्रदर्शित डेटा को अनुकूलित करता है — मौसम के लिए शहर, वित्त के लिए खाता, समाचार के लिए श्रेणी चुनता है। Intents Extension और WidgetBundle में कॉन्फ़िगरेशन के माध्यम से कार्यान्वित किया जाता है। कॉन्फ़िगरेबल विजेट प्रत्येक उपयोगकर्ता के लिए वैयक्तिकरण और जानकारी की प्रासंगिकता बढ़ाते हैं।
आइए WidgetKit का उपयोग करके SwiftUI में Today Widget बनाने की प्रक्रिया देखें। विजेट स्वचालित अपडेट के साथ वर्तमान विनिमय दर प्रदर्शित करेगा। WidgetKit को तीन घटकों की आवश्यकता है: विजेट संरचना, कॉन्फ़िगरेशन के साथ Provider, और प्रदर्शन के लिए View।
import WidgetKit
import SwiftUI
@main
struct CurrencyWidget: Widget {
let kind: String = "CurrencyWidget"
var body: some WidgetConfiguration {
StaticConfiguration(kind: kind, provider: Provider()) { entry in
CurrencyWidgetEntryView(entry: entry)
}
.configurationDisplayName("Currency Rate")
.description("Current USD/RUB exchange rate")
.supportedFamilies([.systemSmall, .systemMedium])
}
}
Provider प्रदर्शन के लिए डेटा तैयार करने के लिए जिम्मेदार है। getTimeline विधि एक अपडेट शेड्यूल बनाती है: 15 मिनट में अगला अपडेट। TimelineProvider सुनिश्चित करता है कि विजेट सर्वर से लगातार पूछताछ किए बिना नवीनतम डेटा दिखाता है।
struct Provider: TimelineProvider {
func getSnapshot(in context: Context,
completion: @escaping (CurrencyEntry) -> Void) {
let entry = CurrencyEntry(date: Date(), rate: 92.5)
completion(entry)
}
func getTimeline(in context: Context,
completion: @escaping (Timeline<CurrencyEntry>) -> Void) {
let rate = CurrencyService().fetchRate()
let entry = CurrencyEntry(date: Date(), rate: rate)
let nextUpdate = Calendar.current.date(
byAdding: .minute, value: 15, to: Date()
) ?? Date()
let timeline = Timeline(entries: [entry], policy: .after(nextUpdate))
completion(timeline)
}
}
Timeline Provider Today Widget डेटा प्रबंधित करने के लिए केंद्रीय WidgetKit तंत्र है। टाइमर द्वारा आवधिक अपडेट (पुराने NCWidgetProviding की तरह) के बजाय, WidgetKit timeline की अवधारणा का उपयोग करता है — टाइमस्टैम्प के साथ प्रविष्टियों का अनुक्रम। सिस्टम वर्तमान प्रविष्टि को तब तक प्रदर्शित करता है जब तक वह समाप्त नहीं हो जाती, फिर अगली पर स्विच करता है या नई प्रविष्टि का अनुरोध करता है।
Timeline तीन नीतियों का समर्थन करता है: .after(date) — निर्दिष्ट तिथि पर अगला अपडेट; .never — WidgetCenter.reloadAllTimelines के स्पष्ट कॉल तक विजेट अपडेट नहीं होता; .atEnd — अंतिम प्रविष्टि प्रदर्शित करने के बाद अपडेट। विनिमय दर वाले Today Widget के लिए, 15–30 मिनट के अंतराल के साथ .after नीति इष्टतम है। ऊर्जा दक्षता WidgetKit का एक प्रमुख लाभ है: सिस्टम सभी विजेट के अपडेट को एक विंडो में समूहित करता है।
यदि timeline समाप्त होने से पहले डेटा बदल गया (उदाहरण के लिए, उपयोगकर्ता ने ऐप में दर अपडेट की), तो WidgetCenter.shared.reloadTimelines(ofKind: “CurrencyWidget”) कॉल करें। यह Provider से नया timeline अनुरोध करेगा और प्रदर्शन अपडेट करेगा। WidgetCenter एक कमांड से सभी ऐप विजेट को रीलोड करने की भी अनुमति देता है — डेटा सिंक्रनाइज़ेशन के बाद सुविधाजनक।
Apple Today Widget डिज़ाइन पर सख्त आवश्यकताएं लगाता है: सामग्री एक नज़र में पढ़ने योग्य होनी चाहिए, बिना अनावश्यक तत्वों के और स्पष्ट पदानुक्रम के साथ। HIG (Human Interface Guidelines) अनुशंसाओं का उल्लंघन App Store पर प्रकाशित करते समय अस्वीकृति का कारण है। तीन सिद्धांत: त्वरित दृश्यता, स्थिरता और पदानुक्रम।
उपयोगकर्ता विजेट पर एक सेकंड से भी कम समय बिताता है। 3–4 से अधिक डेटा तत्व न जोड़ें। फ़ॉन्ट — लेबल के लिए न्यूनतम 11pt, मानों के लिए 17pt। मुख्य संख्याओं के लिए बोल्ड (Semibold) का उपयोग करें। स्क्रॉलिंग से बचें — Today Widget स्क्रॉल नहीं होता।
WidgetKit तीन आकारों का समर्थन करता है: छोटा (170×170pt), मध्यम (364×170pt), बड़ा (364×382pt)। “Today” सेक्शन में Today Widget के लिए, मध्यम सबसे सामान्य विकल्प है। EnvironmentValues के माध्यम से अनुकूली डिज़ाइन: आकार के अनुसार सूचना घनत्व बदलें। छोटा — एक संख्या, मध्यम — संख्या + चार्ट, बड़ा — तालिका।
विजेट को डेवलपर की अतिरिक्त कार्रवाई के बिना हल्के और गहरे थीम में सही ढंग से प्रदर्शित होना चाहिए — WidgetKit स्वचालित रूप से सिस्टम रंगों को पकड़ता है। विजेट के लिए Dynamic Type सीमित है: फ़ॉन्ट आकार निश्चित है, लेकिन पढ़ने योग्य होना चाहिए। UIColor.label और UIColor.systemBackground दोनों थीम में टेक्स्ट और बैकग्राउंड के लिए आधार रंग हैं।
अक्सर पूछे जाने वाले प्रश्न
आज यह एक ही WidgetKit विजेट है। अंतर केवल स्थान में है: होम स्क्रीन पर और “Today” सेक्शन में (पहली स्क्रीन के बाईं ओर)। iOS 14 से पहले, Today Widget एक अलग NCWidgetProviding एक्सटेंशन था जो केवल नोटिफिकेशन सेंटर में काम करता था। अब यह एक एकल WidgetKit है।
WidgetKit टाइमर द्वारा विजेट अपडेट नहीं करता। डेवलपर Timeline Provider के माध्यम से शेड्यूल सेट करता है: टाइमस्टैम्प वाली प्रविष्टियां। सिस्टम बिजली बचत को ध्यान में रखते हुए निर्दिष्ट समय पर अपडेट की गारंटी देता है — कुछ मिनट विलंब हो सकता है। न्यूनतम अंतराल 15 मिनट है, लेकिन Apple प्रति घंटे एक बार से अधिक नहीं करने की अनुशंसा करता है।
हां, iOS 17 से शुरू होकर, WidgetKit App Intents के माध्यम से बटन, टॉगल और स्लाइडर का समर्थन करता है। इंटरैक्टिव तत्व iPhone और iPad होम स्क्रीन पर काम करते हैं। “Today” सेक्शन में समर्थन iOS 18 में दिखाई दिया। iOS 16 और पुराने के लिए — विजेट पर टैप करने पर केवल ऐप खुलता है।
कोई सीमा नहीं है। एक ऐप WidgetBundle के माध्यम से किसी भी संख्या में विजेट पंजीकृत कर सकता है — प्रत्येक अपने प्रकार, आकार और कॉन्फ़िगरेशन के साथ। उपयोगकर्ता उन्हें अलग-अलग जोड़ता है। अनुशंसित 3–5 से अधिक विजेट न हों ताकि उपयोगकर्ता की पसंद पर बोझ न पड़े।
WidgetKit iOS Simulator में पूरी तरह से समर्थित है। Xcode में WidgetKit target स्कीम चलाएं — विजेट सिम्युलेटर की होम स्क्रीन पर दिखाई देगा। Timeline Provider के परीक्षण के लिए, WidgetKit Debug Profile का उपयोग करें: Xcode → Product → Profile → WidgetKit Debug। भौतिक डिवाइस पर वास्तविक व्यवहार जांचें।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।
यह भी पढ़ें