The best of Android at Google I/O 2018

Mark Dappollone
5 min readMay 16, 2018

Google I/O this year continued Google’s trend toward solving giant problems with AI, but they also slipped in lots of great new tools for Android developers. Here’s a list of some of the highlights for Android Devs at this year’s conference.

7. Incremental Annotation Processing

A lot of Android App Devs might not care too much about this, but it’s no secret that I love Annotation Processors. Annotation Processors have historically broken the Incremental Build features of Gradle, which results in much longer build times when you use Annotation Processors. However, Google has been working in partnership with the Gradle team to enable incremental builds with APs, which will make development of apps that use these magical beasts much faster. And faster = better.

6. Android Studio on Chromebooks and Chrome OS Emulator

Android Developers have always had lots of options as far as Development Environment, including Mac OS, Windows, and Linux, but Google is going above and beyond this year to try and add Chrome OS to that list. They’ve added a terminal to Chrome OS (finally), and have experimental support for running Android Studio. The feature is still in development, but the hope of an integrated environment for building and running Android apps complete with a touchscreen interface finally seems within reach. In addition, for developing support into Android Apps for running on Chrome OS, Google has added a Chrome OS emulator to Android Studio on all platforms. This tool will allow Android Devs to see the look of their apps on ChromeOS without having to purchase another device.

5. App Bundles

An App Bundle is a new application packaging format that allows the Google Play Store to reduce the size of your application. The legacy packaging format, APK, has traditionally included support for lots of different device sizes and configurations. This means that even if you’re on a device with a lower resolution screen, you still have to store all the high res images that the app might need for other devices. Now, the Play Store will split the bundle into multiple APKs, each one targeted at a specific device configuration. This way, the program package that a user downloads contains only the resources and code specific to their device, making the overall download size much smaller, and also consuming much less space on the user’s device. This makes apps more attractive to install, and less likely to be uninstalled, due to storage concerns.

4.Slices and App Actions

The new Slices feature seems to build on the idea of Instant Apps from last year, by making it possible to embed parts of your application in Google Search results. In contrast to Instant Apps, there’s nothing to download or install here, your Slice is Android Native code, running gloriously right inside the Google Search App, and at some point, inside the Google Assistant.

App Actions allow you to register your app to be offered as a suggestion when users search for things. In contrast to Slices, App Actions don’t provide any inline functionality, other than directly shortcutting to your app. This is particularly useful for surfacing actions that users might not even realize an app provides.

3. Navigation Controller

This year, Google is introducing a set of new libraries to help you architect the navigation flow of your app, complete with a handy new graphical nav editor

Look familiar?

For years, we’ve all noticed how, in stark contrast to the iOS side of the house, Google never really seemed to put much effort or care into making Android development any easier. Sure, they introduced a dedicated IDE with Android Studio, but that was largely due to the fact that the existing tools at the time were so awful (and also, everyone who had any sense had already switched from Eclipse to IntelliJ anyway). But now Google seems to be making a concerted effort to try and fix some of the most frustrating problems that have plagued Android Development from the very beginning. The nav graph is one of those efforts, making navigation flow control dead simple, with a highly extensible and backwards compatible system of support libraries aimed at removing almost all the actual code from building navigation between screens into the app. This is a great start for making Android Development a little faster, and a little easier.

2. Jetpack

Android Jetpack is “a set of libraries, tools and architectural guidance to help make it quick and easy to build great Android apps.” It contains the Architecture Components from last year, the Navigation Controller, plus all the new Kotlin Extensions for Android, dubbed Android KTX. All the libs in Jetpack are designed to make App Development for Android faster and easier, in line with the overall theme of Android announcements this year. A lot of the problems that the Jetpack library solves have already been solved by lots of devs in lots of apps, but if you’re starting a brand new project, Jetpack is a great place to kickstart your efforts.

  1. Google having Opinions about Android App Development

Going hand in hand with that effort is the very fact that Google is sharing its opinions on App Development at all. This is something that really started last year with the introduction of Architecture Components and Live Data, and it has continued this year with the addition of Jetpack. One of my favorite opinions is the Role of the Activity in Android Apps. Google is (as of the writing of this article, at least) recommending that Android apps have a single Activity, and use it as a container for Fragments, which actually contain content. Architecting this way has (IMO) been a great idea for a long time, but the introduction of the Nav Graph makes it even better, and I’m optimistic about where this is all going.

--

--

Mark Dappollone

Director, Mobile Product Engineering at Anywhere Real Estate