360|Andev — Denver 2017

As part of my Silicon Valley Fellowship from Axel-Springer I had the chance to attend the 360|Andev and I would like to present you some of the talks I attended.

Day 1

“Making your App Instant” — by Kasra Rahjerdi

video of his talk

Kasra Rahjerdi is the lead Android Developer at Stack Overflow and told us the story about how they implemented Android Instant Apps for StackExchange in collaboration with Google. He highly recommended the codelab provided by Google. It is a tricky business to split an app that was implemented as a monolith, into modules that can be reused. He emphasized that you should never try to refactor your code while splitting it. The complexity is simply too high and you will find yourself in a dead end! Split it, make it compile and if you feel so, make it more beautiful — but never the other way around. Kasra is a real energetic speaker who understands to entertain his audience and his talk gave us a head-start how split our app.

Migrating to instant Apps

“Android Developer Options Deep Dive” — by Andrea Falcone

Andrea gave a great talk about the developer options of Android. I am working with this platform for round about 5 years now, but I did not know about all the powerful tools.

  • Interactive Bug Report — interactive bug reports with embedded screenshots — makes the reproduction of bugs much easier.
  • wait for debugger — Have you ever had a bug in your onCreate() method? Then this is your tool! If you turn this option on, the debugger will be attached before the app starts and you are able to debug the beginning of the lifecycle.
  • animation scale — I guess most of us have used this tool already to turn of animations, because they are problematic for espresso tests. But the tool is much more powerful. It allows you to change the duration of animations. If you set it to Animation scale 10x the animation will be speed up by the factor 10.

This tweet from Kelly Schuster shows the complete content of the talk with the help of an awesome sketchnote.

“There is Room for improvement” — by Florina Muntenescu

https://youtu.be/37U5L6Ico3Q

Of course this was my favourite talk! It has been awesome to see Florina, our former “updudette” and greatest advocate of upday, as a Google Developer Advocate now. Google published the Android Architecture Components at the I/O 2017 which also includes a persistence API called Room. Room is not an ORM. Instead it is a wrapper that simplifies the usage of SQLite in Android. Therefore it provides convenient APIs to define table structures, relationships and migrations. Next to this it gives you compile time checks of SQLite Statements and can return RxJava based Flowables and Observables or LiveDataObservables. The reactive nature makes it nicely testable.

Awesome sketchnote from Chiu-Ki Chan about Florinas talk:

Social Event

The 360|AnDev team invited us to the Mellow Mushroom in downtown Denver, for some awesome pizza and a lot of different styles of beer. It is a nice feeling if you realize that you chat with Chet Haase about how to give talks and how to answer questions in the best way. It was just amazing to see how open this community is!

Florina and me at the social event

Day 2

“Don’t fear SQL” — by Leandro Favarin (slides)

https://youtu.be/dwFPXInzzXQ

Leandro is the Lead Android Developer of the Berlin based startup Blinkist. His talk was about the benefits of SQLDelight and SQLBrite which are both libraries provided by Square. SQLDelight generates Java models from SQL statements that you put into a .sq file. By utilising the power of SQL it gives you all the freedom to define every query that you could come up with. With the words of Jake Wharton: “SQL should be embraced, not hidden”.

It becomes tricky if you need to do migrations of your tables with SQLDelight, because it isn’t officially supported yet. If you wanna follow the progress, there is an open issue on Github. The IntelliJ Plugin for SQLDelight includes syntax highlighting, code autocompletion and shows compiler errors at build time.

SQLBrite on the other hand allows you to introduce reactive stream functions to your queries. Definitely check out Leandro’s slides if you need to deal with a database in your app.

“RX by example — The Multicast edition Vol 3” — by Kaushik Gopal

slides and video

If you ever had the feeling that RxJava is awesome but pretty tough to learn — well you’re not alone. But no worries Kaushik comes to the rescue. He presented the third part of his “RX by example” series in Denver. Volume 3 shows you how to Multicast events to several subscribers and when to use publish(), refCount() and autoConnect() or in which permutations. He did an awesome job by visualizing this complex topic in an understandable manner - so go and checkout his slides!

“Finding and Fixing Performance Problems” — Chet Haase and Romain Guy

video

Chet and Romain showed by the example of the Google Play Store how to debug performance issues in an app. In this case there is a notifiable lag while scrolling through the list of apps. They used the new profiler tool from Android Studio 3, that allows a deep dive into all the layers and threads of the view elements. It can be controlled like a shooter game, by using w,a,s,d 😃. By using the Hierarchy viewer they figured out that the Play Store has way too many views to be rendered smoothly. Inside of the Android team they use gfxinfo to measure the performance of the app after every build and visualize it in a dashboard over time. At upday we do a similar thing with our UI tests, to discover flaky tests in the suite. Maybe we can use the same tech stack (Elasticsearch and Grafana) to visualize the performance of our app.

“Deep Android Integrations” — by Ty Smith

video from another conference, but it is the same content

Ty already implemented integrations for several companies (Evernote, Twitter and now Uber). He gave a neat talk how to utilize content providers and intents to communicate from one app to another. So if you have to do something similar, check out his talk!

“Suggestions for a Totally Better Programming Language” — Chet Haaseand Romain Guy

video

I am not sure what I liked most, the Emoji based language features (see picture below) or to introduce some politeness to the compiler like doWork().please() :-) - most funny talk I’ve joined so far in my life!

Romain Guy and Chet Haase

Summary

To make it short: Awesome conference! Great opportunity to meet the Android community and a big part of the Google crowd. If you have the chance to visit the 360|Andev — go for it!