Home About Courses Schedule Services Webinars Contact Search

Introduction to Kotlin

SEE SCHEDULE

Duration: 4.0 days

Method: Instructor led, Hands-on workshops

Price: $2450.00

Course Code: KO1000


Description

In response to Google’s Kotlin-first policy for Android, every team doing Android development needs to consider Kotlin. Additionally, many developers are using Kotlin to enhance or replace java as a general-purpose language. This four-day course 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.

Objectives

Upon successful completion of this course, the student will be able to:

  • Understand Kotlin language fundamentals
  • Write null-safe Kotlin code
  • Create Kotlin Classes and Objects
  • Use Kotlin Generics
  • Implement Concurrency with Coroutines
  • Built applications combining Kotlin and Java
  • Create Domain Specific Languages (DSLs) in Kotlin

Prerequisites

Proficiency in any programming language

Topics

  • I. Kotlin Overview
    • History of Kotlin
    • Why Kotlin?
    • Characteristics of Kotlin
    • Tools
  • II. Variables and Data Types
    • Mutable and Immutable Variables
    • Types and Type Inference
    • Type Conversion
    • Literals
  • III. Keywords and Operators
    • Keywords
    • Operators
    • Logical Operatos
    • Short Circuiting Operators
  • IV. Arrays and Strings
    • Arrays
    • Array Methods
    • Strings
    • Raw Strings
  • V. Loops and Conditionals
    • For loops
    • While/Do While
    • If
    • When
  • VI. Null Safety
    • The billion dollar mistake
    • Safe Call Operator
    • Elvis Operator
    • Not Null Assertion
  • VII. Object Orientation
    • Classes and Objects
    • Construction and Initialization
    • Inheritance
    • Interfaces
  • VIII. Functions
    • Parameters
    • Scope
    • Infix Functions
    • Operator Overloading
  • IX. Lambdas and Higher Order Functions
    • Higher Order Functions
    • Function Types
    • Lambdas
    • Closures
  • X. Advanced Object Orientation
    • Nested Classes
    • Property References
    • Companion Objects
    • Delegation
  • XI. Generics
    • Variance and Covariance
    • Type Projections
    • Generic Functions
    • Type Erasure
  • XII. Collections
    • Lists
    • Sets
    • Maps
    • Sequences
  • XIII. Concurrency
    • Coroutines and Threads
    • Dispatch
    • Channels
    • Shared Mutable State
  • XIV. I/O
    • Streaming I/o
    • Reading Files
    • Writing Files
    • Sockets
  • XV. Annotation and Reflection
    • Annotations
    • Reflection
    • Custom Annotations
    • Meta Annotations
  • XVI. Mixing Kotlin and Java
    • Call Kotlin from Java
    • Call Java from Kotlin
    • Convert Java to Kotlin
    • Null Safety and Java
  • XVII. Domain Specific Languages
    • Introduction to DSLs
    • Language features that support DSLs
    • The builder pattern
    • Lambdas in DSLs