Things I did at Droidcon London
At ribot we get the chance to attend conferences throughout the year, so me and Iván made a trip up to Droidcon London. I learnt a lot, met some great people and made a lot of notes over the last two days - so here’s a (very) brief summary of my time at the event.
Note: I’m typing this on the medium app as I watch the talks, so they’ll likely be brief because of this. I’ll build on detail once I’ve gone through my notebook…
Note Note: I’ll add video and slide links whenever they’re up…
Journey of an Event, the Android touch w/ Marco Cova
We started off our time here watching Marco give a deep dive into Android touch events. He ran us through Facebooks “Year in Review” + “Riff”, along with details on the custom touch events used in those apps. It was interesting to see the use of their custom touch event class which extends on the MotionEvent and KeyEvent classes - we did some very similar things in a client project we worked on last year, so it was interesting to see how he managed these complexities compared to our approaches (knowing others have shared your struggles makes it slightly better, right?).
Marco took us through the journey of a touch event through the view hierarchy, showing how they used the overriding of the onTouchEvent() method call can be used to intercept events and handle them in a custom manner.
Behind the scenes of ASOS.com’s mobile apps w/ Marco Bellinaso
I was interested in discovering the way in which ASOS work and how it differs from ours. They’ve seemed to be getting more involved in the tech scene over the last year or so, their mobile market has also grown massively.
“The app has had 5m downloads in 2015 so far, with 60% traffic and 44% orders through mobile”
Some interesting notes on their workflow:
Localisation - A Google spreadsheet with language columns is used to store translations. Next, a python script then reads through this spreadsheet row-by-row and exports the translations to an XML file.
Travis CI - I’ve used travis before but we currently use jenkins. I can see the benefit as you don’t have to maintain your own server.
Dynamic App Configuration on server - This is great and makes sense. When their API is undergoing maintenence then the app will be aware of this and adapt the UI, they can also force the user to upgrade using the method. This all means less crashes and glitches, yay!
Remote device farm - They buy the most popular devices from their stats to test on, but most of their testing happens in the cloud. Makes sense, something I’ve always wanted to try for myself.
Model-View-Presenter - Their app architecture uses an MVP approach, which seems to be an ever growing case. I’m using MVP in a project at the moment and I can see why more and more developers are switching to this approach.
We had an hour and a half gap between talks so decided to check out all of the stalls. We began by taking a look at the Ordnance Survey maps SDK.
Next we stopped by the Facebook booth where we had a long chat with Martino about the different open source projects that Facebook are working on. We specifically talked about Infer and fitting it into our work flow (it can’t be run as a gradle task, yet *sad face*).
I met several companies (ASOS, booking.com, genymotion, novoda, ordnance survey, sky, badoo, Intel, hover, jebel and more) and it’s always great to hear what other people are up to. I used the rest of this time to gather as many free stickers and food as possible.
Animate me, if you don’t do it for me then do it for Chet w/ Mathias Seguy
Back to the talks. I’m a big fan of subtle animations, so I wanted to check out this to see if there was anything new to learn. It was more of an intro to animations, but it was interesting to see the approaches used by someone else. This was a good overview of how to use simple animations in android, being one of the bar-camp sessions I think that was the general idea to keep it simple.
Managing Expectations: A Manager’s Guide for Managing to Manage Unmanageable Teams Manageable w/ Chet Haase
This was brilliant. I haven’t seen Chet talk before but I was told it’s not to be missed. He basically spent an hour ripping into management, using exaggerated methodology to humour the audience. If it goes up online, you’ve got to watch it.
I missed out on the after party the last few years, so this was a great chance to network, drink beer and eat burgers (which were all dangerously free). There were some pretty deep enum discussions going down (which is never a good idea after a few beers).
If you didn’t attend the after party, be sure to do next year. It’s a great opportunity to network even more.
React Native for Android w/ Olivia Bishop
“The app was able to share 85% of product code between the two platforms”
After taking a look at a cross platform (android/iOS) demo app in the slides, it was really interesting to see that 85% of the product code was shared across the app — which is amazing! The performance seemed pretty great too for the example shown (although I’d like to push it to see if performance drops anywhere), so I’m looking forward to building a sample app for myself.
“Learn once, write anywhere”
Beautiful Typography on Android w/ Lisa Wray
I was excited for this talk after seeing Lisa’s font-binding approach on Github. The talk ended up being a pretty deep dive on both using and optimising typography on Android, with some great examples of approaches in doing both of these.
“Use a span, save a WebView”
We looked at the implications of WebViews and textviews, moving on to focuse on using spans to achieve beautiful typography results. This part of the talk was broken up into:
- Spanned Strings
- Paragraph styles
- Character styles
- Spacing (line, paragraph, letter)
- Fully custom drawing
Her talk was the similar (or the same) as Droidcon NYC, which can be watched here:
Understanding scrolling techniques in Android w/ Cyril Mottier
Scrolling is one of the most important gestures on mobile, so this couldn’t be missed. Another deep dive session, Cyril talked about the different scrolling behaviours on android.
“Scrolling on Android is a mess”
We looked at advanced scrolling techniques used within several different types of containers, focusing on how to use these effectively during implementation (including how to deal with issues that may arise). NestedScrolling was also touched on - the lack of support in ListViews proves the continued dominance of RecyclerViews (which makes me happy).
With all the new material motion effects within apps (such as primer), this is definitely worth reading (when the slides are up) as it’ll most likely come into use for you at some point.
Meaningful motion w/ Nick Butcher & Benjamin Weiss
This talk was packed. You might already know that I’m a huge fan of Material Design, and seeing as this focused on meaningful motion animations I was obviously pretty stoked. The structure of the talk was made up of the different animation APIs and how to use / optimise the different animators that are available within it. These included:
- View property animator
- Object animator
- Circular reveal
- Window content transitions
- Animated vector drawables
The animations shown were beautiful and really demonstrate just how far the android framework has come, visually, over the past few years.
Overall that was an awesome talk and I picked up on a lot of new things that I wasn’t that aware of (and need to start using, pronto!). These guys have a bunch of sample apps up on github making use of these animators:
Advancing Development with the Kotlin language w/ Jake Wharton
Kotlin is another thing on my list to play around with. Jake talked about the current issues with the use of java in android and why it needs to advance. We’re still stuck on java 6 (missing out on great features found in newer versions of java — support for lambdas etc), language restrictions and problems within the Android api design.
“I want to focus on how the language can help you write better apps”
We ran through a crash course in the language, where he demonstrated the syntax of Kotlin (it’s nice), explained extension functions (extend on the functionality of a class using functions, without needing to inherit from the class) and function expressions, higher order functions (a function that takes functions as parameters or returns a function) and extension function expressions.
Note to self: Read more on Kotlin.
Overall it’s been a great few days, Droidcon is the perfect place to meet like minded and passionate people. I’ve learnt some great new things and discovered some cool new products, now just to find the time to explore it all…
What did you attend? Did you learn something new? I’d love to hear people’s thoughts and opinions from Droidcon, leave me a response here or drop me a tweet.
The latest Tweets from Joe Birch (@hitherejoe). Android, photography, bass and good beer. Android Developer @ribot…www.twitter.com
See you next year!