About the course
This Kotlin training course equips you with the essential language skills, syntax, and best practices to excel in modern, cross-platform development.
You'll learn to write effective, idiomatic Kotlin code and harness its seamless Java interoperability for JVM applications, native Android development (using Android Studio), and JavaScript compilation.
This course provides the core knowledge to create and deploy multiplatform Kotlin apps and can be combined with other courses, such as our Kotlin for Android course and/or Spring Boot with Kotlin course to build a comprehensive training programme for people new to both technologies.
Instructor-led online and in-house face-to-face options are available - as part of a wider customised training programme, or as a standalone workshop, on-site at your offices or at one of many flexible meeting spaces in the UK and around the World.
-
- Write idiomatic Kotlin code.
- Set up a Kotlin development environment.
- Understand Kotlin's syntax and core concepts.
- Create Kotlin classes and objects.
- Implement flow control and handle nullability in Kotlin.
- Apply inheritance and abstraction in Kotlin.
- Work with collections and generics in Kotlin.
- Define and use functions, including higher-order functions.
- Structure Kotlin projects with packages.
- Develop cross-platform Kotlin applications
-
This course is perfect for software developers who want to expand their skills and learn Kotlin for building cross-platform applications.
-
This course is designed for software developers with existing experience in a language such as Python, JavaScript, Java, or C#, who want to gain a solid foundation in Kotlin for modern application development.
We would be happy to adapt and incorporate this course into a training programme for non-coders (for instance, as part of a graduate scheme for STEM students) - please get in touch to discuss your learning goals.
-
This Kotlin course is available for private / custom delivery for your team - as an in-house face-to-face workshop at your location of choice, or as online instructor-led training via MS Teams (or your own preferred platform).
Get in touch to find out how we can deliver tailored training which focuses on your project requirements and learning goals.
-
Course Overview
Introduction to the course
Course Outline
Introductions
Introduction to Kotlin
Kotlin Environment and the JVM
Android Studio Environment
Setting up an Android Studio Project
Kotlin Hello World program
Comments, Annotations
Lab: Hello World in Kotlin using Android Studio
Kotlin Classes
Class definitions
Constructors, named constructor parameters, default values
Secondary Constructors
Simple Properties
Instance Creation
Member Functions
Function Named Parameters
Function Default Parameters
Function Vararg Parameters
Functions returning Values
Converting instances to Strings
Lab: Books and Bookshop app in Kotlin using Android Studio
Objects, flow of control and Further Properties
Objects
Companion Objects
Flow of control
Self reference: This
Accessing Masked properties
Properties and their Types
Property Visibility
Property Declaration Modifiers
Custom property functions
Nullability
Nullable Operators
Lazy properties
Instance Equality
Curly Bracket Syntax
Lab: Adding behaviour to the Bookshop
Inheritance
Inheritance in Kotlin
Implementing Inheritance
Rule for overriding functions
Overriding Properties
Rules for Polymorphic variables
Casting and Inheritance
The super variable
Constructors and Inheritance
Lab: Defining Inheritance for Book class
Abstract classes and Interfaces
Abstract Classes
Defining an Abstract Class
Declaring abstract functions
Extending an Abstract Class
Interfaces as Contracts
Interfaces in Kotlin
Interface Definitions
Implementing Interfaces
Delegation
Lab: abstract classes and interfaces
Further Classes
Four Types of Nested Classes
Nested classes
Member Inner Classes
Method Inner Classes
Anonymous Classes / Objects
Sealed Classes
Inline classes
Data Classes
Data Classes and Destructuring Declarations
Operators
Infix Member Functions
Enumeration support
Kotlin Annotations
Lab: Implementing Data classes
Containers and Generics
Arrays
Collections Library
Mutable and Immutable (read-only) collections
Sets, Lists and Maps
Pairs and Triples
Collection iteration
Lab 7: Working with Containers
Functions
What is Functional Programming?
Kotlin as a Functional Language
Defining Functions
Function Objects
Function Definitions
Named Functions, Single Expression & Inline functions
Anonymous Functions and Lambdas
Callable References
Closures
Functions and Methods
SAM Interfaces
Coroutines & Asynchronous Programming
Lab: Functions
Higher Order Functions and Extension Functions
Higher Order Functions Introduction
Functions as Parameters
Using Typealias for function types
Functions as Return types
Collections & FP: foreach
Scope functions (apply, let, also, run and with)
Conditional functions (takeIf, takeUnless)
Extensions
Extension Functions and Extension properties
Infix Extensions
Looping over Collections
Sorting Collections
Grouping, Folding, Reducing and Zipping Collections
Lab: Processing containers using higher order functions
Packages and Project Structuring
What is a Package?
K2 - the Kotlin Compiler
Importing
Kotlin Default Imports
Visibility Modifiers
Visibility Modifiers and Constructors
Kotlin Modules
Multiplatform deployment considerations
Exception Handling
Errors & Exceptions
Exception types in Kotlin
Part of the Exception Hierarchy
Exception Handling
Kotlin and Checked Exceptions
Try-Catch Expressions
Finally and returned values
Defining New Exceptions
Chained Exceptions
Lab: Adding Exception handling to the bookshop
-
Kotlin Official Website: https://kotlinlang.org/ - The primary resource for all things Kotlin, including documentation, tutorials, and community information.
Kotlin Documentation: https://kotlinlang.org/docs/ - Comprehensive documentation covering the language, standard library, and tools.
Kotlin Koans: https://play.kotlinlang.org/koans/overview - Interactive exercises to learn Kotlin in a hands-on way.
Kotlin Blog: https://blog.jetbrains.com/kotlin/ - Official blog for the latest Kotlin news, releases, and articles.
Trusted by