Marcin Moskala: Kotlin for Developers

In this Masterclass, you are going to learn Kotlin in-depth, all in line with the best practices. We will start from basic features, but understanding them deeply - how do they work and how should they be used, and we will and up learning about advanced features like custom property delegates or DSLs. You will learn through practice by implementing solutions, answering to challenges, and trying your knowledge on puzzlers.

The course will be conducted by Marcin Moskała, official JetBrains partner in Kotlin training, author of the book Android Development with Kotlin and soon to be published Effective Kotlin book, creator of Kt. Academy (previously Kotlin Academy) Medium publication, known speaker at international conferences.

    Agenda: Day 1

    • Basic Kotlin structures
    • Functions on different levels and functional style
    • Kotlin OO programming
    • Data classes
    • Sealed classes
    • Object expression, object declaration and companion object
    • Kotlin type system
    • Extension functions

    Agenda: Day 2

    • Functional programming in Kotlin
    • Inline functions
    • Collection processing
    • Generic classes and functions, making own collection processing function
    • Kotlin generic type parameter declarations and modifier

     Agenda: Day 3

    • Scope functions
    • Kotlin property and interface delegates
    • DSL usage and creation
    • Interoperability between Kotlin and Java
    • Kotlin Contracts
    • Inline classes
    • Rules of idiomatic Kotlin
    • Kotlin style guides


    In a series of exercises you will:
    • Set requirements on arguments and state using Elvis operator, require and check 
    • Do advanced collection processing
    • Implement your own collection processing function
    • Implement custom property delegate
    • Make your own DSL
    This is a participatory masterclass. You won't get to just sit there and watch - the more you participate in the Masterclass, the more you'll get out!


    Would you like to join as a group?     
    Please email us at or call us on +31 639558344

    Upcoming training dates