All Versions
Latest Version
Avg Release Cycle
62 days
Latest Release
396 days ago

Changelog History
Page 4

  • v5.3.0 Changes

    October 03, 2018
    • CORE

      • Introducing non-synced singletons & multitons (can be used with the sync = false parameter).
    • NATIVE

      • New kotlin-platform-native plugin

      • Fixed a memory leak in AndroidLifecycleScope (Thanks to Eliezer Graber).
      • Fixed a crash when binding arrays.

      • Builders are interfaces
  • v5.2.0 Changes

    April 20, 2018
    • CORE

      • Named Modules cannot be imported more than once.
      • Introducing importOnce that allows to import a named module if it has not already been imported: see documentation.
      • Introducing newScopeRegistry that creates either a single or a multime item registry.
      • ANDROID
      • Android support has been split between kodein-di-framework-android-core, kodein-di-framework-android-support (for the Android Support library) and kodein-di-framework-android-x (for the AndroidX library): see documentation.
  • v5.1.1 Changes

    April 20, 2018
      • Fixed ActivityRetainedScope NullPointerException regression.
  • v5.1.0 Changes

    April 16, 2018
    • CORE

      • BREAKING CHANGE: updated the ScopeRegistry and Scope interfaces to get an A generic argument that allows to create scopes specialized for a type of factory argument.
      • Introduced the ScopeCloseable interface that allows singletons / multitons objetcs to be closed when they are removed from the scope: see documentation.
      • The SingleItemScopeRegistry class now allows for key change, which closes the previous value and keeps the new. This allows for scoped(SingleItemScopeRegistry<Any?>()).multiton: see documentation.
      • Unnamed module creation deprecated (in favour of named modules).

      • activityRetainedScope deprecated in favour of ActivityRetainedScope.
      • ActivityRetainedScope is compatible with ScopeCloseable.
      • androidScope deprecated in favour of AndroidComponentsWeakScope.
      • Introducing AndroidLifecycleScope: a scope that uses LifecycleOwner components to close properly close instances.
  • v5.0.1 Changes

    April 16, 2018

      • The Kodein-DI library is officially part of the in-progress Kodein Framework!
    • GRADLE

      • Project is entirely configured with Gradle Kotlin DSL
      • Project relies configuration relies heavily on kodein-internal-gradle-plugin which abstracts the configuration of all Kodein Framework components.
    • CORE

      • Added factoryX functions to enable to directly retrieve a multi-argument function (A1, A2) -> T when using multi-argument bindings.
      • ANDROID
      • Corrected a stack overflow error when using generic types on SDK 19 and lower
    • NATIVE

      • Using new native distribution model to allow gradle dependency retrieval
  • v5.0.0 Changes

    April 10, 2018

    • CORE

      • Package change: org.kodein.di, org.kodein.di.generic, org.kodein.di.erased.
      • Everything is lazy by default.
      • Distribution via Bintray's JCenter.
      • Compatible with Kotlin/Native (Huge thanks to Nikolay Igotti and his amazing Kotlin/Native team!).
      • Support for subtype bindings: see documentation.
      • Ability to retrieve allInstances, allProviders or allFactories that match subtypes of a given type.
      • Support for multi-argument factories & multiton.
      • Changed the extend semantic to manage copy of state-holding bindings. see documentation.
      • Complete rewrite of custom scopes.
      • Better recursion error messages.
      • Better currying syntax: kodein.instance(arg = whatever).
      • Injector has been replaced with KodeinTrigger and LateInitKodein, each taking a part of the responsibility.
      • Introducing LateInitKodein.
      • scopeSingleton and refSingleton are now options of singleton. Same goes for multiton.
      • Support for non state-holding bindings to access the receiver.
      • Support for an external source that will be queried when Kodein has no answer.

      • Full rewrite of the android components, effectively removing them, replacing them with a much lighter system. See documentation

      • Full rewrite of the retrieval engine, introducing KodeinTree to select the matching binding according to a query.
  • v4.1.0 Changes

    July 28, 2017
    • CORE

      • Kotlin 1.1.3
      • Introducing CompositeTypeToken, erasedComp1, erasedComp2 and erasedComp3 to describe generic types in an erased-only environment.
      • Introducing the SetBinding binding for Set multi-binding.

      • KodeinSharedPreferencesInfo is now outside of autoAndroidModule.
      • Added KodeinPreferenceFragment.

      • JxInjector now delegates to the internal JxInjectorContainer.
      • Refactored TypeToken
  • v4.0.0 Changes

    June 08, 2017

      • Kotlin 1.1.2-4.
      • The generic function is now 40% faster.
    • BUG FIX

      • Kodein JS now intercept type reflection failure (which happens when reflecting on primitive types on older versions of Kotlin).

      • Removed the sequence coroutine binder (too experimental).
  • v4.0.0-beta2 Changes

    April 24, 2017

      • Kotlin 1.1.0.
      • Javascript modules (kodein-js & kodein-js-conf). Uses the erased methods as JS does not support generic type reflection.
      • The Kodein binding DSL is now protected with @DslMarker to prevent weird things from happenning.
      • New binding factory: sequence which uses coroutines to bind a sequence.
      • Removed all erased* and generic* methods. Each core method now takes type parameters that are obtained with either generic() or erased().
      • Functions and classes that were part of the internal system, but declared public (because inline function references) are now truly internal.
      • Removed all deprecated API: new major version means clean slate.
      • Every type is now represented with a TypeToken<T> instead of a Type.
      • ๐Ÿ› BUG FIX
      • issue #61: FullTypeStringer failed on a type with no package.
  • v3.4.1 Changes

    April 24, 2017
    • ๐Ÿ› BUG FIX
      • issue #61: FullTypeStringer failed on a type with no package.