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.
“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 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.
“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
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:
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!
“Don’t fear SQL” — by Leandro Favarin (slides)
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
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
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
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
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!
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!