360|Andev - Denver 2017
7 minutes readAs part of my Silicon Valley Fellowship from Axel-Springer I had the chance to visit 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
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 that Google provides. 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. I enjoyed the talk from Kasra very much, because he is a real energetic speaker who understands to entertain his audience.
“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.
Such an amazing talk by @asfalcone on the Android developer options!! I almost ran out of room 😅 #360andev pic.twitter.com/26SpAoaze7
— Kelly Shuster (@KellyShuster) 13. Juli 2017
“There is Room for improvement” - by Florina Muntenescu
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 LiveData Observables. The reactive nature makes it nicely testable.
Awesome sketchnote from Chiu-Ki Chan about Florinas talk:
Data Persistence in Andorid. There is Room for improvement by @FMuntenescu #360AnDev #sketchnotes pic.twitter.com/tXwMLZ0Vem
— Chiu-Ki Chan (@chiuki) 13. Juli 2017
Social Event
The 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!
Day 2
“Don’t fear SQL” - by Leandro Favarin
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.
SQL should be embraced, not hidden. Real nice talk from @leandrofavarin from @blinkist at #360andev pic.twitter.com/TR8gB7Awtz
— Peter (@pkatberlin) 14. Juli 2017
“RX by example - The Multicast edition Vol 3” - by Kaushik Gopal
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
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 Haase and Romain Guy
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!
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!