Last month Thessaloniki welcomed the first Droidcon in Greece. It was also my first time in Greece, and I was fortunate to be invited as a speaker. Aside from the high quality of the conference itself, the organizers (special thanks to Eliza Amber) did a great job of spoiling us. It started at the airport, where a taxi was waiting for me. On Droidcon Eve, the other speakers and I were given a bus tour of Thessaloniki.
My fellow Droidcon speakers and I stopped at the Arch of Galerius for a photo (above) and at a Bougatsa shop around the Byzantine Walls. We tried both the salty and sweet versions of the pastry; my vote went to the sweet Bougatsa with cinnamon, pictured below:
Before lunch, we visited a local market and tried some mezze (ham, cheese and the biggest olives I’ve ever seen.) Then we were treated to a seafood lunch where, again, we experienced that extremely good Greek hospitality and cuisine.
First Sustenance, Now Substance: My Favorite Droidcon Talks
Droidcon took place at Noesis ( ΝΟΗΣΙΣ ), a science park on the outskirts of Thessaloniki. All of the talks were interesting, but these takeaways were the most memorable:
Google developer advocate Damien Mabin, a former game developer, offered his advice on game monetization: Even if a user spends just $1 on your game, it's still more than what you would earn from having them watch ads in your game/app. As soon as a user spends money on your app, remove the ads. The "whales" big spenders) still generate more revenue the average user who spends less than $5.
Damien also noted that time-constraint challenges incentivize players to spend more time in the game. These challenges generate a nice surge in traffic from the same users. (This point applies to non-game apps as well.)
Developer and evangelist Svetlana Isakova of Jetbrains (editors of Android Studio) demoed Kotlin, Jetbrain’s homegrown programming language. Nicknamed “the Swift of Android,” Kotlin is considered to be less verbose but more readable than Java, and it supports immutability, nullable types and lambdas. The easiest way to start using it is by automatic conversion of Java file to Kotlin file, done with an Android Studio/IntelliJ plugin. Java can interoperate with Kotlin methods and vice versa. In one of my pet projects, I’ve found Kotlin to be very concise for POJO classes with setter and getter methods.
Josh Skeen, an instructor at Big Nerd Ranch, led a great workshop on RxJava. Rx stands for Reactive, and you may have heard of Retrofit + RxJava in combination. Josh explained the fundamental concepts of RxJava, a library for composing asynchronous and event-based programs by using observable sequences. We tried to solve his RxJava Koans in order to reach RXJava enlightenment (photo below).
Savvas Dalkitsis from Shazam discussed how aspect-oriented programming can isolate code related to analytics and ads from your business logic. It reminded me of our code base at Zalando, which uses a similar technique (tracking) for analytics.
As for my own talk (my second Droidcon presentation — I got to speak at Droidcon Berlin earlier this year), I focused on “App Fails and Retrospectives.” The topic didn’t quite fit the SDK track, which was where I appeared, in that it mostly offered failure-related anecdotes based on real-world Zalando experiences. Judging by the audience’s reaction, our “best” failure was the time our app was about to become the Editor’s Choice on Google Play, and on the same evening I had to revert to the previous app version because of an untested crash that was going to affect millions of users.
I came up with the idea of “epic fails” from an active Zalando group chat called “#guild-fuckup,” one of the most active of Zalando Tech’s +100 guilds. I found inspiration there the day before the Droidcon Berlin deadline, submitted the talk ... and was accepted! I couldn’t offer expertise on trendy topics: Internet of Things, wearables, Android Auto, but failure and mistake-making was something I thought every dev or dev team could relate to, big company or small startup.
All Good Things Come to an End
After the very last talk, we took a “family” photo and finished the event with a Greek dinner (of course).
Before leaving Greece, I bought a Terkenlis chocolate cake (tsourekia) for my team in Berlin. A Greek colleague recognized the cake and thanked me for bringing the best back from Thessaloniki. I thought it was the least I could do for all the hospitality I enjoyed there! It was definitely worth the trip.