Kodein Open Source Initiative documentation

The Kodein Open Source Initiative is a suite of libraries that aims to help you to develop Kotlin Multiplatform (mobile) applications.

The Kodein Open Source Initiative:

  • provides high level tools that enhance your Kotlin/Multiplatform experience

  • help you maximize your Kotlin common code, with almost everything but the UI

  • and keeps your focus on your business code.

Libraries

The Kodein Open Source Initiative libraries provide:

  • the ability to manage your code and isolate your tests easily, with the dependency injection pattern.

  • a quick and easy way to persist data model in a performant NoSQL database, for each mobile platforms.

Each library can be used independently of each other.

Kodein-DI: Dependency Injection

Kodein-DI is a very useful dependency injection / retrieval container, it is very easy to use and configure.

Kodein-DI allows you to:
  • Lazily instantiate your dependencies when needed.

  • Stop caring about dependency initialization order.

  • Easily bind classes or interfaces to their instance, provider or factory.

  • Easily debug your dependency bindings and recursions.

Kodein-DI is a good choice because:
  • It is small, fast and optimized (makes extensive use of inline).

  • It proposes a very simple and readable declarative DSL.

  • It is not subject to type erasure (like Java).

  • It integrates nicely with Android.

  • It proposes a very kotlin-esque idiomatic API.

  • It (also) can be used in plain Java.

Kodein-DB: NoSQL Database

Kodein DB is a Kotlin/Multiplatform embedded NoSQL database that works on JVM, Android, Kotlin/Native and iOS. It is suited for client or mobile applications.

Kodein-DB allows you to:
  • Easily store, retrieve and query kotlin objects.

  • Stop carrying about schema definitions.

  • Easily set up a new project.

Kodein-DB is a good choice because it:
  • proposes a very simple and readable DSL.

  • integrates nicely with Android and iOS.

  • offers very good performances.

  • is just Kotlin!

Support

If you need any help do not hesitate to through questions or issues:

Contribute

Contributions are very welcome and greatly appreciated! The great majority of pull requests are eventually merged.

To contribute, simply fork any of our projects on Github, fix whatever is iching you, and submit a pull request!

We are sure that there is still room for imporvement, either in code or documentation.