نطاقا single وfactory
اختيار النسخ المفردة أو النسخ الجديدة
نطاقا single وfactory درس مجاني في Kotlin Multiplatform Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Kotlin Multiplatform Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Kotlin Multiplatform Academy 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
Two Ways to Build
Koin gives you two main definition keywords: single and factory. They differ in one thing, how often Koin builds the object.
single Means One Instance
A single is created once and shared everywhere. Every part of your app that asks for it receives the very same object. 🔁
single { UserRepository(get()) }factory Means Fresh Each Time
A factory builds a brand new instance on every request. Nothing is cached, so two callers never share the same object.
factory { ProfileUseCase(get()) }When to Pick single
Use single for things that hold state or are expensive to build, like a repository, an HTTP client, or a database driver.
When to Pick factory
Reach for factory when each caller wants its own short-lived object, such as a stateless use case or a one-shot mapper.
single Is Lazy by Default
A single is not built when you declare it. Koin creates it the first time something actually asks for it, then keeps it around.
Force Eager Creation
Need a single ready at startup instead of on first use? Add createdAtStart so Koin builds it the moment the container starts.
single(createdAtStart = true) { Analytics() }Mixing Them in a Graph
A single repository can depend on a factory mapper. Koin happily mixes scopes, building the factory fresh inside the long-lived single.
Watch Out for Shared State
If you make something single by mistake, callers may share state you meant to keep private, a classic source of subtle multiplatform bugs.
A Practical Module
Here a long-lived repository and a fresh use case live side by side, each scoped to match how it is used.
module {
single { UserRepository(get()) }
factory { LoginUseCase(get()) }
}Default to single
When unsure, start with single. Most app-wide services want one instance, and you can switch to factory the moment you truly need fresh objects.
Quick Check
Pick the right scope behavior.
Recap
You learned that single shares one instance while factory builds a new one each time. Pick single for shared services, factory for short-lived helpers. 👍
الأسئلة الشائعة
هل درس «نطاقا single وfactory» مجاني؟
نعم — نص درس «نطاقا single وfactory» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Kotlin Multiplatform Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Kotlin Multiplatform Academy 4 دروس في المجموع.
ماذا ستتعلم في «نطاقا single وfactory»؟
اختيار النسخ المفردة أو النسخ الجديدة تتمرن على Kotlin Multiplatform Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Kotlin Multiplatform Academy؟
لا تُشترط خبرة سابقة. Kotlin Multiplatform Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «نطاقا single وfactory»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Kotlin Multiplatform Academy هذا؟
نعم. كل درس في Kotlin Multiplatform Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- تعريف وحدة Koin مشتركة
- نطاقا single وfactory
- بدء Koin في Android وiOS
- حقن الاعتماديات في ViewModels وRepos