Kotlin Development

Kotlin is an object-oriented language that can run equally well on the Java Virtual Machine or natively on the operating system. Kotlin is also a functional language, and combines the features and benefits of OO and functional programming. This course provides a fast-paced introduction to the language for developers with experience Java or similar languages (e.g., C# or C++), and then delves deeper into idiomatic uses of Kotlin in practice. The course also shows how to use Kotlin Multiplatform to implement a common codebase that can run on any platform.


«The instructor was really good, and he came prepared every day. He also seemed to have a very high level of expertise in the programming language he was teaching, which was Kotlin. He could answer all questions no matter how hard and complex the questions was. He also had a nice and understandable way of explaining advanced subjects. » Cato Hilmi Akay, Skatteetaten

What you'll learn:

  • Writing and running Kotlin programs
  • Object orientation in Kotlin
  • Functional programming in Kotlin
  • Implementing Domain-Specific Languages
  • Using concurrency
  • Overview of Kotlin multiplatform apps


Experience using Java or a similar contemporary object-oriented language.

Course Content:

  • Introduction to Kotlin: Overview of Kotlin; Kotlin tools; Writing a simple Kotlin program; Using the interactive shell; Using the online playground
  • Core Kotlin Syntax: Types and variables; Literals; Decision making and looping; Exceptions; Enumerations
  • Functions: Class-level and top-level functions; Local functions; Extension functions and properties; Variable-argument functions
  • Object-Oriented Programming in Kotlin: Classes and objects; Properties, getters and setters; Construction techniques; Open, final, and abstract modifiers
  • A Closer Look at Kotlin Types: Nullability; Primitive types; Data classes; Sealed classes; Singleton objects and companion objects; Arrays and collections
  • Functional Programming: Overview of functional programming; Lambdas and member references; Functional APIs and collections; Lazy collection operations
  • Going Further with Functional Programming: Higher-order functions; Inlining; Control flow; Recursion; Domain-Specific Languages
  • The Kotlin Type System: Generics; Constraints; Covariance and contravariance; Defining and using annotations; Reflection
  • Concurrency: Creating and synchronizing threads; Callbacks; Futures; Coroutines and channels
  • Kotlin Multiplatform: Overview of Kotlin Multiplatform; Tooling up for Kotlin Multiplatform; Creating and running a Kotlin Multiplatform app


Andy Olsen - author of the course

Andy is a freelance consultant and instructor based in the UK, working mostly in the City of London and Oxford. Andy has been working with .NET since the Beta 1 days and has extensive experience in many facets of .NET development including WCF, WPF, WF, ASP.NET MVC Web development, and mobile applications. Andy has designed and written many Microsoft Official Curriculum courses in the last decade, and has been engaged as author and technical reviewer with Apress on some of their biggest selling books.

Other relevant courses

16. October
3 days
Classroom Virtual
18. September
3 days
Classroom Virtual
16. October
3 days
4 days