Why choose us?

Kotlin training course

Develop Android Apps or Java Backend applications with Kotlin - Reach A Growing And Powerful Mobile Web Audience

4.8 out of 5 average

(see feedback)


Our Kotlin training course will focus on teaching Kotlin from beginner to an intermediate/advanced level.

Typically Kotlin is used for Development of Android Apps or Backend applications with Java.

This course will help delegates understand the pure Kotlin Language and Best practices for using it in anger. Delegates can choose to keep Labs as "vanilla" Kotlin, or to apply to Android or Java development.

In this course we will focus on practical Kotlin development. We will briefly go over the Kotlin language in the ways it is equivalent to Java. We will spend a bit of time introducing concepts that Kotlin provides that are not found in Java.

Following that, we will begin to learn Kotlin development by creating an Android application using all of the modern libraries and technologies that are necessary for a successful commercial application.


JBI training course London UK

  • Learn Basics of Kotlin with Objects, variables and structure
  • Understand Object-Oriented Programming for Kotlin
  • Explore Functions, arguments and syntax 
  • Utilise Function-oriented programming
  • Use Extensions: properties and functions 
  • Learn Domain Specific Language
  • Work with collections and texts
  • Learn Generic with Covariance, contravariance and invariance
  • Understand Reflection: types, classes, functions, properties and Kotlin references
  • Apply Interoperability Between Kotlin and Java
  • Acquire skill in Android KTX for Android Backend and Java
  • Develop Android Apps or Java Backend applications with Kotlin
Next on 23 May £1,795.00+VAT
Custom courses and prices

Basics of Kotlin

  •     Objects and variables
  •     Type inference
  •     Nullability and smart casting
  •     Composite data types
  •     Control structures
  •     Comments

Object-Oriented Programming For Kotlin

  •     Classes and properties, interfaces, abstract classes, enums, overriding methods and properties
  •     Primary constructors and initialization blocks
  •     Secondary constructors
  •     Data classes
  •     Object expressions
  •     Object declarations and companion objects
  •     Nested classes
  •     Visibility modifiers
  •     Sealed classes


  •     Vararg parameters
  •     Single-expression functions
  •     Default arguments and named argument syntax
  •     Top-level functions and properties
  •     Local functions

Function-oriented programming For Kotlin

  •     Functional type
  •     Anonymous functions
  •     Lambda expressions
  •     Simpler lambda notation
  •     Lambda functions under the hood
  •     Higher-Order Functions
  •     Last lambda in argument convention
  •     Inline functions
  •     Java Single Abstract Method lambda interface and usage of them in Java methods


  •     Extension functions
  •     Extension properties
  •     Function type with receiver, function literal with receiver, referencing extension functions
  •     Predefined functional literals with a receiver

Domain Specific Language

  •     Spannables generation
  •     Anko
  •     Making your own DSL

Working with collections and texts

  •     Collection literals
  •     Basic collection processing functions
  •     Collection predicates
  •     Making collection flat and grouping it
  •     Accumulating collections
  •     Converting between collection types
  •     Functions used to process texts and to accumulate collections to texts


  •     Covariance, contravariance, and invariance
  •     Common issues with bounded wildcards in Java
  •     Declaration-site variance, use-site variance, and type projection
  •     Declaring single and multiple constraints on types


  •     Referencing types, classes, functions, and properties
  •     Kotlin references vs Java references
  •     Structure and types of references

Interoperability Between Kotlin and Java

  •     Guidelines for mixed language codebases
  •     Calling Java libraries from Kotlin
  •     Preparing Kotlin to be used from Java
  •     Annotations to work with Java annotation processing libraries

kotlin contracts

  •     Contracts feature in Kotlin to alleviate compiler errors

Inline Classes

  •     Members
  •     Inheritence
  •     Representation

Labs (Android)

  •     Variety of Kotlin structures
  •     How to use functions at different levels
  •     How classes changed in Kotlin and how it influences Android development
  •     What are object expression and object declaration
  •     Functional programming features in Kotlin
  •     How to use Kotlin Android Extensions and KTX
  •     What exactly are Data classes
  •     How to use Sealed classes
  •     You will understand deeply Kotlin type system
  •     How to define and use Extension functions
  •     How to do expressive and efficient collection processing in Kotlin
  •     What are and how to use Scope functions (let, apply, run, also, with, takeIf, takeUnless)
  •     What are generic variance modifiers, how to use them and what are the limitations
  •     Why inline classes are useful and important
  •     How to create and use Kotlin property and interface delegates
  •     How to use and create Kotlin DSL
  •     How to write Kotlin code in an idiomatic way
  •     What are Kotlin code conventions and guideline

Labs (Java/Backend)

  •     Basic Kotlin structures
  •     Functions on different levels and functional style
  •     Kotlin OO programming in Android
  •     Data classes
  •     Sealed classes
  •     Object expression, object declaration and companion object
  •     Kotlin type system
  •     Extension functions
  •     Functional programming in Kotlin
  •     Collections and string processing
  •     Scope functions (let, apply, run, also, with, takeIf, takeUnless)
  •     Generic classes and functions, making own collection processing function
  •     Kotlin generic type parameter declarations and modifiers
  •     Kotlin property and interface delegates
  •     Reflection in Kotlin, and how to use Java reflection in Kotlin
  •     DSL usage and creation
  •     Interoperability between Kotlin and Java
  •     Basics of Kotlin coroutines
  •     Rules of idiomatic Kotlin
  •     Kotlin style guides


Next on 23 May £1,795.00+VAT
Custom courses and prices
JBI training course London UK

Software developers with Java or equivalent language skills looking to develop commercial applications on Google's Android platform or Backend Applications with Kotlin
Next on 23 May £1,795.00+VAT
Custom courses and prices

4.8 out of 5 average

"I really enjoyed the practice work on the Android coding classes and Android app. I also thought that the basic Kotlin was taught thoroughly and with simplicity by the excellent trainer."

DCF, Senior Developer, Kotlin, February 2021

Next on 23 May £1,795.00+VAT
Custom courses and prices
JBI training course London UK
Tech Updates Newsletter

Receive Tech Updates directly to your inbox

+44 (0)20 8446 7555



Corporate Policies     Terms & Conditions
JB International Training Ltd  -  Company number 08458005

Registered address Wohl Enterprise Hub 2B Redbourne Avenue London N3 2BS


AI & ML training course                                                                  React training course

Threat modelling training course   Python for data analysts training course

Power BI training course                                   Machine Learning training course

Spring Boot Microservices training course              Terraform training course

Kubernetes training course                                                           C++ training course

Power Automate training course                              Clean Code training course