5 takeaways from Droidcon Berlin

On July 1–3 LeanCode’s Mobile Team participated in the 11th edition of Droidcon Berlin. The event took place in the CityCube and attracted well over 1200 developers who could participate in more than 100 tech talks. It was a great opportunity to keep in touch with new technologies and meet best-in-class speakers from mobile teams in Berlin, Europe and worldwide. Below you can find a few takeaways from our trip to Germany.

1. Android 🧡 Kotlin

It was only two years ago, at I/O 2017, when Google made Kotlin a first-class language for writing Android apps and it was definitely a great decision. Google says that more than 50% of Android developers use Kotlin to develop their apps, and in the latest Stack Overflow developer survey, it ranks as the fourth most loved programming language.

Moreover, there is a possibility to write multiplatform applications in Kotlin. Kotlin Multiplatform gives us an opportunity to share the code between different platforms. It supports JVM, Android, JavaScript, iOS, Linux, Windows, Mac, and even Raspberry Pi.

Therefore, there is nothing special that most of the presentations were related to Kotlin and there was a possibility to learn a lot of things about the language and new/upcoming features.

If you haven’t had a chance to check Kotlin yet, you should definitely try it out as soon as possible!

2. Let’s talk about new features

What is really annoying in creating UI in native Android? You need to keep the view hierarchy as flat as possible because of performance. The problem was partially solved in Android N by introducing ConstraintLayout but still, some more complicated views were hard to maintain using XML files.

One of the most significant announcements made on Google I/O 2019 (on Android side) was Jetpack Compose. What is it?

Jetpack Compose is an unbundled toolkit designed to simplify UI development. It combines a reactive programming model with the conciseness and ease of use of the Kotlin programming language.

So we can say that Jetpack Compose is the new and a better way of creating native Android UI. Why? One of the reasons behind that is that Jetpack Compose uses Kotlin and Kotlin has a possibility of designing a DSL which makes code much more readable.

Dealing with asynchronous operations is an everyday reality in mobile developers’ lives. Writing code in a non-blocking manner requires incorporating threading, callbacks, futures or some reactive extensions like RxKotlin. Each of those approaches has its pros and cons.

Kotlin 1.3 ships with coroutines — a way to handle asynchronism once for all. Coroutines allow us to write code that is scalable, performant and easy to understand.

What distinguishes coroutines from other approaches is that they allow you to write code that looks like a synchronous one, it is easy to manage threads and are easy to learn. Here is an example:

fun showUserOrders(username: String, password: String) =
GlobalScope.launch(Dispatchers.Main) {
val user = withContext(Dispatchers.Default) {
login(username, password)
}
val orders = withContext(Dispatchers.Default) {
fetchUserOrders(user.userId)
}
showUserOrders(orders)
}

3. Flutter is coming

If you think that on Droidcon Berlin you could only learn about native Android programming — you are wrong. There were plenty of presentations about multiplatform mobile development and most of them were about Flutter — UI toolkit for building applications for mobile, web, and even desktop.

After the announcement of Flutter’s stable version (1.0) in December 2018, it gains more and more followers. Moreover, the latest Stack Overflow developer survey ranks Flutter as third in most loved other frameworks! So it is definitely a good idea to check this framework. Droidcon Berlin gave a great opportunity to get to know with Flutter’s basics, talk with Flutter’s GDEs, meet a lot of people from the community, and even Flutter/Dart developers from Google.

At LeanCode we use Flutter extensively in our projects and believe that current popularity and market share are just the beginning of a great journey.

4. Tackling Real Life problems

Droidcon wasn’t solely focused on presenting new, cutting-edge features and trends. Some of the speakers shared their knowledge and experience in real-life Android development. To name a few:

Design for errors — An introduction to Domain Modeling with a bit of Arrow

What I learnt by building the exact same app in Kotlin (Native Android), NativeScript and Flutter

From four wheels to two — How Lyft adds new options without missing a ride.

We are glad that we had an opportunity to listen to their presentation. Hearing about problems they stumbled upon and a way to resolve them significantly broaden our horizons.

5. Community

Attending the conference is not only an opportunity to learn but also to integrate with the community. During Droidcon we had a chance to chat with Android and Flutter experts from all around the world. We discussed the technical details of Dart compiler with Google’s employees. We got to discuss our architecture solutions with several mobile professionals. We investigated some bugs on CI/CD platforms and increased the speed of deployment on the spot.

Meeting in person professionals that we previously had known only from Twitter or blogs was a great experience. As always we can’t wait to meet them again.

6. Summary

We had a great time at Droidcon 2019! We had an opportunity to learn a lot of new things, to meet a lot of great people and make a lot of new connections. Thanks for all the great presentations and talks and see you at Droidcon Berlin 2020!

By:
Rafał Adasiewicz

Maciej Korzeniewski

Dominik Roszkowski

Mobile Developers @LeanCode

We are a group of technology enthusiasts working together for our clients to create better solutions for their digital consumers.