FOSDEM 2023 conference from a mobile developer perspective
Short wrap-up of how it was
FOSDEM, or Free and Open source Software Developers’ European Meeting, is the conference about open source software, as its name suggests. It takes place in Brussels, Belgium, at Université Libre De Bruxelles (ULB). This article is about the conference from 4.-5. 2. 2023.
Hôtel de Ville de Bruxelles at Brussels centrum
All over the university, different talks take place, where every room is dedicated to one programming field. Starting from embedded systems to servers and all over to big data processing. Everyone from the programming community can find talks close to their heart.
What about mobile development?
At the conference was the Kotlin room, where interesting concepts not only about Kotlin itself were presented, but many of the talks focused on Kotlin Multiplatform. That is where I spent most of my time.
Introduction slide from the welcoming at the room
I don’t want to tarnish the invested work of the presenters at the conference. I will give only the main takeaways for mobile development to encourage you to go to their website and check the talks. It does not imply you should not watch pure Kotlin talks too. Everything was recorded and is free. Just pick your talk and watch.
At time of writing this article, some videos might not be still uploaded/processed. You can find slides and other resources under the Links section too. fosdem.org
Kotlin perspective
Kotlin is evolving at the current moment. As Kotlin has become the leading language for Android development, most developers use Kotlin to push their apps further. However, the interoperability with Java makes Kotlin a suitable candidate for the backends, and there is a growing trend of transforming Java implementation to Kotlin. Performance improvements and other features are coming with the new compiler v2.0.
More here at: The State of Kotlin.
Kotlin Multiplatform — KMP
KMP introduction
KMP entered the beta stage. Most of the implementations are stable, but some work might be required after pushing it to the production-ready state. The main aim of the KMP is to write shared business logic once and distribute it across different platforms. Everything should be included in one module as one framework. This will limit the required team size.
If you are new to KMP and in search of some beginning resources, check:
Kotlin Multiplatform: From “Hello World” to the Real World
Handling the suspend Kotlin functions and sealed classes on the iOS side
In iOS, there is no concept of coroutines like in Kotlin. This can be problematic for the iOS developer coming to KMP. Function wrappers are generated upon annotating the required suspend functions by Koru library. It operates as an abstraction above the coroutine logic, which is more familiar to iOS developers. Created wrappers make coroutines more trivial and compatible with Combine, RxSwift and other libraries.
Sealed classes do not have a parallel implementation in Swift. The closest thing is the enum implementation. There were presented plenty of good practices!
More shortcuts for iOS developers can be found in this talk:
Kotlin Multiplatform for Android & iOS library developers
Dependency injection and mocking
KODEIN koders developers presented their open-source solutions for the mocking and dependency injection. Even though during the usage of native Kotlin, you do not have access to the reflection, which is used during mock creation. They created a mock framework, which enables you to mock interfaces of used classes in tests even in the native Kotlin. The dependency injection framework is still under development. However, it brings a simple way of declaring the providers and using one container to access everything.
To check their talks, go here:
- A mirror without reflection for Kotlin/Multiplatform
- Toward better Kotlin Multiplatform architecture with Dependency Injection and KSP
More dependency injection — Koin 3.2
The lead developer of the Koin presented a new verbose way of declaring dependencies in the modules, passing parameters, injecting fields, etc., which does not change how it works but makes it much more readable for developers. The Koin Annotations are also getting to its stable version v1.0. So you do not need to use the DSL, but you can annotate the classes. It is up to the developer which approach is better.
For more details, go here:
Improving the Kotlin Developer Experience in Koin 3.2
Adding some Rust code
Many projects are programmed in Rust because of obvious reasons. It is one of the top-rated programming languages nowadays. If you have a lot of logic created in the Rust, now you can port it to the KMP. With the Kotlin-Rust JNI bridge, you can send data and commands to Rust and receive the results.
Check it out here:
KRuMP — Kotlin-Rust-Multiplatform?!
Compose UI
Systematize your UI with Vitamin
A minority of people run into the problem of developing UI systems for multiple apps. Some companies own more than dozens of apps. Moreover, they should be built familiarly, so they are recognizable. UX should be intuitive from other apps. Even though, if you develop a single app, attractive systematized UI is still a must-have. This brings the Vitamin design system, which contains multiple implementations for Android Jetpack Compose and other platforms.
If you develop multiple apps with the same fill, check this one:
Take your shot of Vitamin!
Testing the compose
The last talk in the room was about Jetpack Compose testing. If you have never written the test with Jetpack Compose and have experience with other frameworks, or even if you have never written a test, this talk is for you. The presentation nicely lays down the fundamentals and makes you eager to try it out.
Check the testing here:
How to test your compose UI
Kotlin room wrap-up
As you can see, many topics were covered at the conference. It took one whole day to present everything. And there was one more day ahead of us. All the speakers had impressive presentations about trending topics. I learned a lot and took a couple of Kotlin/Android stickers (Thanks!). Hopefully, next year will bring even more to the table of mobile development. My apologies if I missed something. I could not attend everything.
The Kotlin room talks occurred on 4.2.2023. Luckily, I could spend time in rooms exploring other topics the next day.
What I think about FOSDEM
This was my first time at FOSDEM. Let’s hope it was not the last time. It was a well-spent time gathering a vast amount of information from pleasant people. Next time, I will spend more time in other rooms, not only in my niche.
FOSDEM is not only about the talks but about meeting other people. Open-source projects have their stands there. You can talk to the creator of your favourite program and take some free merch like stickers and badges. Feel free to talk to speakers after they have finished the presentation. They usually sit in the audience and will be happy to answer your questions.
Friendly suggestion. Bring your food and water because even though there are food stands outside. At noon, many people will have the same idea about getting food. It does not get better over time. In most cases, you will stay in the queue for 30 mins or more. It is more feasible to go for dinner at night in the city.
If the room is packed, you should wait until the end of the presentation. Some people get up and move to other talks. It is free, so many people come.
If you are in Brussels and you are not from a close region, do yourself a favour and extend the weekend there. Brussels contains a lot of intriguing places, which you should not skip during your stay there. Enjoy a combination of fries with beer, have a waffle for breakfast and take away one of their chocolates.
Thanks for reading! Thanks to those who participated at FOSDEM. Do not forget to hit the follow button for more articles!
Clock Tower of the ULB Solbosch Campus