lily

DroidconUK is a two days conference in London. This edition was on October 26th and 27th. Asaf, a colleague, wanted to attend as well so we flew together on the 25th. Many thanks to MyHeritage for helping us getting there!

before the flight

I was at DroidconUK in 2012 and 2013 and I missed being there ever since! For non-americans DroidconUK is the best Android Conference: you get to attend high level talks and meet & talk to well-known developers and Googlers from the Android Community!

Day 1

Android - A developer’s History by Chet Haase and Romain Guy

This talk was about all the versions and devices since the beginning of our Android times. I started on Android around 2009 when I got convinced by Christophe Beyls (who wrote the Hidden Costs of Kotlin articles) to try this new platform as I was already a Java developer (on J2EE 🤢). I bought an HTC Hero which still boots to this day but is stuck on Android 2.1 and its so outdated it just sits in my office as a piece of nostalgia.

android history talk

Data Persistence in Android — There’s Room For Improvement by Florina Montenescu

Florina’s talk was about Room and was super interesting. I used Room in Talking Kotlin and it fits perfectly well with the other Architecture Components. A nice info I took out of this talk is that when you use @Query with LiveData the SQL SELECT query runs on a background thread for free:

@Dao
interface ItemDao {
    @Query("SELECT * FROM item order by pubDate DESC")
    fun getAll(): LiveData<List<Item>>
}

But calling a function annotated with @Insert, @Update or @Delete runs on the UI Thread. Two lines are enough to fix that issue thanks to the Kotlin Coroutines library:

async(CommonPool) {
    TKDatabase.getInstance(context)
              .itemDao()
              .insert(items)
}

Room

Android Internals by Effie Barak

Effie’s talk (from Pinterest) was about Android Internals. I think every developer should want to know what a Zygote is and why we can’t find by reflexion the object behind a system service. Worth watching!

Android Internals

Vector Workflows by Nick Butcher

Nick Butcher did a super-dense but mind-blowing talk on Vector Drawables and Animated Vector Drawables. I wanted to switch resources to vector drawables in my apps for a very long time but it seemed so complicated. Nick showed us that it is actually quite simple with the help of Sketch (first time I hear about it) and shape shifter.

vector drawables

Doo z z z z z e by Ralf Wondratschek

Ralf (from Evernote) is the author of android-job. Hearing his thoughts on why this library is necessary for background jobs is eye-opening. We actually use this library in MyHeritage’s app and we are quite happy with it.

Doze

Why do we need Clean Architecture by Igor Wojda

Really interesting talk, worth watching! I’ve got to admit I feel I fall behind in terms of Clean Architecture and testing best practices. I do implement presenters and write tests but I have a guts feeling I do not do it in a way it gives me a lot of value over my code. Sometimes it does catch a bug but not that often. I will apply much more clean architecture in the near future to write better tests.

Clean architecture

Day 2

Developers Are Users Too by Florina Montenescu

This talk was mostly inspiring. It’s about Design principles applied to create APIs in a user friendly way, because at the end, developers are (API) users too. The talk is being translated to a blogpost series and you can find the first one here.

Devs are users

Testing Android apps based on Dagger and RxJava by Fabio Collini

This talk was rich in information but I didn’t manage to follow. RxJava and Dagger are both on my learning list for a long time. I tried to use Dagger but I didn’t understand how to do that properly, yet. Actually, other Dependency Injection frameworks are popping lately like Toothpick, Kodein or Koin so I might give those a chance too.

Dagger and RxJava in Tests

Becoming a Master Window Fitter by Chris Banes

The mains subject here was the Window on Android and the related subject of shared element transitions. I feel like shared element transitions are a new layer on top of our already complicated activities but I should still implement those as it can add a nice “wow effect”.

Window

Pragmatic Kotlin on Android by Josh Skeen

First full talk about Kotlin, yay! Besides the nice tips from this talk, I was super happy to see that Kotlin talks got the main room (Gate 1) for almost a full day. The adoption rate of Kotlin is phenomenal within the Android Community!

Window

Travelling across Asia - Our journey from Java to Kotlin by Maria Neumayer and Amal Kakaiya

Maria and Amal (both from Deliveroo) shared their story on how they adopted Kotlin in their company. If you were on the fence about Kotlin or if you were considering but not sure how to approach the transition, this talk is totally for you!

Journey from Java to Kotlin

Sinking Your Teeth Into Bytecode by Jake Wharton

Jake went deep into bytecode till I what I think was Assembly code! Before learning Kotlin, I barely (if not never) thought about looking into the bytecode for the Java code I was writing. With the Kotlin Plugin in IntelliJ, you have an option to look at the bytecode generated by your Kotlin code and from there you can “decompile” this bytecode to see the equivalent Java code. This is super useful and I think this transparent approach helps a lot reassure old Java developers (like me!) that what happens behind the scene is actually quite good.

Bytecode

Conclusion

Here are all the videos of DroidconUK 2017 (two were really funny, I’ll let you find out which ones!). Droidcon London is a Great conference. I learned so much and it opens the mind to new concepts. The high level of talks is totally worth it. I’ll be back next year, for sure!