All Versions
Latest Version
Avg Release Cycle
48 days
Latest Release
1684 days ago

Changelog History
Page 1

  • v3.1.0 Changes

    September 13, 2019
    • Adding method getRootScope to Toothpick and KTP. Thanks to @code-twister for the this contribution!
  • v3.0.2 Changes

    August 30, 2019
    • Fixing issue #362: Improving IDE autocompletion for Binding API.
    • Improving KTP class autocompletion.
    • Trigger member injection even when delegates are used. This will allow to use method injection and inject parent dependencies on roots using KTP.
  • v3.0.1 Changes

    August 27, 2019
    • Fixing issue #360: Member injectors contains and invalid reference to the parent member injector if it contains a generic. Thanks to @zawadz88 for the this contribution!
  • v3.0.0 Changes

    August 02, 2019
    • Enable field injection with qualifiers for KTP
    • Adding toothpick-sample
  • v3.0.0-RC1 Changes

    July 29, 2019
    • TP3 specs can be find at
    • KTP specs can be found at Thx to @chenthorne and @dpreussler for their contributions to the Kotlin extensions of TP.
    • Scope annotations are not backward compatible with version 2. In version 2, scope annotations had 2 meaning: @ActivitySingleton meant both that a class could only be injected in a scope that supported this annotation and that the class would provide singletons of this scope. In TP 3, it is now more fine grained: @ActivityScope means a class can only be injected in a scope that supports this annotation and it can be combined with @Singleton or not to denote that a class produces singletons of this scope or not.
    • The scope API is now a fluent API. It is possible to define all scopes and sub scope in the same method chain, and to configure them at the same time. See the new samples. and
    • Kotlin is now a first class citizen of TP 3. KTP supports both field and constructor injection. Extensions are published to make things even more kotlin friendly. KTP doesn't offer method injections. KTP and TP are compatible. You can migrate classes to Kotlin incrementally in a java app using TP3.
    • Support for releasable singletons. TP can release @Releasable annotated singletons under memory pressure to save memory.
    • TP (java) supports method injections for methods throwing exceptions
    • Support for package-protected classes
    • Extension package for AndroidX life cycle allow to close a scope automatically when a FragmentActivity is closed. See sample.
    • Extension package for AndroidX view models allow to inject a view model and get things injected in a view model automatically. See sample.
    • The binding API now is absolutely equivalent to the expressivity of the annotations. The 2 are strictly compatible.
  • v2.1.0 Changes

    February 04, 2019
    • โž• Add Toothpick.isScopeOpen method to check whether a scope is already open. Thx to terrakok for this.
  • v2.0.0 Changes

    February 01, 2019
    • ๐Ÿ‘Œ support incremental annotation processing. All processors are now incremental and isolating.
    • โœ‚ remove all registries, TP 2.x doesn't use registries any more. They were actually slower than not using them after we reworked on registries to enable obfuscation. Reflection is now used to load the factories and member injectors, ๐ŸŽ this is normal (and all other annotation processor based libs do that too) and there is no impact on performance.
    • ๐Ÿ‘Œ support multiple rounds of annotation processing.
    • generated classes now use __ instead of $$ to make TP more compliant with some tools.
    • โœ‚ removed the generate ContextSingleton annotation
    • ๐Ÿ”€ smoothie now binds the ClipClipboardManager service. Thx to Cody Henthrone for this. Sorry we were late merging this !
    • ๐Ÿ‘ smoothie now contains non support and non android x bindings. We have introduced 2 new artifacts: ๐Ÿ‘ smoothie-support and smoothie-androidx that respectively support the old legacy support library and the new android X libs).
    • โœ… toothpick-testing now only contains core testing classes. New artifacts have been introduced to support junit 4 nd junit 5 (resp. : toothpick-testing-junit4, toothpick-testing-junit5)
    • โž• added a consumer proguard file
  • v1.1.3 Changes

    March 10, 2018
    • ๐Ÿ›  Fix issue 146: generate registries in a way that is compatible with obfuscation. Obfuscated apps can now use TP registries. Thx to Pavel Shmakov for this contribution !
  • v1.1.2 Changes

    February 27, 2018
    • ๐Ÿ›  Fix issue #283: Registries are not deterministic and it breaks compilation caching (for gradle)
    • ๐Ÿ›  Fix issue #261. Better handling of non supported injected types (like primitives). Thx to Alexey Ershov for the detailed bug report.
  • v1.1.1 Changes

    October 01, 0013
    • ๐Ÿ›  Fix issue #258, #256, #253: remove dependency to JSR 250 annotations, fix missing overrides.