Google I/O 2017 — Day 2

Day two was much longer and less dramatic than day one. The first session of the day was a deep dive into the new Architecture Components for lifecycle management, which rely on a view model to maintain state. From the docs:

The purpose of the ViewModel is to acquire and keep the information that is necessary for an Activity or a Fragment. The Activity or the Fragment should be able to observe changes in the ViewModel. ViewModels usually expose this information via LiveData or Android Data Binding. You can also use any observability construct from you favorite framework.

Noticeable was the emphasis on Observables, a staple of Reactive programming techniques that replace traditional callbacks with event subscriptions. The speakers were quick to point out that they were not mandating RxJava but instead promoting an easier way of achieving lifecycle-awareness using the reactive programming model.

If in doubt, use LiveData over RxJava

The AndroidWear session did its best to hype the wearables platform, with new APIs to make complications (watch face data) easier to build and the ability to separately install watch apps for devices running 1.x (as is done with 2.x devices). While AndroidWear 2.o has potential, it’s hard to get past the fact that these devices are simply not readily available in Australia. The Google engineer I spoke with conceded that the 2.0 rollout was delayed but couldn’t give any details on hardware availability — especially those with NFC for use with payments.

New in Android Wear: Easier complications APIs, Android O features and focus on battery life

The biggest new for the day was the announcement that the next version of Android Studio would be a major increment to 3.0. There’s a ton of new features but the main ones are:

— Tools to refactor apps into modules for instant apps
 — Ability to inject real JSON into layout preview (via tools:)
 — Addition of the Play Store (Finally!) and proxy support for the Android emulator 
 — Emulator bug reporting
— Build performance

Note that there’s a breaking change in Android Studio 3.0: If you use build flavors you may need to include a flavorDimensions parameter in your build.gradle.

New features for Android Studio 3.0

Today we also received a lot of information around instant apps, which allow users to have a native experience without downloading the entire app. It’s clear that we need to re-structure our apps in a more modular fashion and re-think the way users authenticate and progress through the application. I think there’s huge potential for innovation here as we remove the friction involved in app downloads.

Apps need a modular structure to take advantage of instant apps

Also, ConstraintLayout gets another iteration with improved UI layout preview tools and the ability to use a Placeholder and ConstraintSet to quickly create layouts with custom animations.

The day finished off with an amazing concert from LCD Soundsystem, but my highlight of the evening was meeting a group of YouTubers from around the world with a combined subscriber base of about 6 million that had been flown out by Google for the conference. Nothing makes you feel old like a bunch of new media entrepreneurs. The next post will cover the final day, including talks on Android’s new programming language: Kotlin. More photos from day two below.

LCD Soundsystem
YouTube celebrities and me
The Melbourne contingent