About the course:
Our Advanced Kotlin training course will take your existing development skills up a notch, taking in Coroutines, testing tools and techniques, web services with Ktor, and reactive programming with RxKotlin.
This course can be combined with topics from our Intro to Kotlin course and / or Kotlin for Android course to build a comprehensive training programme for people new to these technologies.
As with all our courses, we offer this as a remote virtual instructor-led workshop, giving you the flexibility to 'slice and dice' a custom training solution to meet your team's needs, taking into account learning goals, on-going projects, and working-from-home considerations.
By the end of this course, you will have learnt about:
- Coroutines and Coroutine Channels
- Kotlin Testing tools and techniques
- RESTful services with Ktor
- Reactive programming with RxKotlin
Useful resources
Who should attend
Developers who are looking to extend their capabilities with this increasingly popular alternative to Java.
Prerequisites
Delegates should have attended our Intro to Kotlin training course or have equivalent experience with Kotlin.
Live, instructor-led online and on-site training
We appreciate that you need flexibility to fit in with new working situations - whether you're an individual, part of a distributed team, or simply have projects and deadlines to meet.
Our remote training can take place online in a virtual classroom, with content split into modules to accommodate your scheduling challenges and meet your learning goals. Get in touch today to find out how we can help design a cost-effective, flexible training solution.
As soon as it's safe, we'll return to also offering the on-site custom training courses and programmes upon which we've built our reputation.
Welcome
- Course Overview
- Introduction to the course
- Course Outline
- Trainer and Delegate Introductions
Coroutines
- Why Asynchronous Programming and Asynchronous Execution
- What are Threads?
- Problems with Threading
- Coroutines
- Implementing Coroutines
- Coroutine Scope
- Coroutine Dispatchers
- Coroutine Builders
- Suspend Functions
Coroutine Channels
- Coroutine Jobs
- Coroutine Channel Communications
- Simple Channel Example
- Multiple Senders
- Multiple receivers
- Buffered Channels
Kotlin Testing
- JUnit Test Framework
- JUnit 5.x
- Terminology
- Configuring JUnit with Maven and Gradle
- Locating the Tests
- Conventions for tests
- Sample Kotlin test
- Assertions
- Fixtures
- Test Order and Parameterized tests
- Factory tests
- Exception Testing
- JUnit 4.x v JUnit 5.x
- Mocking
Ktor
- RESTFul services
- What is Ktor?
- Using Ktor with Kotlin
- Steps for building a Ktor service
- Setting up the embedded server
- Configuring Jackson JSON converter
- Configuring routing requests
- Example application using GET
- Working with POST, PUT and DELETE
RxKotlin
- What is Reactive Programming?
- The ReactiveX Project
- The Observer Pattern
- Hot and Cold Observables
- Advantages & Disadvantages of Reactive Programming
- RxKotlin Reactive Programming Framework
- Observables in RxKotlin
- Observer Object
- Multiple Observers
RxKotlin Subjects and Operators
- Subjects in RxKotlin
- Observer Concurrency
- RxKotlin Operators
- Piping operators
- Creational operators
- Transformational Operators
- Combinatorial Operators
- Filtering Operators
- Mathematical Operators
- Chaining Operators