- Leren door doen
- Trainers met praktijkervaring
- Klassikale trainingen
- Gedetailleerd cursusmateriaal
- Duidelijke inhoudsbeschrijving
- Maatwerk inhoud mogelijk
- Trainingen die doorgaan
- Kleine groepen
In de cursus Kotlin Programmeren van SpiralTrain leren de deelnemers de object georiënteerde en functionele taal Kotlin te gebruiken voor software ontwikkeling. Kotlin is een moderne statisch getypeerde taal die volledig compatibel is met Java en draait op de Java Virtual Machine (JVM). Kotlin heeft moderne taal kenmerken zoals type inferences, null safety, coroutines en unchecked exception die in Java inbreken. Bovendien is Kotlin code in vergelijking met Java veel compacter. De inhoud van de cursus sluit aan bij de meest recente versie van Kotlin.
De cursus Kotlin Programmeren biedt een uitgebreide introductie in de wereld van de Kotlin programmeertaal. In deze cursus worden belangrijke kenmerken van Kotlin behandeld, waaronder de syntax vereenvoudigingen ten opzichte van Java. Ook wordt besproken dat Kotlin code niet alleen naar Java kan worden gecompileerd, maar ook naar JavaScript of native code. Hierdoor is Kotlin een veelzijdige taal die in verschillende omgevingen kan worden ingezet.
Vervolgens wordt ingegaan op de taal syntax van Kotlin. Belangrijke onderwerpen zijn type inference, mutable en immutable variabele declaraties, if en when expressions, ranges, loops en iterators. Deze elementen zijn cruciaal voor het begrijpen van de structuur en logica van de Kotlin taal.
Wat betreft objectgeoriënteerd programmeren komen in de cursus class initialization, primary en secondary constructors, final en open classes, abstract classes en interfaces aan de orde. Ook wordt ingegaan op data classes waarbij methodes zoals equals, toString en hashCode automatisch worden gegenereerd. Dit maakt het werken met objecten in Kotlin efficiënter en overzichtelijker.
Kotlin ondersteunt ook functioneel programmeren. Onderdeel van het programma zijn lambda functies, higher order functions, het doorgeven van functies als parameter en het retourneren van functies. Daarnaast wordt aandacht besteed aan extension methods, destructuring declarations, nested functies en het uitpakken van parameters met de spread operator. Deze functies bieden ontwikkelaars krachtige tools voor het schrijven van flexibele en herbruikbare code.
Eveneens wordt het Collection Framework in Kotlin behandeld, dat ondersteuning biedt voor mutable en immutable collections en sequences met lazy evaluation. Geparametriseerde types met generics passeren dan de revue en er wordt ingegaan op delegation in Kotlin met lazy en observable properties. Dit maakt het mogelijk om complexe dataverzamelingen efficiënt te beheren.
Tenslotte wordt aandacht besteed aan het gebruik van coroutines in Kotlin. Deze worden beschouwd als lichtgewicht threads en zijn uitstekend geschikt voor asynchrone afhandeling. Het begrijpen van coroutines is essentieel voor het ontwikkelen van moderne applicaties die efficiënt moeten omgaan met verschillende taken en processen.
Voor meer informatie over Kotlin en gerelateerde technologieën, kunt u de officiële site van Kotlin bezoeken. Ook kan de cursus iOS Development met Swift UI interessant voor u zijn.
De cursus Kotlin Programmeren is bedoeld voor developers die willen leren hoe Kotlin zich onderscheidt van Java en willen leren programmeren in Kotlin.
Om aan deze cursus deel te nemen is ervaring met programmeren vereist. Kennis van programmeren in Java is bevorderlijk voor de begripsvorming.
De theorie wordt behandeld aan de hand van presentaties. Illustratieve demo’s worden gebruikt om de behandelde concepten te verduidelijken. Er is voldoende gelegenheid om te oefenen en afwisseling van theorie en praktijk. De cursustijden zijn van 9.30 tot 16.30.
De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Kotlin Programmeren.
Module 1 : Kotlin Intro |
Module 2 : Language Syntax |
Module 3 : Classes and Objects |
|
What is Kotlin? Variables Type Inference Kotlin Characteristics Null Handling Safe Call Operator Properties Custom Accessors Kotlin Exceptions Kotlin versus Java Interoperability Run as ECMAScript Potential Downsides |
Packages and Imports Default Imports Basic Types Boxing Explicit Conversions Characters Arrays If and When Expressions Loops and Iterators Ranges Jumps and Labels Elvis Operator !! Operator |
Kotlin Class Initialization Property Settings Inheritance Calling Base Constructors Secondary Constructors Visibility Modifiers Abstract Classes and Interfaces Nested and Inner Classes Data Classes Destructuring Declarations Sealed Classes Kotlin Objects Companion Objects |
Module 4 : Functions |
Module 5 : Collections |
Module 6 : Generics |
|
Function Scope Local Functions Extension Functions Static Resolvement Extension Properties Recursive Functions Kotlin Tail Recursion Higher Order Functions Lambda Expressions Closures Infix Functions Operator Functions Scope Functions |
Collection Types Immutable Collections Mutable Collections Collection Hierarchy Iterators Ranges and Progressions Sequences Common Operations Write Operations Transformations Filtering Plus and Minus Grouping |
Generic Classes Generic Functions Type Inference PECS Principle out Keyword in Keyword Type Projections Subtype to Supertype Variances Covariance Contravariance Star Projections Generic Constraints |
Module 7 : Delegation |
Module 8 : Interoperability |
Module 9 : Coroutines |
|
Delegation Design Pattern by Keyword Inheritance Alternative Delegated Properties Lazy Properties Property as Input Return Type as Lazy Observable Properties Standard Delegates Properties in Map Local Delegated Properties Delegate Requirements Translation Rules |
Calling Java from Kotlin Calling Static Methods Using Java Collection Reserved Words in Kotlin Calling Kotlin in Java Calling Kotlin Functions Calling Extension Functions Using Mutable Collections Immutable Collections Files with JVM Annotation Functions with JVM Annotation Calling Kotlin Class Calling Kotlin Singleton |
What are Coroutines? Concurrency Pattern Light-weight Threads Coroutine Scope launch Method Blocking versus non-Blocking Structured Concurrency Scope Builder Global Coroutines Cancelation and Timeout Coroutine Context Channels Asynchronous Flow |