5 min read

What's new in Koin? Koin 3.4 + Koin Annotations 1.2 🔥 New Features and Fixes!

Release of Koin 3.4.1 and Koin Annotations 1.2.1, packed with new features and essential fixes.
Koin 3.4.1 + Koin Annotations 1.2.1 + Koin Compose 1.0.3
Based on photo by Pixabay 

We’re happy to share the release of Koin 3.4.1 and Koin Annotations 1.2.1, packed with updates and essential fixes. In this blog post, we will highlight the key features and improvements introduced in these releases.

What's new in Koin? Koin 3.4 & Koin Annotations 1.2 - New Features and Fixes!
We've now released  Koin 3.4.2 and Koin Annotations 1.2.2 to address a critical blocker that the community identified, thank you so much 🙏

🏮Important Updates & Fixes

1. Injected Parameters Cascade
One of the significant enhancements in Koin 3.4.1 is the ability to cascade injected parameters. This means that parameters can now propagate through dependencies, providing a more streamlined and efficient dependency injection experience. With this update, you can easily pass parameters through multiple layers of dependencies without explicitly defining them at each level.

2. Constructor DSL for Cascading Parameters
The Constructor DSL in Koin can now handle cascading parameters as well. This update further simplifies the injection process and improves flexibility when dealing with complex dependencies. By utilizing the Constructor DSL, you can define dependencies in a concise and declarative manner, making it easier to manage and configure cascading parameters.

3. Resolved koin-core-coroutines Duplication Issue
In previous versions, there was an issue with duplication in the koin-core-coroutines module. With the release of Koin 3.4.1, this problem has been identified and fixed, ensuring a smoother experience when using coroutines with Koin. You can now leverage the power of Coroutines in your Koin-based applications without worrying about any duplication conflicts.

4. Fixed workerOf & worker APIs
The workerOf and worker APIs have been fixed in this release. Any issues or inconsistencies related to these APIs have been resolved, allowing you to utilize them without any interruptions. These APIs are essential for managing background tasks and executing long-running operations efficiently. With the fixes in place, you can leverage these APIs seamlessly within your applications.

Constructor DSL | Koin
Koin now offer a new kind of DSL keyword that allow you to target a class constructor directly, and avoid to to have type your definition within a lambda expression.

Library Updates

The Koin 3.4.1 release also includes updates to several libraries, enhancing overall compatibility and performance. The following libraries have been updated:

  • Kotlin 1.8.21: With the updated Kotlin version, you can take advantage of the latest language features and improvements, ensuring a better development experience and performance optimizations.
  • Kotlin Coroutines 1.7.1 (koin-core-coroutines): The update to Kotlin Coroutines brings various bug fixes and enhancements, making asynchronous programming with Koin smoother and more efficient.
  • Android:
    • androidx.fragment:fragment-ktx:1.5.7: This update ensures compatibility with the latest Android Fragment library, allowing you to leverage its features seamlessly.
    • androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1: With the updated Lifecycle ViewModel library, you can utilize the latest ViewModel enhancements and lifecycle-aware components.
    • androidx.lifecycle:lifecycle-common-java8:2.6.1: The update to the Lifecycle Common library ensures compatibility and synchronization with other lifecycle-related components.
    • androidx.work:work-runtime-ktx:2.8.1: This update provides compatibility with the latest WorkManager library, enabling efficient background task scheduling and execution in your applications.
  • Ktor 2.3.0: The updated version of Ktor brings enhancements, bug fixes, and new features to the powerful networking framework, allowing you to build robust and scalable applications.
Extension Manager | Koin
Here is a brief description of KoinExtension manager, deidcated to add new features inside Koin framework.

Koin Compose 1.0.3 Update

Koin Compose, based on Koin 3.4.0, is still awaiting the Kotlin 1.8.20+ compiler readiness. While we continue to anticipate this compatibility, we are happy to release koin-compose 1.0.3, addressing critical fixes specifically designed to enhance native target deployments. This release guarantees a seamless experience when utilizing Koin Compose in your projects, eliminating any concerns related to native target deployments.

Moreover, we are pleased to announce the availability of koin-androidx-compose 3.4.5, empowering you to leverage the latest Koin capabilities within your Jetpack Compose applications.

The following library has been updated for Koin Compose 1.0.3:

androidx.compose.runtime:runtime:1.4.3:  This library update ensures compatibility with Koin Compose 1.0.3 and brings the latest bug fixes and enhancements related to the Compose runtime.

Koin Annotations 1.2.1 Enhancements

In Koin Annotations 1.2.1, we have introduced several improvements to enhance your experience with Koin's annotation-based dependency injection. These enhancements provide more flexibility and ease of use in defining your dependencies. The following updates have been made:

  • Kotlin 1.8.21 & Google KSP 1.8.21-1.0.11 compatibility: Ensuring compatibility with the latest Kotlin version and Google KSP allows you to take advantage of the latest language features and improvements in your annotation-based Koin projects.
  • Code generation has been fixed to allow empty modules and Explicit APIs: With this fix, you can define empty modules when necessary and have more control over the generation of explicit APIs, enhancing the customization options in your Koin-powered projects.
  • You can now specify an empty binding with binds = [] in your annotation: This enhancement allows you to define an empty binding directly in your annotation, offering more flexibility and expressiveness when configuring your dependencies.
  • The code generation for @KoinWorker has been fixed: The code generation for the @KoinWorker annotation has been improved and fixed, ensuring correct and reliable code generation when utilizing workers in your Koin projects.
Modules | Koin
By using Koin, you describe definitions in modules. In this section we will see how to declare, organize & link your modules.

We would like to extend our sincere gratitude 🙏 to all the contributors for their valuable help and support in making these releases possible. Your continuous support and feedback drive the growth of the Koin ecosystem.

For more detailed information about these releases, please refer to the changelog.

koin/CHANGELOG.md at main · InsertKoinIO/koin
Koin - a pragmatic lightweight dependency injection framework for Kotlin & Kotlin Multiplatform - koin/CHANGELOG.md at main · InsertKoinIO/koin
koin-annotations/CHANGELOG.md at main · InsertKoinIO/koin-annotations
Koin Annotations - About Koin - a pragmatic lightweight dependency injection framework for Kotlin & Kotlin Multiplatform insert-koin.io - koin-annotations/CHANGELOG.md at main · InsertKoinIO/k...

🙏Thank you for being a part of the Koin community, and we hope you enjoy the latest updates and fixes.