0Pricing
Kotlin Multiplatform Academy · Урок

Области 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 включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Объявление общего модуля Koin
  2. Области single и factory
  3. Запуск Koin на Android и iOS
  4. Внедрение в ViewModels и репозитории
← Назад к Kotlin Multiplatform Academy