Our Kotlin training course will focus on teaching Kotlin from beginner to an intermediate/advanced level.
Typically Kotlin is used for Development of Android Apps or Backend applications with Java.
This course will help delegates understand the pure Kotlin Language and Best practices for using it in anger. Delegates can choose to keep Labs as "vanilla" Kotlin, or to apply to Android or Java development.
In this course we will focus on practical Kotlin development. We will briefly go over the Kotlin language in the ways it is equivalent to Java. We will spend a bit of time introducing concepts that Kotlin provides that are not found in Java.
Following that, we will begin to learn Kotlin development by creating an Android application using all of the modern libraries and technologies that are necessary for a successful commercial application.
Objects and variables
Nullability and smart casting
Composite data types
Classes and properties, interfaces, abstract classes, enums, overriding methods and properties
Primary constructors and initialization blocks
Object declarations and companion objects
Default arguments and named argument syntax
Top-level functions and properties
Simpler lambda notation
Lambda functions under the hood
Last lambda in argument convention
Java Single Abstract Method lambda interface and usage of them in Java methods
Function type with receiver, function literal with receiver, referencing extension functions
Predefined functional literals with a receiver
Making your own DSL
Basic collection processing functions
Making collection flat and grouping it
Converting between collection types
Functions used to process texts and to accumulate collections to texts
Covariance, contravariance, and invariance
Common issues with bounded wildcards in Java
Declaration-site variance, use-site variance, and type projection
Declaring single and multiple constraints on types
Referencing types, classes, functions, and properties
Kotlin references vs Java references
Structure and types of references
Guidelines for mixed language codebases
Calling Java libraries from Kotlin
Preparing Kotlin to be used from Java
Annotations to work with Java annotation processing libraries
Contracts feature in Kotlin to alleviate compiler errors
Variety of Kotlin structures
How to use functions at different levels
How classes changed in Kotlin and how it influences Android development
What are object expression and object declaration
Functional programming features in Kotlin
How to use Kotlin Android Extensions and KTX
What exactly are Data classes
How to use Sealed classes
You will understand deeply Kotlin type system
How to define and use Extension functions
How to do expressive and efficient collection processing in Kotlin
What are and how to use Scope functions (let, apply, run, also, with, takeIf, takeUnless)
What are generic variance modifiers, how to use them and what are the limitations
Why inline classes are useful and important
How to create and use Kotlin property and interface delegates
How to use and create Kotlin DSL
How to write Kotlin code in an idiomatic way
What are Kotlin code conventions and guideline
Basic Kotlin structures
Functions on different levels and functional style
Kotlin OO programming in Android
Object expression, object declaration and companion object
Kotlin type system
Functional programming in Kotlin
Collections and string processing
Scope functions (let, apply, run, also, with, takeIf, takeUnless)
Generic classes and functions, making own collection processing function
Kotlin generic type parameter declarations and modifiers
Kotlin property and interface delegates
Reflection in Kotlin, and how to use Java reflection in Kotlin
DSL usage and creation
Interoperability between Kotlin and Java
Basics of Kotlin coroutines
Rules of idiomatic Kotlin
Kotlin style guides
See why people choose JBI
06/08/2018: Kotlin develops quickly! Last year brought us many changes and possibilities. Both in the community and in the language. Let’s summarize them....
31/07/2018: Example programmes delivered: Professional Scrum Master PSM I Agile and Scrum These are 2 day courses which focus on understanding the agile/scrum...
11/01/2019: Cloud computing has entered its second decade and is still growing strongly. Gartner, for example, has forecast the global public cloud services...
02/01/2019: Microservices – some practical applications In today’s world you need to be able to quickly build and scale large applications – and microservice...
20/12/2018: Python or R in tomorrow’s world? Python and R are popular programming languages extensively used by data scientists today. But what about tomorrow...
Bring a JBI course to your office
and train a whole team onsite
0800 028 6400 or request quote
Get in touch
0800 028 6400
Excellent feedback, consistently !
"great tips help reduce build times"
"we got access to exclusive content"
"Short course meant less time off"
"what an inspiring trainer !"
"colleagues at 2 sites joined via web"
"I passed my exam the next day"