सार्वजनिक जानकारी से बना चयन मार्गदर्शन। केवल संदर्भ हेतु।
Koin एक हल्का, सामर्थ्यपूर्ण डार्ट प्रोजेक्ट के लिए निर्भरता इंजेक्शन (DI) फ्रेमवर्क है, जिसका उद्देश्य एप्लिकेशन में निर्भरताओं के प्रबंधन को सरल बनाना है। यह निर्भरताओं को परिभाषित और इंजेक्ट करने के लिए एक स्पष्ट और संक्षिप्त वाक्य रचना प्रदान करता है, जो मॉड्यूलरता और परीक्षण क्षमता को बढ़ावा देता है। Koin फंक्शनल और क्लास-आधारित घटकों दोनों का समर्थन करता है, जिससे विकासकर्ता सिंगलटन, फैक्ट्री और स्कोप्ड इंस्टेंस को आसानी से प्रबंधित कर सकते हैं। न्यूनतम बॉयलरप्लेट के साथ, यह फ्लटर और अन्य डार्ट एप्लिकेशन में बिना किसी बाधा के एकीकृत होता है, जिससे यह विस्तारशील और बनाए रखने योग्य कोडबेस के लिए आदर्श है।
उपयोग
एप्लिकेशन-वाइड निर्भरताओं का प्रबंधन
मॉक निर्भरता के साथ परीक्षण
बड़े पैमाने वाले एप्लिकेशन को मॉड्यूलर करना
सेवा इन्स्टेंटिएशन को सरल बनाना
विभिन्न परिवेशों (डेव, प्रॉड) का समर्थन करना
चिंता के स्पष्ट विभाजन को सक्षम करना
मुख्य विशेषताएँ
न्यूनतम बॉयलरप्लेट
कार्यात्मक और वर्ग-आधारित परिभाषाएँ
सिंगलटन, फैक्टरी, और स्कोप्ड बाइंडिंग
निर्भरता प्रतिस्थापन के साथ आसान परीक्षण
लेट इनिशियलाइजेशन के लिए बिल्ट-इन सपोर्ट
हल्का और तेज़ रनटाइम
इनके लिए उपयुक्त
सरल डीआई की तलाश में फ्लटर विकासकर्मी
मॉड्यूलर आर्किटेक्चर की आवश्यकता वाले प्रोजेक्ट
परीक्षण क्षमता पर ध्यान केंद्रित टीमें
जटिल निर्भरता ग्राफ वाले अनुप्रयोग
बड़े डीआई फ्रेमवर्क के लिए हल्के विकल्प चाहने वाले विकासकर्ता
विचार योग्य बातें
परिपक्व फ्रेमवर्क की तुलना में सीमित दस्तावेज़न
छोटा समुदाय आकार
कोई निर्मित अवस्था प्रबंधन नहीं
कस्टमाइजेशन के बिना बहुत बड़े एंटरप्राइज एप्लिकेशन के लिए उपयुक्त नहीं
उपयोग के लिए आदर्श उपयोग के लिए डीआई अवधारणाओं की समझ आवश्यक है
मूल README
संबंधित सोर्स रिपॉज़िटरी के मूल README का स्नैपशॉट। नवीनतम सामग्री के लिए रिपॉज़िटरी देखें।
Koin.dart
An pragmatic and flexible lightweight dependency injection library. This is a port of Koin for Dart projects.
Written in pure Dart, using functional resolution only: no code generation, no reflection.
// Given some classes classBloc{
finalRepository service;
Bloc(this.service);
get state => "Hello";
}
classRepository{}
// just declare your providers(definitions)final myModule = Module()
// Declare a single provider(definition) for Bloc class
..single((s) => Bloc(s.get()))
// Declare a single provider(definition) for Repository class
..single((s) => Repository());
Starting Koin
Use the startKoin() function to start Koin in your application.