May we suggest...

Google I/O: What’s new for Android

Last week we were lucky enough to be able to attend Google I/O in Mountain View, California. Between the two of us we managed to see a good handful of sessions – so we thought we’d both put together this short post about some of the things we discovered and where you can learn more about them.

Android App Bundles

App bundles are a new type of upload format for your applications that allows you to deliver a more optimized build to your users. Rather than uploading a generated APK to the Google Play Store you now upload this new bundled format (consisting of all the resources and compiled code of your app) and Google Play will then use this bundle to build the APK for the user dependent on their device constraints such as language and screen density. Read more about Android App Bundles here.

Android Architecture Components: Navigation

When it comes to navigation on Android, applications often find it hard to properly implement the required back/up stack and handling transactions can often be quite a tedious process. The new Navigation architecture component aims to ease this process by providing a navigation controller which will be used to handle these navigational tasks for your app – the great thing is that Android Studio (available in 3.2 canary 14) comes with a new visual tool to help build a navigational structure, as well as allowing you to easily add transitions and other properties. More information on the navigation component can be found here.

Android Architecture Components: Work Manager

Kicking off deferrable background operations is a pretty common task on Android. However, it’s never been super easy to implement if you’re trying to support a wide range of Android versions – this often required summarizing the different libraries that are available and trying to work out what suits your needs best. Luckily for us the Work Manager component now provides a single API that will allow us to carry out deferrable background work across a range of Android versions, without needing to worry about the internals of how these will all be supported. More information on the work manager can be found here.

Android Architecture Components: Paging

The Paging architecture components was actually announced some time back – the aim of this component is to ease the process of loading from data sources via paging within applications, a commonly required implementation within apps. The announcement here is that the paging library has now matured to version 1.0 meaning that is a stable release and ready to use in production (if you weren’t doing so already!). More information on the paging component can be found here.

Material Themes

We were pretty excited after hearing rumors that there would be some big material design announcements at I/O this year, it’s fair to say we weren’t disappointed! Google announced the update to the material.io site, material design spec and the launch of material theming which comes with an accompanying set of tools to help create a flexible and custom style for your brand. You can check out more to do with material theming here.

Flutter

There were a collection of talks related to Flutter at I/O, as well as it getting a fair few mentions across others too. The talks dived into many aspects if Flutter – from widgets, to architecture and design. These were all exciting and refreshing – we’re looking forward to seeing this technology evolve further! As well as this, the Flutter tent was always packed with attendees checking out what was on offer. We also both attended the Flutter party which was great fun (although unfortunately, we didn’t win a Dash plushie!). You can check out more about Flutter here.

Chrome OS

The Chrome OS session was extremely well presented. Not only were the slides beautifully created but they had a live DJ demonstration using a Pixelbook, as well as a Marvel artist illustrating Spiderman onstage. There was a lot of content in the talk around how to support Chrome OS in Android apps so we’re excited to bring this to our own apps. You can read more about Chrome OS on Android here.

Google Play Billing Updates

There were a bunch of new announcements related to Google Play Billing this year at I/O. When it comes to Android, the Google Play Billing library v1.1 was announced that comes with a variety of new features. Also announced was the ability to update pricing for in-app items, pausing and resuming of subscriptions and a new subscriptions overview screen in the play store (which we can link directly to in our apps). See more about these updates here.

Android Jetpack

Jetpack guidance includes recommended libraries, tools, and architecture for developers. The goal is to use these to make it easier and faster to develop apps so you can focus on the things that matter most. Some of these recommendations include new architecture components such as the Work Manager and Navigation to remove boilerplate from your code. You can find out all about Jetpack here.

AndroidX

AndroidX is a set of libraries and technical guarantees. With it, there is a standardization of naming, structure, and versioning between support library dependencies. It also has finer grained control for you to include what you need in your app, and only what you need for your app. No longer do you need to include all of support-v4 for only the ViewPager. Android Studio includes a migration tool, “Refactor to AndroidX” to support the transition as early as Android Studio 3.2 Canary 14. New things that are included in AndroidX are RecyclerView Selection for selecting items in a list, and RecyclerView ListAdapter for frequently changing lists. You can read more about AndroidX here.

Accessibility Updates

Google is always making advancements in their support for accessibility. Some of the newest announcements for developers include improved results from the Accessibility Scanner, and the Espresso accessibility checks. Play Pre-Launch reports are now integrated with accessibility tests as well. There are also new APIs for better labeling for panes and headers, as well as what’s grouped and focusable for a screen reader. See all that’s new with Android accessibility here.

Focus on Wellbeing

We spend a lot of time interacting with our technology, and it’s time to think about our digital wellbeing. In Android P, the OS will provide insight into how long you’re spending on your device, and how you are spending that time. In addition, it can show notifications to remind you to take a break from your phone. Developers can also provide more details into how someone is spending their time within the app. Other features included in P are Wind Down to help put away your phone when going to bed, and Shush to hide visual notifications when it’s turned on. Watch to find out more here.

ML Kit

Machine learning has never been easier on Android than it is now. ML Kit for Android and iOS allows you to take advantage of Google’s machine learning power through a simple API. The library now supports text recognition, image labeling, barcode scanning, face detection, and landmark recognition, with more to come in the future. It even supports custom models for image detection. This opens up the possibility to use the power of machine learning to everyone. Find out more about ML Kit here.

Android P

Many of the things discussed above will be included in Android P, as well as many other great things. One of these things is smarter battery allocation, so that apps you rarely use consume let battery. Another feature is adaptive screen brightness. With it, the device will learn how you like your screen brightness when, so you always have the best visibility. You can download and try out P Beta here.

Joe and Victoria at Google I/O

We’re excited about many of the announcements, and can’t wait to see what great things people can do because of them. We’d be happy to hear what things you’re most excited about!

Victoria is an Android Engineer at Buffer and author for RayWenderlich dot com. The conferences she has spoken at have been an enjoyable way to connect with the technical community and exchange information with others. She was drawn to programming because of its potential to help people in a meaningful way. In her spare time, Victoria enjoys dancing and curling up with a good book.