All Versions
Latest Version
Avg Release Cycle
42 days
Latest Release
874 days ago

Changelog History
Page 1

  • v1.4.9 Changes

    September 17, 2020

    kotlin 1.4.10

  • v1.4.6 Changes

    May 16, 2020

    ๐Ÿ›  Fix bugs with adding scope and tags to bindings

  • v1.4.3 Changes

    May 05, 2020

    ๐Ÿ”จ Refactor of kodi core
    โž• Added some documentations
    helper function for nullable types
    a new way to use keys in KodiStorage with tag

  • v1.4.2 Changes

    April 29, 2020

    โž• Added code generation for abstract and static classes and functions for BindSingle and BindProvider annotations


    1. Create an instance with the provider for class reference

      interface IAnotherClass interface IMyClass : IAnotherClass

      @BindProvider(toClass = IAnotherClass::class) class MyClass() : IMyClass

    It is generate Providing method for binding like:
    bind<IAnotherClass>(tag = [toTag]) at [atScope] with provider { MyClass() }

    1. Binding for singleton object functions also for hight-order functions

      object CustomObject { @BindProvider(toClass = IAnotherClass::class) fun providingMethod(input: IMyClass): IAnotherClass { return input } }

    It is generate Providing method for binding like:

    bind<IAnotherClass>(tag = [toTag]) at [atScope] with provider { CustomObject.providingMethod(input = instance<IMyClass>()) }
    1. for interfaces and abstract classes it always will generate instance<T>():

      @BindProvider(toClass = IMyClass::class) interface IAbstractInterface : IMyClass

    bind<IMyClass>(tag = [toTag]) at [atScope] with provider { instance<IAbstractInterface>() }

    1. for abstract functions processor always generate instance().funName() like:

      interface IAbstractInterface { @BindProvider(toClass = IAnotherClass::class) fun getMyAbstractInstance(input: IAbstractInterface): IMyClass }

    bind<IAnotherClass>(tag = [toTag]) at [atScope] with provider { instance<IAbstractInterface>().getMyAbstractInstance( input = instance<IAbstractInterface>() ) }

    1. Added new annotation called WithInstance
      Tell the annotation processor to bind field or property with corresponding kodi instance

      @BindSingle(toClass = IMyClass::class)" class MyClass( @WithInstance( tag = "myAwesomeTag", scope = "MyAwesomeScope", with = "IDefaultClass::class" ) myDefaultValue: IDefaultClass ) : IMyClass

    0๏ธโƒฃ It's generate single binding function with default instance paramater

    bind<IMyClass>() with single {
                    myDefaultValue = instance<IDefaultClass>(
                                                            tag = "myAwesomeTag", 
                                                            scope = "MyAwesomeScope"
  • v1.4.1 Changes

    April 28, 2020

    ๐Ÿš€ Major release with big new functionality. Was added Annotation processor in the new module - kodigen.
    ๐Ÿ†• New annotation in the base package - kodi.annotations

    1. BindSingle and BindProvider annotations can be used with classes and static functions only. It generates a kodiModule file that contains all necessary bindings. 0๏ธโƒฃ 2. IgnoreInstance - ignore some constructor and methods parameters but be you must specify it by default
    2. WithInstance - tell the processor to get an instance of the parameter with tag or scope

    ๐Ÿš€ This is a first release of the annotation processor and it's will be improved later.

    1. add maven { url = "" } in your project.gradle file in repository section ๐Ÿ”Œ 2. to use annotation processor need to include kapt plugin:
      ๐Ÿ”Œ apply plugin: 'kotlin-kapt' or with GradleDSL - plugin { kotlin("kapt")}
    2. app.gradle dependency block:
  • v1.4.0

    April 27, 2020
  • v1.3.1 Changes

    March 29, 2020

    โšก๏ธ update Kotlin version to 1.3.71

  • v1.3.0 Changes

    March 15, 2020

    ๐Ÿš€ RELEASE 1.3.0

    • Kotlin 1.3.70
    • โœ‚ Removed unused and deprecated methods
    • โž• Added full SCOPE support.
    • Kotlin Gradle DSL
    • โœ… KodiAndroidX module with the latest Kodi version 1.3.0
  • v1.3.0-rc4 Changes

    February 05, 2020

    โž• added KodiHolder::clear function for free instance when unbind

  • v1.3.0-rc1 Changes

    January 20, 2020

    ๐Ÿš€ The main feature of this release is Adding a Scoped Functionality

    • ๐Ÿ”จ Fully refactor of the core component
    • ๐Ÿ“ฆ Changing the core package path to com.rasalexman.kodi.*
    • โœ‚ Remove unused and unnecessary code
    • ๐Ÿ”จ Refactor of scope binding
    • ๐Ÿš€ RC1 is a major release candidate with more lighter implementation but keep the same API
    • Kotlin Gradle DSL