let's share knowledge

We are
JetBrains Certified Trainers.
Certification logo

We offer training and workshops for companies and world events, such as the Kotlin/Everywhere Paris and KotlinConf'19 conferences. We provide training addressing the different levels & targets of Kotlin.

Update your team to a higher level of quality, productivity & consistency.

Because all teams are unique in their compositions, backgrounds, and goals, we tailor each workshop to the specific needs of team we are addressing, making each training unique to the client.

Thanks to our experience in pedagogy as well as in architecture & development, we have developed a set of training courses & exercises that focuses on providing technical teams the most practical knowledge in mere days.
Each notion set is always put in perspective with a corresponding coding exercise. We focus on productivity and quality, not only addressing technical notions, but more importantly outlining their best practices.

Have a look at some training programs.

Structured concurency with Kotlin coroutines

Duration1 day

Kotlin coroutines allow modeling complex concurrency scenarios in a structural and expressive way. Learn how to model a concurrent task, and harness the power of the KotlinX Coroutines library (scoping, cancellation, etc).

  • Suspend functions
  • Coroutines context
  • KotlinX Coroutines: Scopes
  • KotlinX Coroutines: Cancellation
  • KotlinX Coroutines: Channels
  • KotlinX Coroutines: Context & Dispatchers
  • KotlinX Coroutines: Flows
  • Android specific coroutines

Advanced Kotlin for library & SDK development

Duration2 days

Kotlin offers many advanced language features that are typically used by library developers, allowing them to provide application developers great tools. Discover these advanced features, and master them to create elegant yet powerful Kotlin APIs.

  • Lambdas & SAMs
  • Explicit API mode
  • Closures & inline functions
  • Reified types
  • Properties
  • Delegated properties
  • Generics
  • Value classes
  • Operator overloading
  • Enum, sealed classes or interfaces & objects
  • DSL: Domain Specific Languages
  • Collections & sequences
  • Virtual methods & extension functions
  • Java & JVM compatibility
  • Gradle: build & test for the JVM
  • Gradle: deploy jars to a repository

The Kotlin language for iOS developers

Duration2 days

Kotlin's syntax is very similar to Swift's, yet their philosophy may sometimes diverge. This training is focused at iOS Swift developers that want the tools to work on a shared Kotlin multiplatform project.

  • Kotlin Basics compared to swift
  • Kotlin memory garbage collector
  • Lambdas & SAMs
  • Nullability constraints
  • Properties
  • Generics
  • Enum, sealed classes or interfaces & objects
  • Collections & sequences
  • Virtual methods & extension functions
  • ObjC interop: basics & constraints
  • ObjC interop: advanced language features
  • Gradle: build tasks & configuration
  • Gradle: KMM targets & source-sets
  • K/N freeze & mutation errors
  • KMM: the XCode compilation toolchain
  • KMM: write & run tests

KMM: Kotlin Multiplatform Mobile for Android & iOS

Duration2 days

Share meaningful business & behaviour code between your Android & iOS apps, keeping their views native & specific. That's the dream! Learn how to implement that dream, how to architecture your application accordingly, and how to communicate cleanly between a shared core and a native UI. Requires: "Structured concurency with Kotlin coroutines" and possibly "The Kotlin language for iOS developers".

  • Gradle: build tasks & configuration
  • Gradle: KMM targets & source-sets
  • Gradle: KMM tips & tricks
  • Android Studio: KMM project architecture
  • KMM: write & run tests
  • Platform specific code: expect & actual
  • KMM: the XCode compilation toolchain
  • ObjC interop: basics & constraints
  • ObjC interop: advanced language features
  • K/N freeze & mutation errors
  • KotlinX Serialization: no overhead efficient Serialization
  • Ktor-clients: HTTP client setup
  • Ktor-clients: Serialization & authentication
  • Kodein-DI: Multiplatform Dependency Injection
  • KotlinX DateTime: Multiplatform dates & durations
  • Kodein-Log: Multiplatform Logging
  • SQLDelight: Multiplatform SQLite ORM
  • Kodein-DB: Multiplatform NoSQL DB
  • The MVP & MVI patterns

Advanced low-level Kotlin/Native

Duration1 day

Kotlin/Native is the Kotlin compiler that produces native executable for multiple targets (iOS being just one of them). It exposes Kotlin APIs allowing native code to access C libraries, manage low-level memories, and access platform system APIs (such as POSIX). Requires: "KMM: Kotlin Multiplatform Mobile for Android & iOS".

  • K/N native memory
  • K/N pointers & arrays
  • K/N POSIX & platform APIs
  • K/N C-interop: definitions
  • K/N C-interop: tips & tricks
  • K/N freeze & mutation errors
  • K/N worker API
  • Coroutines in Kotlin/Native
  • Kodein-Memory: Multiplatform low-level buffers & files

Efficient pure Kotlin backend

Duration1 day

Learn how to create a pure Kotlin, lightweight, concurrent HTTP server using Jetbrains dedicated framework: Ktor. Requires: "Structured concurency with Kotlin coroutines".

  • Ktor Server: setup
  • Ktor Server: routing
  • Ktor Server: authentication
  • Ktor Server: sessions
  • Ktor Server: content negociation
  • Ktor Server: API calls
  • Ktor Server: templates
  • Ktor Server: testing
  • Exposed: pure Kotlin ORM for SQL
  • Kodein-DI: Dependency Injection in a Ktor server

Kotlin/React for the web

Duration1 day

React is the framework of the web: it allows creating very effective confined web components & applications. This training is for those who want to create web UIs while still using the structured & safe language they know and love: Kotlin!

  • K/JS: Gradle config for webpack
  • K/JS: dynamic type & js objects
  • Kotlin Wrappers: React & Styled
  • Kotlin React: HTML DSL
  • Kotlin React: functional components & context
  • Kotlin React: hooks for states & effects
  • Kotlin Styled: embedded pure-kotlin CSS
  • Kotlin React: Router
  • Kotlin React: Server-Side rendering

Contact us

Kodein logo



Site Map
Contact us!
Open Source
Kodein SAS
  • 2 Cour de la Badiane
  • 94000, Créteil
  • +33 6 83 54 55 96
  • +33 6 12 56 56 50
Kodein logo

Proudly Open Sourced.

© 2020 KODEINKoders (credits). All rights reserved.