Kotlin is an object-oriented language that runs on the Java Virtual Machine. Kotlin is also a functional language, and combines the features and benefits of OO and functional programming.
This course provides a fast-paced introduction to the language for developers with experience Java or similar languages (e.g. C# or C++), and then delves deeper into idiomatic uses of Kotlin in practice.
What you'll learn:
• Writing and running Kotlin programs
• Object orientation in Kotlin
• Functional programming in Kotlin
• Implementing Domain-Specific Languages
• Using concurrency
• Best practices and advanced techniques
Course outline:
Introduction to Kotlin:
• Overview of Kotlin; Kotlin tools; Writing a simple Kotlin program; Using the interactive shell; Using the online playground
Core Kotlin Syntax:
• Types and variables; Literals; Decision making and looping; Exceptions; Enumerations; Regular expressions
Functions:
• Class-level and top-level functions; Local functions; Extension functions and properties; Variable-argument functions
Object-Oriented Programming in Kotlin:
• Classes and objects; Properties, getters and setters; Open, final, and abstract modifiers; Construction techniques; Data classes; Class delegation and the “by” keyword; Singleton objects.
A Closer Look at Kotlin Types:
• Nullability; Primitive types; Nullable primitives; Collections; Arrays
Kotlin Techniques:
• Loops and iterators; Destructuring; Delegated properties; Operator overloading
Functional Programming:
• Overview of functional programming; Lambdas and member references; Functional APIs and collections; Lazy collection operations
Going Further with Functional Programming:
• Higher-order functions; Inlining; Control flow
Domain-Specific Languages:
• Overview of DSLs; Using lambdas and receivers in DSLs; Best practices
The Kotlin Type System:
• Generics; Constraints; Covariance and contravariance; Defining and using annotations; Reflection
Concurrency:
• Creating and synchronizing threads; Callbacks; Futures; Coroutines and channel
Målgruppe for kurset:
Prerequisites:
• Experience using Java or a similar contemporary object-oriented language
Language:
• English course material, English speaking instructor