Virtual | Venkat Subramaniam: Kotlin for Developers
Approximate schedule each day:
Agenda: Day 1
-
Building Kotlin Code
- Why Kotlin?
- Compiling
- Bundling Kotlin
- Using the REPL
- Running as a Script
- Compiling to Java bytecode
- Compiling to JavaScript
- Exercises
-
Kotlin Essentials
-
Defining variables and constants
-
String Templates
-
Raw Strings
-
Expressions over statements
-
Type Inference
- Exercises
-
Working with Functions
-
Creating Functions
-
Default and Named Arguments
-
varargs and spread
-
Destructuring
- Exercises
Agenda: Day 2
-
Collections
-
Java Collections in Kotlin
-
Pair and Triple
-
Generics
-
Variance
-
Sequences
-
Iteration
- Exercises
-
Types and Argument Matching
-
Types in Kotlin
-
Type Safety
-
Nullable
- Casting when as a statement and an expression
-
Extension Functions on Any: let,also,apply,run
- Exercises
Agenda: Day 3
-
Classes and OO Programming
-
Creating Classes
-
Inheritance
-
Writing Constructors
-
Overriding Methods
-
Data Classes
- Exercises
-
Delegation and Extensions
-
Extension Methods
-
Delegation
-
Lazy
-
Creating custom delegations
-
Exercises
-
Functional Programming in Kotlin
-
Imperative vs Functional
-
Kotlin's Lambdas
-
Idioms and styles in Kotlin
-
Lexical vs dynamic scoping
-
Inline functions with lambdas
-
Non-local returns and labeled returns
- Exercises
Agenda: Day 4
- Internal Iterators and Lazy Evaluation
- External vs internal iterators
- Filter, map, reduce
- Flatten and flatmap
- Sorting and grouping
- Sequences and infinite series
- Exercises
-
Coroutines
-
Asynchronous Programming
-
Why use coroutines?
-
Making use of Coroutines
-
Internal representations
-
Exercises
-
Creating DSLs
-
Creating Fluent Syntax
-
Infix
-
Learning about implicit objects
-
Designing DSLs
- Exercises
Agenda: Day 5
-
Java Integration
-
Calling Java code from Kotlin
-
Calling Kotlin code from Java
-
Keeping an eye on interops
- Exercises
-
Automated Testing with Kotlin
-
Test Driven Development
-
Empirical vs Interaction Tests
-
Data Driven Tests
-
Mocking out dependencies
-
Testing Coroutines
-
Exercises
Are there any prerequisites?
Knowledge of programming fundamentals is required and some knowledge of Java will be helpful.
Upcoming training dates
Sorry, there are no products in this collection