Wednesday, May 25, 2016

I/O 2016

I/O 2016 is over again already, so it's time to sum up my thoughts about what I/O brought for developers and what announcements/updates you should check out.

The mostly disappointing Keynote

While the keynote had several interesting product announcements, most of them aren't available yet (coming this fall or later) and had no developer-relevant information.

Yes, Google Assistant seems to be an amazing implementation of machine learning, but how can we as developers make use of Google Assistant in our own apps, and how can our apps feed information into Google Assistant?
Maybe Allo (aka Yet Another Messaging app) was a hint at that, but that's left up to us to speculate about without any information released.
And most likely App Indexing (see in the Firebase section below) will be one way to get information into Google Assistant, but nothing about this has been mentioned either.

The actual developer announcements were mostly in the Android area (and I leave posting about that to actual Android developers) with details about N and Android Wear 2.0 and improvements to Android Studio.

In the world of VR you can start developing Daydream experiences today, with suitable phones, headsets and controllers coming out later this year.

And then there's Firebase which I will talk about in more detail below.

The more interesting announcements (at least for me) happened in a variety of sessions outside of the keynote.

Sheets and Slides APIs

Google Sheets has a new API available already, that allows you to basically do everything you could do in the UI with mouse and keyboard.

Google Slides will have a similar API coming up.

Both of those will enable powerful integrations and automations which haven't been possible so far.

Firebase != Firebase

Growing up from being an easy-to-use real-time database to be used across Android, iOS and the web, Firebase took over several "Google" features and added some new, to offer a complete package of all things you might need for mobile app development.

Unfortunately most of those new features aren't available on the web (yet?), forcing you to still use other tools if you maintain a web app in addition to Android and iOS apps.

Firebase Analytics is probably even easier to use than Google Analytics (and with less limits) but so far has no API to access the data and doesn't directly integrate with Google Analytics so you could combine reporting of your Firebase Analystics data from mobile apps and Google Analytics data from the web. The Firebase team offered two possible solutions for this problem:
  1. Send data from Firebase to Google Analytics with Tag Manager
  2. Link both Firebase and Google Analytics to BiqQuery and create merged reports from there.
Firebase App Indexing, previously known as Google App Indexing, which has its early roots in the Google+ History API, i.e. the now deprecated App Activities, allows to make your app content discoverable in Google Search (and with this eventually in Google Assistant). While App Activities were available on the web as well, starting with Google App Indexing only iOS and Android were supported, leaving (progressive) web apps a second-class citizen in the Google/Firebase world.

Firebase Remote Config, which is closely tied to Firebase Analytics, offers some intriguing ways to customize the app experience for different user groups, something that web apps would benefit from as well.

If you agree that Firebase should bring more of the new features to the web, make sure to send some feature requests.

Firebase Authentication

One part of the new Firebase, which is available on the web as well, is Firebase Authentication, the new and improved incarnation of Google Identity Toolkit. Offering an easy-to-use SDK to authenticate users on Android, iOS and the Web using several identity providers, together with UI elements that handle all the authentication flows that might occur, Firebase Auth is probably the easiest way to add authentication to your apps.

With new Firebase apps being directly linked to Google API/Cloud projects, getting Google Sign-in to work with Firebase is much easier now as well.

Polymer App Toolbox

While a lot of the (public) focus of the Polymer team until now seemed to be on creating, publishing and using web components, and making sure the Polymer library itself is stable and performant, the Polymer App Toolbox announced at I/O focuses on helping developers build complete (progressive) web apps. It offers the necessary elements and tools, and more importantly samples, templates and suggestions, something which a lot of developers have been asking/waiting for.

Here are some of the core features of the app toolbox:
  • app-layout elements for a wide variety of different responsive layouts for your app
  • app-route elements for declarative and modular routing to all fragments of your app
  • app-storage elements/behaviours to link your back-end data to your front-end, with sample implementations for Firebase and IndexedDB as offline storage
  • A Polymer CLI tool (combining several of the tools that were already available and some more) for creating, testing, serving and building Polymer apps and elements.
polymer build does some very sophisticated work (as long as you follow the suggested app-shell structure) to make sure your main entrypoint is served efficiently and fast, and lazy-loading everything else. It also generates service worker code for you, to make your apps work offline in supported browsers.

I will have a more detailed blog post about the Polymer App Toolbox, which is definitely among my favourite things launched of I/O, coming up soon (hopefully before this fall).

Closing thoughts

Disregarding the developer content for a moment, I really enjoyed the outside venue of I/O this year. The Amphitheater is a much better place for a keynote, with a better view on the stage for everyone, fresh air, birds flying around and natural lighting, compared to the dark cave of Moscone's keynote room. Being outside naturally means that you are dependent on the weather, and rain could have caused some serious chaos (even with rain ponchos being planned in case), but with the sun out all attendees should be old enough to know to take care of sun protection, especially since everyone got sun lotion handed out at registration and more sun lotion, plenty of water, as well as ways to cool down were available during the whole event.

There were unarguably organizational issues when it came to the size of the session tents, but that has always been an issue at I/O also at Moscone center. With the bigger space available this issue could easily have been fixed though, and hopefully will be planned accordingly at future I/Os (if/when it's going to be at Shoreline again).

For me personally getting into sessions wasn't all that important, since for me I/O has always been about socializing and talking with Google engineers and other developers, and there was plenty opportunity for this, probably even more than in previous year.

I'm looking forward to next year already and hopefully will be able to join again.