Kotlin Development

Training

In Belfast

Price on request

Description

  • Type

    Training

  • Level

    Intermediate

  • Location

    Belfast (Northern Ireland)

  • Duration

    4 Days

  • Start date

    Different dates available

This is a 4 day, JetBrains accredited course aimed at developers moving to Kotlin from other JVM languages. By the end of the course you will learn to:
1) Program using both the functional and object- orientated features of Kotlin.
2) Write RESTful services in Kotlin via Spring Boot, MVC and WebFlux
3) Unit test and refactor Kotlin code via KotlinTest, Mockito and IntelliJ
4) Create responsive mobile applications using Kotlin and Android Studio

Important information

Documents

  • Kotlin Development

Facilities

Location

Start date

Belfast (County Antrim)
See map
Instil Software, Linen Loft, 27-37 Adelaide Street, BT2 8FE

Start date

Different dates availableEnrolment now open

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Subjects

  • Java Developers
  • Java
  • Groovy
  • Clojure
  • Functional Programming Concepts
  • Spring Services
  • Mobile development
  • Android development
  • JVM Languages
  • JVM

Teachers and trainers (1)

Garth  Gilmour

Garth Gilmour

Head of Learning

Course programme

Outline

Introducing Kotlin on the JVM

  • Four coding paradigms within Java 9
  • Limits imposed by backwards compatability
  • The new consenses in language design
  • A brief history of the Kotlin language
  • Comparing Kotlin to Scala and Clojure
  • Comparing Kotlin to Swift and TypeScript

First Steps with Kotlin

  • Declarations and type inference
  • The Kotlin type system and conversions
  • Packages, access levels and default imports
  • Nullable types and operators for null safety
  • Keywords for selection and iteration
  • Options for declaring basic functions
  • Overloading, infix functions and ranges

Object Orientation

  • Decompiling Kotlin classes using ‘javap’
  • Understanding properties and backing fields
  • A detailed explanation of primary constructors
  • Adding extra fields and secondary constructors
  • Extra features automatically added to data classes
  • Overriding, abstract classes and interfaces
  • Using object expressions as event handlers
  • Object declarations and companion objects

Agile Development

  • Review of core principles of Agile development
  • Refactoring Kotlin code within IntelliJ
  • Performing TDD in Kotlin using KotlinTest
  • Using Mockito to separate types from dependencies
  • Options for BDD and Property Based Testing

Generics and Type Parameters

  • Revision of covariance and contravariance
  • Common issues with bounded wildcards in Java
  • How declaration site variance simplifies generics
  • Support for use-site variance (aka type projection)
  • Declaring single and multiple constraints on types

Working with Collections Part 1

  • Introducing the Kotlin collections library
  • Working with mutable and immutable collections
  • Support for destructuring types and collections

Functional Programming

  • Working with function references and code blocks
  • Declaring functions as parameters and return types
  • Using higher order functions for internal iteration
  • Creating your own versions of ‘filter’, ‘map’ etc…
  • Using higher order functions to prevent duplication
  • Understanding partial invocation and currying
  • Choosing between code blocks and local functions
  • Common misunderstandings regarding enclosure

Working with Collections Part 2

  • Basic coding using ‘filter’, ‘map’ and ‘forEach’
  • Testing against a predicate using ‘all’, ‘any’ etc…
  • Why ‘flatMap’ is such as valuable operation in FP
  • Distinguishing between ‘fold’, ‘foldRight’ and ‘reduce’
  • Converting between collection types within FP

Interoperability Between Kotlin and Java

  • General guidelines for mixed language codebases
  • Considerations when calling Java libraries from Kotlin
  • Obtaining and using java.lang.Class objects in Kotlin
  • Tips and idioms for calling Kotlin libraries from Java code

Creating Spring Microservcies in Kotlin

  • Revision of the Spring Framework and RESTful architecture
  • Creating Spring Boot projects in Kotlin via the Spring Initializr
  • Declaring Spring MVC based RESTful services using annotations
  • Injecting dependencies and configuring exception handling
  • Creating reactive microservices using Spring WebFlux
  • Taking advantage of the Kotlin specific routing DSL

Creating Mobile Applications in Kotlin

  • Revision of the Android platform and Dalvik VM
  • Installing Android Studio and configuring emulators
  • Introducing the sample project for tracking expenses
  • Reverse engineering the sample activities and layouts
  • Performing dependency injection on Android with Dagger 2

Kotlin Development

Price on request