[MUSIC PLAYING]
DAN GALPIN: Welcome to "Now In Android,"
your ongoing guide to what's new and notable in the world
of Android development.
This week is part 2 of our series covering
the happenings at Android Developer Summit, or ADS, 2021.
To begin with, we had lots of Jetpack
Compose-focused sessions.
One of the biggest announcements at ADS
was the introduction of Material You into Jetpack Compose,
so Nick's "Implementing Material You using Jetpack Compose"
talk is a great place to start.
It covers a broad range of topics,
like new and updated Material Theming and Components,
dynamic color, system UI changes, interoperability
with the Material You themes in Android Views,
and more, along with implementing them
with help from the new androidx.compose.material3
Jetpack library.
Also check out the recording of the "Jetpack Compose
with Material You #AskAndroid Live"
question-and-answer session.
Speaking of Material You, Rody and Ivy
dove into understanding and applying dynamic color
in Material You, applying dynamic color
to your app and brand.
It covers the new tonal palettes,
how to use reference tokens, and exploring
how this will look in your app with the Material Theme Builder
in both standalone and Figma variations,
as well as the Material 3 design kit.
Nick and George then took you on a deep dive
into Jetpack Compose layouts to help you understand
Compose's layout model to build exactly
the layouts your app needs with more performant code.
They examined how the layout model
works under the hood and its capabilities,
how the bundled layouts and modifiers are built,
and how you can easily create custom layouts and modifiers.
Then Chris talked about "Design to code,
Turning handoffs into high-fives," sharing
a glimpse of how we're addressing messy handoffs of UI
between designers and developers.
The Material Design team is working with Figma
to create a design-to-code workflow that
allows teams to create UI components in Figma
and export them to a UI package.
This package can be edited in Figma,
used directly in Jetpack Compose projects for Android
applications, and can be directly updated in code.
There's an early access program available.
Yuichi and Doris then covered the way
we reimagined Android animations for Jetpack Compose,
including state-based animations that cover common use cases, as
well as coroutine-based animations for more
complex scenarios.
Manuel explained how to use Jetpack Compose's
automatic state observation, including
the basics of Compose's state holders, when to hoist state,
and using Android ViewModel as a state holder.
Finally, Takeshi covered the changes to app widgets
in Android 12, and Marcel previewed the upcoming Glance
APIs, which will allow you to define app widgets using
a Jetpack Compose-style syntax.
The "MAD Skills" series was a big part of ADS,
with lots of new technical content
covering modern Android development.
To begin with, Tor and Jamal covered
"What's New in Android Studio," including
frame lifecycle profiling supporting Android 11-plus,
improvements to the embedded emulator in studio
with full extended controls, and visual linting
with device classes to better support large screens.
Tor also demoed new and upcoming Jetpack
Compose-related features, such as interactive previews
with animation scrubbing support,
live literal preview support, and live editing.
Elif then did a deep dive into what's
new in Room, covering auto migrations,
including more complex migrations
that require an AutoMigrationSpec,
relational query methods, enum type converters,
query callbacks, support for Paging 3.0 APIs
and RXJava3, and experimental support for Kotlin Symbol
Processing for faster compilation speeds.
Manuel and Jose covered how to load data into Kotlin flows,
transform it, expose the data to users in your UI,
and how to test it, all within the context
of reactive programming.
They covered the use of the Lifecycle-aware
repeatOnLifecycle and flowWithLifecycle
from lifecycle-runtime-ktx 2.4.0.
James discussed CameraX 1.1, including the new Video Capture
API, easy YUV to RGB conversions,
Extensions beta APIs, and more.
Rahul and Ben covered WorkManager,
including the basics of how to request and cancel
long-running persistent tasks, when and how
to use the expedited work APIs, how
to use WorkManager to write solid, performant multiprocess
apps, and how to use the Background Task Inspector
within Android studio.
Amanda and Sean explained the importance
of emojis, why it's critical to support the latest emojis,
and why you should update to AppCompat 1.4.
The rest of the talk covers how it all works
and the way we've optimized emoji2.
Ivan and Scott discussed how to benefit
from the changes in the 7.0 release of the Android Gradle
plugin, including performance-enhancing features
such as KSP support, migration to nontransitive resource
classes, and safe configuration caching supported by updates
to the build analyzer.
They cover how to make your custom Gradle
task compatible with configuration caching
and how to extend the Gradle plugin with its new APIs.
Don and Andrew introduced the alpha release
of Jetpack Media3, a collection of support libraries
for media playback, including ExoPlayer.
They explained why we created Media3, what it contains,
the benefits it provides, and how
to get started using it in your app.
Finally, the "Modern Android Development #AskAndroid Live"
session took questions on architecture components,
Kotlin, Android studio, and performance.
Android is available across many form factors
beyond phones, tablets, and Chrome OS laptops,
including watches, TVs, and cars,
enabling you to leverage your Android development
skills to bring your content to a wide variety of devices.
First, Maia and Jeremy covered the new Compose
for WearOS Developer Preview, showing
what's similar to the mobile version of Jetpack
Compose, what's different, and what's additionally there,
so you can leverage your Compose skills to quickly develop
your own beautiful Wear OS app with less code.
Then Jay and Stav explained how to use the car app library
to bring your navigation, parking, or charging app
to the 100-plus million cars running
Android Auto and the growing list of manufacturers
supporting Android Automotive OS.
Finally, Mayuri and Brian talked about surfacing
your user's unfinished and up-next content on Android TV
and Google TV via the Watch Next API,
and how to use Android's APIs to stream the highest quality
audio and video.
Now my session covered what we're
doing to streamline your game development, including
the Android Game Development Kit, or AGDK.
It highlights the basics of what Android Studio brings to AGDK
development, using Visual Studio to develop games with
the Android Game Development Extension,
and developing with the AGDK C and C++ libraries,
such as GameActivity, GameTextInput,
and GameController input.
I also covered the basics of bringing your game
to more screens, such as TVs, Chromebooks, phones,
and tablets.
Finally, you'll learn how to take advantage of Play Asset
Delivery, Android Performance Tuner, Reach
and devices, the Android GPU inspector, and Play Games
Services.
Finally, we covered what we're doing in Google Play
to help bring your app or game to end users,
along with changes you'll need to be aware of.
In the "What's New in Google Play" session,
Lucy covered the new and updated Google Play features,
such as Android Vitals, ratings and reviews, Reach and devices,
and in-app messaging for Play billing subscriptions.
She also talked about the improvements
we're making for trust and safety, updates for games,
and a new store listing certificate course.
Dom and Soléne introduced the upcoming Play Integrity API
that allows you to determine if your backend service is
interacting with your genuine binary that's been installed
by Google Play on a genuine Android device.
It helps you deal with cheating, tampering, fraud, theft,
unauthorized usage, and more.
That's it for this time, with ADS updates from Jetpack
Compose, Material You, "MAD Skills," Android TV, Android
Auto and Automotive, Wear OS, game development, and Google
Play.
Please like, subscribe, share, stay safe,
and tune in next time for the latest from the Android
developer universe.
[MUSIC PLAYING]