कोऑर्डिनेटर पैटर्न
नेविगेशन प्रवाह के तर्क को केंद्रीकृत कीजिए।
कोऑर्डिनेटर पैटर्न, CoddyKit पर Swift Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Swift Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
नेविगेशन की समस्या
जब व्यू सीधे दूसरे व्यू को पुश या प्रस्तुत करते हैं, तो नेविगेशन तर्क पूरे ऐप में बिखर जाता है। हर स्क्रीन को अगली स्क्रीन के बारे में जानना पड़ता है, जिससे कड़ा युग्मन बनता है।
समन्वयक पैटर्न नेविगेशन को समर्पित ऑब्जेक्ट में अलग करके इस समस्या को हल करता है।
समन्वयक क्या है
समन्वयक ऐसा ऑब्जेक्ट है जिसका एकमात्र काम नेविगेशन प्रवाह को संभालना है। यह तय करता है कि अगली स्क्रीन कौन-सी होगी और दिखाने के लिए नियंत्रक या व्यू बनाता है।
व्यू रूटिंग के बारे में अनजान हो जाते हैं — वे केवल घटनाओं का संकेत देते हैं और समन्वयक तय करता है कि क्या करना है।
समन्वयक प्रोटोकॉल
अधिकांश कार्यान्वयन एक छोटे प्रोटोकॉल से शुरू होते हैं, जिसका पालन हर समन्वयक करता है।
protocol Coordinator: AnyObject {
var childCoordinators: [Coordinator] { get set }
func start()
}एक ठोस समन्वयक
एक ठोस समन्वयक नेविगेशन नियंत्रक का स्वामी होता है और start() में पहली स्क्रीन बनाता है।
final class AppCoordinator: Coordinator {
var childCoordinators: [Coordinator] = []
let navigationController: UINavigationController
init(navigationController: UINavigationController) {
self.navigationController = navigationController
}
func start() {
let vc = HomeViewController()
navigationController.setViewControllers([vc], animated: false)
}
}व्यू को रूटिंग से अलग करना
मुख्य लाभ यह है कि कोई व्यू अब अगली स्क्रीन नहीं बनाता। इसके बजाय, वह अपने समन्वयक को बताता है कि कोई घटना हुई है और समन्वयक रूटिंग करता है।
इसका अर्थ है कि किसी स्क्रीन के कोड में बदलाव किए बिना उसे अलग-अलग प्रवाहों में दोबारा इस्तेमाल किया जा सकता है।
घटनाओं का ऊपर संकेत देना
व्यू अपने समन्वयक से delegate या क्लोज़र के ज़रिए संवाद करते हैं। व्यू को यह पता नहीं होता कि वह आगे कहाँ ले जाएगा।
protocol HomeViewControllerDelegate: AnyObject {
func homeDidSelectProfile()
}
final class HomeViewController: UIViewController {
weak var delegate: HomeViewControllerDelegate?
func profileTapped() {
delegate?.homeDidSelectProfile()
}
}मार्ग को संभालना
समन्वयक delegate का पालन करता है और घटना होने पर नेविगेट करने का तरीका तय करता है।
extension AppCoordinator: HomeViewControllerDelegate {
func homeDidSelectProfile() {
let profile = ProfileViewController()
navigationController.pushViewController(profile, animated: true)
}
}Child समन्वयक
बड़े प्रवाहों (ऑनबोर्डिंग, चेकआउट) के लिए अपने child समन्वयक होते हैं। मुख्य समन्वयक एक child को शुरू करता है और उसे childCoordinators में बनाए रखता है, ताकि वह सक्रिय रहे।
func startOnboarding() {
let child = OnboardingCoordinator(navigationController: navigationController)
childCoordinators.append(child)
child.start()
}मेमोरी लीक से बचना
क्योंकि मुख्य समन्वयक child को बनाए रखता है, इसलिए प्रवाह समाप्त होने पर आपको child को हटाना होगा, वरना मेमोरी लीक होगी। इसके लिए फ़िनिश कॉलबैक एक सामान्य तरीका है।
func childDidFinish(_ child: Coordinator) {
childCoordinators.removeAll { $0 === child }
}SwiftUI के साथ समन्वयक
SwiftUI में, समन्वयक अक्सर NavigationStack पथ को संचालित करते हैं। समन्वयक एक अवलोकन योग्य पथ का स्वामी होता है और व्यू उसमें मार्ग जोड़ते हैं।
final class Router: ObservableObject {
@Published var path: [Route] = []
func push(_ route: Route) {
path.append(route)
}
}
enum Route: Hashable { case profile, settings }लाभों का पुनरावलोकन
समन्वयक पैटर्न आपको देता है:
- दोबारा इस्तेमाल किए जा सकने वाले व्यू जो नेविगेशन को हार्डकोड नहीं करते
- केंद्रीकृत प्रवाह तर्क जिसे बदलना आसान है
- परीक्षण योग्य रूटिंग जो यूआई से अलग है
- संयोज्य प्रवाह child समन्वयकों के ज़रिए
त्वरित जाँच
समन्वयकों के बारे में अपनी समझ जाँचिए।
पुनरावलोकन
आपने समन्वयक पैटर्न सीखा:
- समन्वयक नेविगेशन के स्वामी होते हैं, जिससे व्यू रूटिंग से स्वतंत्र रहते हैं
- व्यू delegate या क्लोज़र के ज़रिए घटनाओं का ऊपर संकेत देते हैं
- Child समन्वयक अपने-अपने स्वतंत्र प्रवाहों का मॉडल बनाते हैं
- लीक से बचने के लिए प्रवाह समाप्त होने पर child को हटाएँ
MVVM के साथ मिलकर, समन्वयक एक साफ़ और परीक्षण योग्य आर्किटेक्चर को पूरा करते हैं।
एआई शिक्षक के साथ Swift सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 122
- पाठ
- 409
अक्सर पूछे जाने वाले प्रश्न
क्या “कोऑर्डिनेटर पैटर्न” पाठ निःशुल्क है?
हाँ — Swift Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “कोऑर्डिनेटर पैटर्न” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Swift Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“कोऑर्डिनेटर पैटर्न” में मैं क्या सीखूँगा?
नेविगेशन प्रवाह के तर्क को केंद्रीकृत कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Swift Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Swift Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Swift Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“कोऑर्डिनेटर पैटर्न” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Swift Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Swift Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- MVVM पैटर्न
- व्यू मॉडल को व्यू से बाँधना
- कोऑर्डिनेटर पैटर्न
- व्यू मॉडल का परीक्षण