Gradle Summit 2017: Sharing our Top Favorite Talks (and Key Takeaways)

Jul 12
Gradle_post_event_newsletter

Gradle Summit 2017: Sharing our Top Favorite Talks (and Key Takeaways)

Around 2 weeks ago, the city of Palo Alto saw happening one of the most important Gradle-related conference of the year: Gradle Summit. 50+ sessions, 3 tracks, and some of the best engineers from top notch companies (Uber, Twitter, Netflix, Square, Airbnb, Google, Gradle, Linkedin…).

Let us give it to you straight: it was a blast! And now that we had time to digest everything that’s been said, we’re sharing with you our top favorite talks! Featuring 3 awesome experts, namely Pierre-Yves Ricau (Square), Xavier Ducrohet (Google) and Benjamin Muschko (Gradle).

AARAWR! Fantastic bits and where to dex them (Pierre-Yves Ricaud, Square)

Very interesting talk from Pierre-Yves! He explained us why and how he and his team hacked the Android ARchive (AAR) format. Basically they managed to embedded full applications as libraries. Pretty neat huh? See his talk below.

Key takeaway: Pierre-yves and his team first put all their SDK logic precompiled in the AAR resources. The AAR source code contains only a multiDex loader, loading all their precompiled Dex files. The load at runtime led to slow first starts (25s) so they disabled TurboDex to avoid OAT processing. They then used APK Dependency Scope and embed their dex into a jar file.

Gradle Android Development – State of the Union (Xavier Ducrohet, Google)

If you don’t know Xavier Ducrohet, you’re definitely missing out. As tech lead of Google’s Android tools, he could give us a thorough overview of what’s up and what’s next. An important talk you wouldn’t want to miss. Watch it below!

Key takeaway: Incremental tasks are coming (e.g. aapt2, javac, class dexing, class merging, etc.). Faster configurations are on their way too. Overall, everything will be better, faster, stronger… More complex? 🤔 We’ll soon see what it gives.

Designing and writing Gradle plugins (Benjamin Muschko, Gradle)

Benjamin Muschko works at Gradle so yeah… He knows stuff. His talk was pretty interesting! Especially as he gave us a good amount of insight on how to think and develop a Gradle plugin. Have a look!

Key takeaway: There’s a notable difference between “Conventions” and “Configurations”. The former can be used to create extensions with default values while the latter lets you override default values. Other thing to note: Gradle plugins can inherit from others by calling project.getPlugins().apply(BasePlugin.class). This way, people can include the level of plugin they need into their project. Last but not least, a bunch of resources has been shared. To name a few: Gradle Performances Guide (to improve builds) and Gradle Profiler (to know at which stages builds slow down).

Bonus: Extend the Android Gradle Plugin (Eyal Lezmy, Genymobile)

We couldn’t make this selection without mentioning our very own Eyal Lezmy! This year he had the chance to attend the summit along with our guy Sylvain Galand from our San Francisco offices.

Eyal didn’t only attend, he was also there as a speaker. And he nailed it!

tumblr_om0hyoCpoc1qe8lb8o1_500

This was a huge opportunity for him as he could share all the work he did on Genymotion’s Gradle Plugin and explain what he and our team learned along the way. All this in front of 35 people – including folks from Twitter, Square, Uber and the Android Gradle plugin development team itself! First time he gets such a prestigious audience (and such pressure 😏). Watch his talk below.

Key takeaway: You can build readable and flexible Gradle DSL using nested extensions and NamedDomainObjectContainer API. There’s a way to get around the Android Gradle plugin documentation by using a nice debugger and reading the source code (Yep we did it 🎉). Testing a Gradle plugin is very easy but don’t forget to call evaluate() method to launch project evaluation, even if the doc does not tell anything about that. Oh and make sure your plugin is compatible with every Gradle Android plugin versions by testing all of them on your CI infrastructure.

Looking forward for the next edition!

Sylvain et Eyal had an awesome time and learned a lot! Overall the event was a success and we cannot wait for next year’s edition. All the video recordings from the talks are already up and we cannot recommend enough to have a look. See you next year Gradlers!

Thanks for reading! Hope you enjoyed this little recap. Did you attend Gradle Summit 2017? Any thoughts? Let us know in the comments section below!