Overview
Kotlin is one of the most promising JVM languages and has seen immense growth over the last few years. The language is now being used in thousands of systems, including both backend and frontend. Kotlin is a multiplatform JVM language that was announced as the official programming language for Android by Google some years ago.
This course is designed for developers who want to grasp the language, so they can work with any Kotlin projects professionally.
Why Kotlin?
- Concise: Drastically reduce the amount of boilerplate code.
- Safe: Avoid entire classes of errors such as null pointer exceptions.
- Interoperable: Leverage existing libraries for the JVM, Android, and the browser.
- Multiplatform: Supporting JVM, iOS, Android, JS, Linux, Windows, Mac, and even embedded systems.
- Tool-friendly: Choose any Java IDE or build from the command line.
Prerequisites
- One year of experience with any object-oriented or JVM language.
- Desirable: some IntelliJ IDEA experience.
- Overview of Kotlin history
- How to start your first Kotlin project using Intellij
- REPL
- Defining properties - values and variables
- Defining functions - named and default arguments
- Expressions vs statements
- Control structures
- Type inference
- String templates and multiline strings
- Nullability
- Kotlin hierarchy
- Classes, Objects, Interfaces
- Data Classes
- Enum Classes
- Sealed Classes
- When statements, exhaustive evaluation
- Inline classes
- Smart casting
- Functions
- Lambdas
- SAM conversions
- Higher Order Functions
- Extension functions
- Lambdas with receiver
- Pairs and Triples
- Ranges and Progressions
- Maps, Lists, Arrays, and Sets
- Scope functions (let, run, with, apply, also)
- Working with collections
- Sequences
- Generic Types
- Variance (in / out)
- Operators and operator overloading
- Kotlin DSLs
- Kotlin contracts
- Class and property delegation
- Component destructuring
- Suspend
- Desugaring coroutines
- Continuations
- Restrict Suspension
- Coroutine contexts, dispatchers, and context shifting
- Structured concurrency and cancellation
- Exception handling and supervision
- Flow
- Channels
- How Kotlin works on JVM
- Taking a look into the generated bytecode
- Working with Java from Kotlin code
- Working with Kotlin from Java code
- Kotlin Multiplatform
- Metaprogramming and Arrow Meta
- Arrow FX and Arrow Streams
What you'll learn
This course covers the essential topics for building Kotlin programs. We’ll cover all of the concepts that are required to master the language. Here is the table of contents:1. Introduction to Kotlin
2. Kotlin Syntax
3. Type System
4. Functions
5. Kotlin Standard Library
6. Beyond Basics
7. Coroutines
8. Java Interoperability
9. Libraries, ecosystem, and more!
After completing this course, you’ll be ready to tackle any professional projects.