All Versions
20
Latest Version
Avg Release Cycle
37 days
Latest Release
13 days ago

Changelog History
Page 1

  • v1.4.6

    May 16, 2020

    🛠 Fix bugs with adding scope and tags to bindings

  • v1.4.3

    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

    April 29, 2020

    ➕ Added code generation for abstract and static classes and functions for BindSingle and BindProvider annotations

    Example:

    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 {
              MyClass(
                    myDefaultValue = instance<IDefaultClass>(
                                                            tag = "myAwesomeTag", 
                                                            scope = "MyAwesomeScope"
                                                   )
               )
    }
    
  • v1.4.1

    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 = "https://dl.bintray.com/sphc/KodiGen" } 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:
      kapt("com.rasalexman.kodi:kodigen::x.y.z")
  • v1.4.0

    April 27, 2020
  • v1.3.1

    March 29, 2020

    ⚡️ update Kotlin version to 1.3.71

  • v1.3.0

    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

    February 05, 2020

    ➕ added KodiHolder::clear function for free instance when unbind

  • v1.3.0-rc1

    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
  • v1.2.92

    January 03, 2020

    ⚡️ Update kotlin version to 1.3.61
    🆕 new functions

    • bingTag(tag: String) - bind instance only with tag
    • unbindTag(tag: String) - unbind instance only with tag

    KODIAndroidX version 1.0.3
    KodiReflect version 1.1.3