[MUSIC PLAYING]
SPEAKER 1: Hey, everybody.
Welcome back to What's New in Android.
SPEAKER 2: First, we'll start with distribution. you.
You saw in the keynote, we introduced the dynamic app
bundles.
Towards the end, it was pretty clear it's pretty easy for you.
All you have to do is click a different menu
when you build your application.
And we're going to save you some space.
It's going to be faster and easier for your users
to download your app.
SPEAKER 1: Let's talk about Android Jetpack.
This is a set of components as well as
guidance on how to build better Android applications.
All of you are familiar with most of what
is in Android Jetpack already.
What we're doing is adding to it over time
with stuff that's going to make it even better.
And we're also improving it over time.
One of the major steps that we're taking
is what I like to think of as a refactor, because it's
a refactor.
And we're doing a whole lot of tedious renaming.
And we're also providing tools to make it easier
for you to do the similar refactoring that you're
going to need to do in your application,
as well as in Android Studio.
Everything is being renamed to something more appropriate
called Androidx.
Jetpack architecture is about architecture components
that were announced last year at I/O,
and then iterated with feedback from the community,
and finally went 1.0 in the fall.
Work Manager is currently in preview.
There's going to be a talk about it.
Also navigation-- it turns out that up versus
back is a hard problem for applications to solve.
We are making that much easier, and we're
integrating with the tool to make it even easier yet.
SPEAKER 2: Kotlin-- it's the [INAUDIBLE]
thing we announced last year.
So we're busy.
We want to make it better for all the Kotlin developers
out there.
I'm sure there's a lot of you here today.
So some of the things we've been doing.
The ART team has been really busy with D8, R8, and ART
itself.
They've been looking at the bytecode generated
by the Kotlin compiler.
They've analyzed some of the bytecode patterns that
were different from the ones generated by the Java
programming language compiler.
And they've been optimizing for those patterns.
We've also been adding a lot of nullability annotations
to our Java APIs, both in the core libraries--
so libcore-- and our support libraries
to make it easier for you to use the platform
APIs when you're in Kotlin.
And finally, we launched on GitHub
a new library called android-ktx.
It's a set of Kotlin extensions for existing platform APIs.
And the goal here is to try to take advantage
of some of the Kotlin language features
to make existing APIs easier to use.
They're already easier to use just by using Kotlin,
but with the extension, they get even better.
SPEAKER 3: So Slices is our new approach to remote content
that you can actually use to project UI into your own app
or into other apps that support it.
It's very structured.
This is not sort of here's a canvas or an absolute layout.
Go nuts with it.
We give you a structure to fill out and a whole bunch of very
flexible templates in which to populate that data with some
display hints, so that the receiving end of the Slice--
the Slice host--
kind of knows what to do with it.
These are interactive.
These are updateable.
This is meant to be something that holds rich UI-- sliders,
controls, live information, possibly videos--
things that actually feel like real UI as opposed
to a snapshot of something happening in a distant process
somewhere.
Slices are addressable by content URI,
and this is how they're passed around the system
and how they're passed along to app indexing
to be shown in context-like search.
And then finally, Slices is entirely
inside the support library.
It's entirely in Jetpack, so it's backwards-compatible.
You can use Slices all the way back to API 19.
Related to Slices is Actions.
You can think of these as shortcuts with parameters.
[INAUDIBLE] likes to think of them as visible intents.
This is essentially a deep link into your app
with some additional payload.
It's not just a link to music.
It's linked to the particular album or something like that.
And you saw these as well in the keynotes,
showing up in predictive space inside our app launching
experience--
actions you define in an actions XML
file that goes into your APK or app bundle.
And that too can get registered with app indexing
so that search results and predictive features
can show those actions.
[MUSIC PLAYING]