Как в Koin определяется время жизни объекта

«Как в Koin определяется время жизни объекта» — вопрос из категории DI, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Koin время жизни объекта определяется через его scope. Объекты могут быть:

  1. Singleton - создается один раз и живет всё время работы приложения:
single { MySingleton() }
  1. Factory - создается новый экземпляр при каждом запросе:
factory { MyFactory() }
  1. Scoped - живет в рамках определенного scope (например, активити или фрагмента):
scope<MyActivity> {
    scoped { MyScopedObject() }
}

Также можно создавать кастомные scope с помощью createScope() и закрывать их через close(). Объекты внутри scope уничтожаются при закрытии scope.