November 7, 2018

All times are Pacific Standard Time (UTC-08:00).
Every session is available through Livestream during the event, and available after the event on the Android Developers YouTube Channel.

filter_list Filter:
Time Description _type _track _product
08:00-10:00

Registration and Breakfast

10:00-11:00

Keynote

Keynote

Dave Burke, Stephanie Cuthbertson

The keynote kicks off on November 7 at 10AM PST, where you'll hear directly from Dave Burke and others on the present and future of Android development.

Theater 1

Keynote Theater 1
11:00-11:15

Change over

11:15-11:35

Session

Fun with LiveData

Jose Alcérreca, Yigit Boyar

LiveData is a simple observable data holder that is aware of the lifecycle of the observers. It was designed to avoid memory leaks and null pointer exceptions between an activity or fragment and a ViewModel.
However, you can also use LiveData beyond the ViewModel. Components like Room or Workmanager also expose LiveData observables, and you can make your own data sources lifecycle-aware.
In this talk, we'll deep dive into patterns with LiveData such as the different types of transformations (map, switchMap and MediatorLiveData), handling events and building reactive architectures as well as common antipatterns and code-smells to avoid.

Jetpack

Theater 1

Session Theater 1 Jetpack
11:15-11:35

Session

Getting the Most Out of Android Lint

Matthew Gharrity

Android Lint already scans your app for hundreds of common issues, contributing to the code warnings that you see in Android Studio. But Lint can do even more for advanced users. Come to this demo-heavy talk to learn about the less common uses of Lint, which may include:

  • Writing custom Lint checks for domain- or team-specific needs
  • Using annotations to catch threading bugs *before* they cause UI freezes
  • Enabling off-by-default checks to improve Java/Kotlin interoperability
  • Performance best practices when running Lint on a CI server

Android Studio

Theater 2

Session Theater 2 Android Studio
11:35-11:55

Session

Testing Rebooted (with AndroidX Test)

Yuki Hamada, John Gerrish

The release of androidx.test v1.0 makes testing a first class citizen of Android developer tools. See how a new set of cross platform APIs enable you to write both unit and integration tests that run in any environment and learn of our upcoming plans for future releases.

Jetpack

Theater 2

Session Theater 2 Jetpack
11:35-11:55

Session

The Room in the House

Daniel Santiago, Yigit Boyar

Room is Android's persistence library that provides an abstraction layer over SQLite to allow for more robust database access while harnessing the full power of SQLite.
This talk covers some of the new features added to Room since its announcement at I/O 2017 and additionally touches on some of the best practices.

Jetpack

Theater 1

Session Theater 1 Jetpack
11:55-12:05

Change over

12:05-12:10

Lightning Talk

Best Practices Using JNI

Elliot Hughes

JNI is hard. Join the NDK engineering team to understand some of the pitfalls when writing JNI and some of best ways to make your life easier.

Android Studio

Theater 1

Lightning Talk Theater 1 Android Studio
12:05-12:10

Lightning Talk

Optimizing User Flows through Login

Sean McQuillan, Jeremy Orlow

Want to increase activation and retention by making your login experience frictionless? In this talk you'll learn about a set of available Android features that can be used by your app to give users a great onboarding experience. Learn how Google Sign In, Smart Lock, Autofill, and Auto Backup work together to give your app a great first launch and reactivation experience.

Google Play

Platform

Theater 2

Lightning Talk Theater 2 Google Play Platform
12:11-12:16

Lightning Talk

3 Platforms in 5 Minutes with Kotlin

Wojtek Kaliciński

Have you heard about Kotlin multiplatform? With Kotlin/JS, Kotlin/Native and Kotlin/JVM, you can share your business logic between Android and other platforms. In just 5 minutes we will write a multiplatform utility class.

Kotlin

Theater 1

Lightning Talk Theater 1 Kotlin
12:11-12:16

Lightning Talk

Kotlin + Watch Faces

Jeremy Walker

Use Kotlin DSL to cut down the code needed to write a Wear OS watch face from ~600 lines to 15.

Wear OS

Kotlin

Theater 2

Lightning Talk Theater 2 Wear OS Kotlin
12:17-12:22

Lightning Talk

Push Notifications: An India Perspective

Amrit Sanjeev

This session highlights some of the issues faced by developers in regions such as India when working with push notification and design patterns used to work around the low delivery rates experienced by apps.
These techniques are not limited to improving notification delivery rates but also helps to change the perspective that push notifications is not a reliable channel in such markets.
The session also calls out some of the improvements at the infrastructure layer that have helped to mitigate this problem .

Other

Theater 2

Lightning Talk Theater 2 Other
12:17-12:22

Lightning Talk

Draw Me a Rainbow

Nick Butcher

Did you know that VectorDrawables support theme colors, stateful colors and even gradients? Did you know this works back to API14 with AndroidX? Are you getting the most out of your vectors to support different view states, using the same drawables in differently themed screens, or avoiding bloating your app with large illustrations?
This lightning talk paints a picture of these advanced features of VectorDrawables and how to use them.

Jetpack

Platform

Theater 1

Lightning Talk Theater 1 Jetpack Platform
12:23-12:28

Lightning Talk

Understand the impact of Generic System Images (GSI)

Hung-ying Tyan

Learn what Treble and Generic System Image (GSI) means to developers.

Platform

Theater 2

Lightning Talk Theater 2 Platform
12:23-12:28

Lightning Talk

Level Up with Data Binding

Dan Galpin

Data Binding has come a long way, and is now an integrated part of the Architecture Components within Jetpack, thanks to built-in observation of LiveData. Level up with Data Binding and simplify your Android coding.

Jetpack

Theater 1

Lightning Talk Theater 1 Jetpack
12:29-12:34

Lightning Talk

Buiding Reliable Apps When Connectivity Is Unreliable

Naheed Vora, Ryan Hamilton

Learn how to build reliable apps when your connectivity is unreliable. Learn about tools to build failure resilient apps, including Cronet / QUIC, Connectivity APIs and Job Scheduler.

Platform

Theater 2

Lightning Talk Theater 2 Platform
12:29-12:34

Lightning Talk

Performance Analysis Using Systrace

Carmen Jackson

Watch the Android performance team take systraces of your apps and identify potential performance improvements during app startup and other performance-sensitive areas.

Platform

Theater 1

Lightning Talk Theater 1 Platform
12:35-12:45

Lightning Talk

Best Practices for Building Privacy-Friendly Apps

Parul Soi, Seb Grubb

The mobile landscape and user expectations around privacy are evolving. This talk takes you through privacy best practices that developers need to consider when targeting modern Android releases and Google Play.

Google Play

Platform

Theater 1

Lightning Talk Theater 1 Google Play Platform
12:35-12:45

Lightning Talk

Quick Ways to Ensure App Compatibility with Android Autofill

Felipe Leme

The Android 8.0 release introduced the Autofill Framework, a secure and efficient way to enable password managers to automatically enter user data into other apps. Although the Autofill Framework was designed to work without any effort from app developers, there are some simple actions developers can take to improve the autofill worklow, resulting in a better user experience and retention. This lightning talk will demonstrate some of them.

Platform

Theater 2

Lightning Talk Theater 2 Platform
12:45-14:00

Lunch

14:00-14:40

Session

Optimize Your App Size with This One Trick

Pierre Lecesne, Phil Adams

Learn how to integrate Android App Bundle and get size savings through config splits and feature modules. We share case studies of apps that have switched to App Bundle already and showcase the adoption progress across the ecosystem so far.

Google Play

Theater 1

Session Theater 1 Google Play
14:00-14:40

Session

Making Android Accessibility Easy

Phil Weaver, Casey Burkhardt, Qasid Sadiq

This talk introduces the basic ideas of Android accessibility. We cover the goals of accessibility, the model Android uses, and the basic mechanics of accessibility like labeling content, having minimum target sizes, and making sure text has good contrast. The talk also discusses how to test for accessibility and resources available when bugs are found. Finally, we share how to support users when doing nonstandard touch event handling and how to use the new ViewCompat APIs that make this much easier than it used to be.

Jetpack

Platform

Theater 2

Session Theater 2 Jetpack Platform
14:40-14:50

Change over

14:50-15:10

Session

What's New for App Developers in Android Auto

Rasekh Rifaat, Kodlee Yin

For media app developers, learn how to populate a list of voice-search results (a top requested feature by our users), display your browse tree in grid form (i.e. large album art tiles, which helps dramatically with content identification), and display additional metadata for media selections (e.g. explicit content, downloaded, etc.).
For messaging app developers, learn how to implement Android's MessagingStyle APIs, which will replace Android Auto's previous CarExtender implementation, and introduce support for group messaging and MMS/RCS in Auto.

Android Auto

Platform

Theater 1

Session Theater 1 Android Auto Platform
14:50-15:10

Session

Bundling an App in an Instant

Wojtek Kaliciński, Ben Weiss

Android App Bundles and Instant Apps are converging. Does that mean you can instantiate an app bundle? Or would you rather bundle an instant app? HOW DOES THAT WORK? Come find out how to structure your releases to make the most of the two technologies.

Google Play

Theater 2

Session Theater 2 Google Play
15:10-15:30

Session

Developing for Android & Large Screens

Kenneth Ford

Android has the unique ability to run on many different types of devices and form factors. One of the more complex parts of this feature though, is the variety of screen sizes that your application can, and will, run on. In this session, we will focus on larger screens, what it means for your app, and how to bring a great experience to these form factors. We’re going to dive into how to think about layouts for larger screens and talk about the resizing capabilities that are available on some platforms like Chrome OS.

Platform

Jetpack

Chrome OS

Theater 1

Session Theater 1 Platform Jetpack Chrome OS
15:10-15:30

Session

Android Slices Best Practices

Arun Venkatesan, Artur Tsurkan

Based on our experience with 3rd party developers that are integrating with Slices, the presentation shares best practices for implementing Android Slices to be effectively presented on Search, and demonstrates Slices UI for a few verticals - code + demos + slides.

Platform

Jetpack

Theater 2

Session Theater 2 Platform Jetpack
15:30-16:00

Afternoon Tea Break

16:00-16:40

Session

What's New With The Android Gradle Plugin

Jerome Dochez, Leo Sei, Chris Warrington, Izabela Orlowska

Join the Gradle engineering team in Android Studio as they walk through a list of best practices to optimize build speed with Gradle.

Android Studio

Theater 1

Session Theater 1 Android Studio
16:00-16:40

Session

Building a Great TV App

Benjamin Baxter

Users want content. Android TV offers a wide variety of paths through which apps can surface their prime content directly to the user, regardless of whether or not the user is in the app already. In this talk, we go over the different ways to surface your content in the places users look for it most—the Android TV home screen and Assistant—keeping your content surfaced in a competitive landscape. We dive deep into how to optimize using the content providers for home screen and look at how to bring the goodness of Jetpack in your leanback app.

Android TV

Platform

Jetpack

Theater 2

Session Theater 2 Android TV Platform Jetpack
16:40-16:50

Change over

16:50-17:30

Session

ConstraintLayout Deep Dive

Sean McQuillan, Chris Sinco

In this session you will learn best practices of using ConstraintLayout on Android, particularly covering tips and tricks in the Layout Editor and new features introduced in the 2.0 version. We will go over how to take advantage of those to create UI more efficiently.

Jetpack

Android Studio

Theater 1

Session Theater 1 Jetpack Android Studio
16:50-17:30

Session

Android Suspenders

Chris Banes, Adam Powell

So you've heard about Coroutines and you want to see what's so great about them?
This talk walks you through what coroutines are, and more importantly, the best practices of using them in your app, including how to handle lifecycle changes with Architecture Components, integration with background job processing, and how they can live next to RxJava.

Kotlin

Theater 2

Session Theater 2 Kotlin
17:30-17:40

Change over

17:40-18:00

Session

Getting the Best of On-Device ML with ML Kit

Dong Chen

This talk shows how developers can get the best out of ML Kit, providing various tips of using the APIs. It covers the Base APIs launched at I/O (Text Recognition, Image Labeling, Barcode Scanning, Face Detection) as well as the Custom Model API.

Other

Theater 1

Session Theater 1 Other
17:40-18:00

Session

Modern WebView Best Practices

Nate Fischer, Richard Coles, Toby Sargeant

Join the WebView team as they share the best and worst practices through many years and discuss how to use support library to promote best practices.

Platform

Other

Theater 2

Session Theater 2 Platform Other
18:00-18:20

Session

Modern Android Notifications

Paul Matthews, Jingyu Shi

This talk highlights best practice and anti-patterns when using notifications in modern Android. We will share tips on using notification channels and how to cater for Android Auto and Wear OS by Google with very little effort.

Platform

Theater 1

Session Theater 1 Platform
18:00-18:20

Session

Low Latency Audio - Because Your Ears Are Worth It

Don Turner

Low latency audio can improve the user experience for many types of apps, from DJing to virtual reality to musical games. In this talk, we demonstrate the newly launched Oboe library for building real-time audio apps by creating a musical instrument app from scratch in C++. We also show techniques for obtaining the best audio latency from the widest range of devices.

Platform

Theater 2

Session Theater 2 Platform
18:20-22:20

Party