[MUSIC PLAYING]
MANUEL VICENTE VIVO: Hi.
Welcome to Now in Android, episode number 34.
I'm Manuel Vivo, part of the Android developer relations
team, and I will be your host today.
A lot of things happened since the previous episode, so let's
start talking about the MAD skills series first.
The series on MotionLayout has come to an end.
In the fourth episode, Sean McQuillan
explains how to build a collapsible toolbar using
MotionLayout.
Along the way, you will learn how
to animate custom attributes using this API.
The final episode was, no surprise here,
a live Q&A with MotionLayout experts
from the developer relations and engineering teams.
You can catch that recording if you haven't already.
So what's next in MAD?
Well, I heard that the next series is
going to be about WorkManager.
So if you need to execute any deferred or immediate tasks,
you can use this API.
So, watch out for this series in the future.
Apart from MAD, we had a bunch of library releases happening
during this time, and the first one
is about Material Design Components.
This library reached version 1.3.0 as stable,
and it brings new material components
such as material time picker and progress indicator.
All the updates includes [? location ?]
of strings inside some components, like dialogues.
If you're interested in everything that happened there,
you can check out the release notes.
There was an important alpha release happening as well
last week, and it was about the Kotlin Symbol Processing
Library, KSP.
KSP is a tool for building lightweight compiler plugins
in Kotlin.
If you're familiar with annotation processors,
KSP offers similar functionality to KAPT,
but it is up to two times faster,
and obviously it's built with Kotlin Multiplatform in mind.
So if you are the author of a library that uses annotation
processing, see the blog post for more information
on how you can make your library KSP compatible.
A lot of AndroidX releases happened, as every other two
weeks, and AndroidX comes with some stable releases this time.
Activity 1.2.0 brings the new Activity Results APIs.
These APIs are going to bring type safety
and better testing to the Start Activity [? full ?] resolve
and request permissions flows.
Apart from this, component activity
is going to implement the Context [? Hour ?] interface
that can give you a hook before super.onCreate is called.
Another release was Fragment 1.3.0, and a lot of things
changed in this version.
Notably, it brings a new state manager,
which involves pretty much a complete rewrite
of the internals of FragmentManager.
So give this a go.
It also, it's going to add support for Activity 1.2.0,
and it's going to add the new Fragment Results APIs, pretty
much the equivalent of the Activity APIs.
And considerably it's going to improve Fragment Scenario,
so that you can better test your fragments here.
Lifecycle 2.3.0 also reached stable,
and it adds safe state [? handle ?] support
for nonParcelable classes.
There are lifecycle state and event helpers in this library,
for example, to see how events relate to each other,
but also other nice things, like the [? with ?] state
[? at least ?] suspend functions that are going to execute
a block of code whenever the lifecycle reaches a certain
state.
There is another release that I want to give a shout out,
and that's Paging 3.
Paging 3 has reached the first beta version here.
So, as you may know, Paging 3 has been a huge [? rewrite ?]
in Kotlin that embraces coroutines
at the fundamental level.
And because now it is in beta, the APIs
have freezed API stability, so in case you
want to migrate to stable in the future,
there will be pretty much no migration path there.
Apart from the regular releases, we
had a bunch of articles and talks coming out.
We have "Bridging the Gap between Coroutines, Threads,
and Concurrency Problems," written by me.
Here, I wrote this article because I
wanted to demystify how coroutines are actually
executed on the Android front [INAUDIBLE]..
But from that there are some watch outs to look out for,
for example like concurrency issues.
Of course, if you are in a multithreaded environment,
if you try to mutate a variable from different threads,
that can cause some problems.
You have to protect accessing the value.
So, you want to learn more about it, please read the blog post.
There is a new talk about adapting your apps
for Android 11 privacy changes.
Of course, privacy continues to be a top priority in Android,
and here Fred [? Chang's ?] talk is
going to cover some of the user facing changes,
but also this is mainly meant for developers.
So, you're going to see new APIs, behavior changes,
as well as testing.
So, for example, if you're interested
in the new one-time permission change,
you have to check out the talk.
Another blog post was "Android Nesting Intents,"
written by [? Nikki ?] [? Morelli, ?] that explains
why you should use pending intents instead of intents
whenever you have [? interop ?] callbacks.
Spoiler alert, if you don't do this,
you can leave your app vulnerable.
You might not want to do that.
We had a couple of announcements,
pretty nice announcements that we want to stand out.
This one is about app quality.
Application quality matters to everyone, both users
and developers.
So, we released a new app quality page on our developer
site that is going to help you keep up
to date with key aspects of app quality,
and we're going to provide plenty of resources
on how to achieve and maintain this high quality in your app.
We have these core app quality checklist
that is going to help you assess your application in terms
of visual experience, functionality, performance
and stability, privacy and security, and Google Play.
Obviously, this is a great asset to share with your team,
for example QA or design, so that everyone
is on the same page.
Going forward, we want to update this checklist regularly
to keep it up to date with everything that is going on
in the Android world.
Of course, we want to extend this
as well to other [? N4 ?] factors,
such as tablets and [INAUDIBLE].
The other announcement I wanted to make is about education.
We want to make learning Android development
accessible to everyone in the world.
So a new curriculum for Android development with Kotlin
is now available for educators to teach Android development
in a classroom setting.
So it's going to include many materials from lecture
slides to hands-on code labs, so if you
are interested to check it out.
But also we know that people prefer to learn in peer groups
as well, so we opened up under the Android Study Jams program
to make it available as well to everyone.
So this content is going to enable a group of people
to come together and learn Android at their own pace
through an online curriculum.
And that's pretty much everything
I had to share today.
All the links of everything I mentioned today,
it's in the blog post in Medium, the Now in Android Episode
34 blog post.
And if you enjoyed this video, please like,
share, and subscribe to the Android developers
channel in YouTube.
Bye.
[MUSIC PLAYING]