Now in Android #36
MAD Skills WorkManager, AndroidX, Audio, UX, Wear OS Tiles, Jetpack Compose, Coroutines, #AndroidDevChallenge, and a podcast
Welcome to Now in Android, your ongoing guide to what’s new and notable in the world of Android development.
NiA36 in Video and Podcast Form
This Now in Android is also offered in video and podcast form. It’s the same content, but with less reading required. The article version (keep reading!) is still the place to come for links to all of the content that’s covered.
Podcast
Click on the link below, or just subscribe to the podcast in your favorite client app.
MAD Skills: WorkManager
The series on WorkManager continues with two more episodes!
Working in the background: If there’s something you shouldn’t do in Android apps, it’s block the UI thread. In this episode, Ben Weiss goes through how to perform background work using WorkManager, covering the different possible approaches. The APIs you use in WorkManager depend on whether you use Executors, coroutines, or RxJava. The episode also covers how to return a result when the work is completed. In addition, Ben performs one of the best “Let’s go” interpretations I’ve seen so far in MAD videos.
Advanced configuration & testing: Also Ben explains how to customize the initialization of WorkManager, support apps that span multiple processes, test Workers and shares some useful debugging techniques.
AndroidX Releases
Most of the AndroidX releases were about bug fixes this time! That’s great news! You find problems with our libraries, we fix them. Win, win.
You know me, I work on Hilt… I cannot move on to another section without mentioning that Hilt was promoted to Beta! All Hilt APIs and the AndroidX specific APIs to support ViewModel, WorkManager, and Navigation are stable. You might know this already, but Hilt is Jetpack’s recommended solution for Dependency injection in Android. As part of this, we released a cheat sheet to quickly see what the different Hilt and Dagger annotations do and how to use them.
Meanwhile, if you are starting to use Jetpack Compose and the Navigation component, the team just released a new library called hilt-navigation-compose
to retrieve Hilt-provided ViewModels that are scoped to a destination of a navigation graph created with Navigation Compose. Read more about this in the docs.
Articles, Docs and Videos
An update on Android’s audio latency
Don Turner covers improvements in Android’s audio latency and how this affects real-time audio apps. This article takes a look at what’s changed in the ecosystem, plans for the future and how to get started building low latency audio apps using the Oboe library.
A UX journey of Compose Preview
Jetpack Compose has always been developed with the user in mind. The main user is YOU, our beloved developer friend. Preethi Srinivas and Paris Hsu cover how the Compose Preview feature in Android Studio was designed and how different UX research studies have influenced its design and functionality.
Announcing Wear OS Tiles Alpha
Wear OS tiles are being revamped from the ground up! There’s a new Jetpack Tiles library, still in alpha, that allows you to create custom tiles — an easy access to information and actions in Wear OS without needing to open the app. These will become available to the users in the future with upcoming Wear OS platform updates. Using this library allows you to start prototyping now.
API guidelines for Jetpack Compose
The Jetpack Compose team have just released API guidelines; patterns, best practices and style guidelines for writing idiomatic Jetpack Compose APIs. Check this guide out to help you write idiomatic Compose code, or if you just want to know more about the thoughts behind the Compose APIs overall.
Android Code-Along: Coroutines
Caren Chang and I came together in a live session to explain how to use coroutines on Android. We went through the coroutines documentation and basics codelab while answering questions from the live chat.
If you want to learn coroutines, open Android Studio, and code along with us in this video!
Android Dev Challenge
With Jetpack Compose going beta a few weeks ago, we started a developer challenge that flooded the Internet with puppy adoption apps in the first week, and count down timers in the second week! Now, in week three, it was time for a challenge for the fastest fingers!
Respecting different timezones, Android developers were challenged to implement a mock design as quickly as possible to win a Pixel 5!
If you didn’t have the time to participate, don’t worry. You can still use these challenges to try Compose at your own pace. But if you need extra motivation, the #AndroidDevChallenge grand finale starts on March 17th. Don’t miss it!
Podcast Episodes
There’s been another episode of Android Developers Backstage posted since the last Now in Android. Check it out at the link below, or in your favorite podcast client.
ADB 158: Jetpack Compose… C’est bêta !
Chet Haase, Romain Guy and Tor Norbye met with 4! people from the Jetpack Compose team: Nick Butcher, Clara Bayarri, Leland Richardson, and Adam Powell to discuss what “Compose is in Beta” means, along with some of the features Jetpack offers, such as coroutines, the Material Design implementation, and ConstraintLayout.
Android Developer Relations is hiring
In the Android Developer Relations team, our mission is to help people build great apps. Do you want to join our team? We have some open roles that you might be interested in across the world. If you aren’t sure what our team does, read Jacob Lehrbaum’s blog post for more information about it and a description of our open positions.
Now then…
That’s it for this time. Go MAD for information on WorkManager in the last MAD Skills series! Read the articles about audio latency, Compose Preview UX journey, our team hiring, the new Wear OS Tiles library, and the API guidelines for Jetpack Compose! Watch the Android Code-Along episode about coroutines! Compose some code with the #AndroidDevChallenge! Listen to the latest ADB podcast! Join our DevRel team! And come back here soon for the next update from the Android developer universe.