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 official programming language for Android by Google some years ago.
This course is designed for developers that want to grasp the language, so they can face any Kotlin projects professionally.
- 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.
- One year of experience with any object-oriented or JVM language.
- Desirable: some IntelliJ IDEA experience.
- How start our first Kotlin project (IntellIJ).
- Class, Interface, Object.
- Properties (val vs var).
- Property accessors (getters and setters).
- Higher Order Functions.
- Named and default arguments.
- String templates and multiline String.
- Kotlin's type System.
- Expressions vs statements.
- Control flow structures (if, for, while).
- Collections(builders, map, flatMap, fold, reduce…).
- Scope functions (let, run, with, apply, also).
- Operators and operator overloading.
- Extension Functions.
- SAM Conversions (sugar).
- Lambdas with receiver.
- Kotlin DSLs.
- Class and property delegation (Lazy delegate).
- Inline classes.
- Generic types.
- How to leverage Kotlin type system for domain modeling.
- Pairs, Triples and Ranges.
- Data classes.
- Enum classes.
- Sealed classes.
- When statements, exhaustive evaluation.
- Smart casting.
- Kotlin contracts.
- Component destructuring.
- Precise domain modelling.
- Target platforms supported.
- Setting up an MPP program.
- Expected / Actual.
- Backwards JDK compatibility.
- Bytecode generation.
- Bytecode optimizations (inline).
- A word about metaprogramming.
- Live demo.
- Coroutines as lightweight threads.
- Blocking and non blocking coroutine launchers.
- From callbacks to direct style.
- Coroutines as a means to track side effects.
- Existing libraries (KotlinX / Arrow Fx Coroutines).
- Basic library comparison.
- Writing sync and async effects.
- Integration with third party libraries.
- Coroutine contexts, Dispatchers, context shifting.
- Collaborative cancellation.
- Streams (KotlinX Flow, Arrow Streams).
- Exposing problems.
What you'll learnThis 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. Intro to Kotlin (2h)
2. Kotlin Essentials (2h)
3. Domain modeling (2h)
4. Kotlin Multiplatform (2h)
5. Stdlib primitives (2h)
6. Stdlib Coroutines (2h)
7. Runtime libraries (2h)
8. Q&A and practice (2h)
After completing this course, you’ll be ready to tackle any professional projects.