Introduction to Kotlin

4 Days

This four-day Kotlin training class is an in-depth introduction to the Kotlin language. This course is appropriate for students who have proficiency in another programming language. This course does not teach Android development fundamentals focusing rather on the Kotlin Language.

Goals
  1. Understand Kotlin language fundamentals
  2. Write null-safe Kotlin code
  3. Create Kotlin Classes and Objects
  4. Use Kotlin Generics
  5. Implement Concurrency with Coroutines
  6. Built applications combining Kotlin and Java
  7. Create Domain Specific Languages (DSLs) in Kotlin
Outline
  1. Kotlin Overview
    1. History of Kotlin
    2. Why Kotlin?
    3. Characteristics of Kotlin
    4. Tools
  2. Variables and Data Types
    1. Mutable and Immutable Variables
    2. Types and Type Inference
    3. Type Conversion
    4. Literals
  3. Keywords and Operators
    1. Keywords
    2. Operators
    3. Logical Operatos
    4. Short Circuiting Operators
  4. Arrays and Strings
    1. Arrays
    2. Array Methods
    3. Strings
    4. Raw Strings
  5. Loops and Conditionals
    1. For loops
    2. While/Do While
    3. If
    4. When
  6. Null Safety
    1. The billion dollar mistake
    2. Safe Call Operator
    3. Elvis Operator
    4. Not Null Assertion
  7. Object Orientation
    1. Classes and Objects
    2. Construction and Initialization
    3. Inheritance
    4. Interfaces
  8. Functions
    1. Parameters
    2. Scope
    3. Infix Functions
    4. Operator Overloading
  9. Lambdas and Higher Order Functions
    1. Higher Order Functions
    2. Function Types
    3. Lambdas
    4. Closures
  10. Advanced Object Orientation
    1. Nested Classes
    2. Property References
    3. Companion Objects
    4. Delegation
  11. Generics
    1. Variance and Covariance
    2. Type Projections
    3. Generic Functions
    4. Type Erasure
  12. Collections
    1. Lists
    2. Sets
    3. Maps
    4. Sequences
  13. Concurrency
    1. Coroutines and Threads
    2. Dispatch
    3. Channels
    4. Shared Mutable State
  14. I/O
    1. Streaming I/o
    2. Reading Files
    3. Writing Files
    4. Sockets
  15. Annotation and Reflection
    1. Annotations
    2. Reflection
    3. Custom Annotations
    4. Meta Annotations
  16. Mixing Kotlin and Java
    1. Call Kotlin from Java
    2. Call Java from Kotlin
    3. Convert Java to Kotlin
    4. Null Safety and Java
  17. Domain Specific Languages
    1. Introduction to DSLs
    2. Language features that support DSLs
    3. The builder pattern
    4. Lambdas in DSLs
Class Materials

Each student in our Live Online and our Onsite classes receives a comprehensive set of materials, including course notes and all the class examples.

Class Prerequisites

Experience in the following is required for this Kotlin class:

  • Proficiency in any programming language.