Saagie will be at the World IA Cannes Festival from February 9 to 11→ Come and meet us, contact our staff!


We were at KotlinConf’19!

This year, we participated to the KotlinConf at Copenhagen. It was a time for a part of the team to share two entire days of Kotlin conferences.

team kotlin

December 4th

Part of the team leaves Rouen towards the airport to go to Denmark. A large part of the day is dedicated to transportation in order to be present at conferences on Thursday morning.

Registration is done. Rooms are recovered. All members of the team is here … Time to have our first danish evening…


December 5th

First day of conferences … A dense program !

After a keynote introduce us the version 1.4 of Kotlin (available in 2020) as a version of stability and multiplatform oriented, we have seen different kind of subjects like : catching exception in coroutines, migrate a team from Java to Kotlin using Arrow, the experimental serialization module in Kotlin, the duo gRPC / Kotlin and running a Kotlin application on a Raspberry Pi.

Varied but very interesting subjects, some directly related to what we do on a daily basis, and others a little more open.

The day ended with two “flagship” moments of this edition: the announce of Jetbrains Space and the Party, organized by the team.

December 6th

Second day of conferences, again, a lot of subjects : Kotlin flow, Kofu, Arrow Meta, Java 19 comparison with Kotlin, how to make tests on coroutines, replace YAML with Kotlin DSL …

As the day before, it was an intense day, but very fascinating !

After this full Kotlin conferences day, we walked around to visit Copenhagen and all its Christmas Markets.



This edition (the first for us) was very well organized with a rich and diverse program and cutting-edge subjects and others more “easy to access”. The venue was cleary large enough to hold everyone and the rooms were of satisfactory capacity (some conferences were full, but we were lucky to have seats).

A very nice experience for us who are more accustomed to multi-technology conferences and quite general. Here, 99% of people use Kotlin, and we end up with very specific subjects.

Pierre : Bridge the physical world : Kotlin/Native on Raspberry Pi par Qian Jin

I like in conferences, go and see a subject “out of context” of the usual use. Here in this case, I’m not too familiar with Kotlin / Native and we all have a Raspberry Pi lying around in the corner, that’s why I choose this conference !

Qian Jin (@bonbonking) is a French Android developper, works at Xebia (at Paris). The purpose of her talk was to show the migration of a small project to play rock-paper-scissors from an Android Things Kit (not maintained) to a Raspberry Pi 3+.

The goal was to show how to build an application in Kotlin / Native allowing the use of external modules (camera, servo motors, LED, …) from the code using C libraries and compiling from another machine (here a MacbookPro for acceptable compile times!) and execute this code on a Raspberry Pi.

Finally, the highlight of the show, she even managed to launch tensorflow calculations from Kotlin directly on the raspeberry pi !!

A dynamic conference, well explained, which shows what works and especially the many problems still existing (little documentation, compilation of libraries on the host machine …). But on the whole, by searching and persisting there, we can make some nice things!

Some links (slides and video): 

Guillaume: Bootiful GraphQL with Kotlin by Dariusz Kuc & Guillaume Scheibel

I choose to dwell on the conference because it’s a conference which is in what we do at Saagie.

Dariusz Kuc and Guillaume Scheibel are two developers working at Expedia and who have contribuated to an open source library named Graphql Kotlin and done by Expedia. The goal of their talk was to present this library and the benefits that she could have compared to other libraries. Considering that we use in our product an other library that show its limits, this conference showed me that GraphQL Kotlin is a real alternative because it allows to do code first, therefore to generate the GraphQL schema from code, knowing that the syntax of a Kotlin class and of a GraphQL schema are very similar. We can also use couroutines wich are a big feature of Kotlin and wich permit to do asynchronous in an easy way.

It was a great conference, dynamic and clearly explained of a library which has an high potential for the users of Kotlin and GraphQL

Here is the link to the library and the conference video.

Bilal: Putting down the Golden Hammer by Huyen Tue Dao

Kotlin is a multi-platform language providing a massive amount of tools improving developers life and applications code.

But sometimes, being too confident and overusing these tools can be painful, because you will be tempted to use some functions or APIs that you just don’t really need.

In this talk, Huyen Tue Dao gives some examples and tips to avoid these cases, by making you thinking about what you really need when you are developing something.

For example, she talks about the it keyword in Kotlin. When using scope functions, you can access the context using it, without using an arrow function to specify this context. But when you are using nested scope functions, this become unreadable because you can have it on several levels, but none are representing the same context. So she is advising to not overuse this it and specify with an arrow function the context when we do not have trivial cases. It’s a simple advise, but I already saw some code with at least three nested it, and indeed it is unreadable.

One another feature in Kotlin is the extensions functions. It allows you to define a function on an already existing type (it can be a custom type created by the developer, or a Kotlin type like String). It is similar to using the prototype in Javascript. But once you discover this feature, you want to use it everywhere because it can serves you well. This is the con, you have to know when to use it. She is advising that when you are doing specific business logic, you have to think twice about using extensions functions. It has to be for generic use cases, functions that will be in differents scopes, and not only a one shot.

Huyen Tue Dao gives others really good examples about “putting down the golden hammer” (so basically not overusing Kotlin tools), she was a really good speaker, and I highly recommend it when you are learning Kotlin if you want to avoid some traps you can easily fall in.