Exceptional Training FOR KOTLIN DEVELOPERS

Kotlin Training Course

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

28 Oct London
request info

Capita Marks and Spencer Telefonica Cisco BBC Lloyds Sony

Kotlin training course (code: KOTLIN)


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.


Software developers with Java or equivalent language skills looking to develop commercial applications on Google's Android platform or Backend Applications with Kotlin



Basics of Kotlin

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

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
    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


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


  • Basics of Kotlin
  • Object-Oriented Programming
  • Functions
  • Function-oriented programming
  • Extensions
  • Domain Specific Language
  • Working with collections and texts
  • Generic
  • Reflection
  • Interoperability Between Kotlin and Java
  • Android KTX

Receive the latest version of this course into your inbox


28th Oct 2019 - 3 days £1795

see all dates


Show Discount for this course


  Bring a JBI course to your office
  and train a whole team onsite
  0800 028 6400
or request quote

  You can customise this course to
  suit your exact needs here
  0800 028 6400 or request quote

0800 028 6400

Why JBI ?

►"great technology tips"
► "Access to exclusive content"
► "Short course means less time off"

►"Inspiring trainers"
► "Joined via web"
► "Knowledgable sales staff"

Get exclusive news about upcoming programs, technical insights & special offers