Now in Android #51 — ADS Recap Part 2
Jetpack Compose, Material You, MAD Skills, Android TV, Android Auto/Automotive, WearOS, Game Development, and Google Play.
--
Welcome to Now in Android, your ongoing guide to what’s new and notable in the world of Android development. This week is part two of our series covering the happenings at Android Developer Summit (ADS) 2021.
Jetpack Compose and Material You 🎶
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 a great place to start is with Nick Rout’s “Implementing Material You using Jetpack Compose” talk. It covers a broad range of topics like new and updated Material Theming and Components, Dynamic Color, System UI changes, interoperability with 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 Jetpack Compose with Material You #AskAndroid | LIVE question and answer session to learn more.
Speaking of Material You, Rody Davis and Ivy Knight 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 stand-alone and Figma variations, as well as the Material 3 design kit.
Nick Butcher and George Mount then take 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 examine 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, Kris Giesing 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 e directly updated in code. There’s an early access program available.
Yuichi Araki and Doris Liu 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 Vivo 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 Hagikura covered the changes to App Widgets in Android 12, and Marcel Pintó as previewed the upcoming Glance APIs, which will allow you to define app widgets using a Jetpack Compose-style syntax.
MAD Skills @ADS 💡
The MAD Skills series was a big part of ADS, with lots of new technical content covering modern Android development.
To begin with, Tor Norbye and Jamal Eason covered “What’s new in Android Studio”, including frame lifecycle support in Android 11+, 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 Bilgin 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 Vivo and Jose Alcérreca 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 cover the use of the Lifecycle-aware repeatOnLifecycle
and flowWithLifecycle
from lifecycle-runtime-ktx
2.4.0.
James Fung discussed CameraX 1.1, including the new Video Capture API, easy YUV to RGB conversions, Extensions Beta APIs, and more.
Rahul Ravikumar and Ben Weiss 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 Alexander and Sean McQuillan 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 Gavrilovic and Scott Pollom 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 non-transitive 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 Android Gradle plugin with its new APIs.
Don Turner and Andrew Louis 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.
Building across screens
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 Conrado and Jeremy Walker covered the new Compose for Wear OS 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 Yoo and Stav Raviv explained how to use the car app library to bring your Navigation, Parking, or Charging app to the 100+ million cars running Android Auto and the growing list of manufacturers supporting Android Automotive OS.
Finally, Mayuri Khinvasara and Brian Lindahl 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.
Android game development 🎮
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 NDK development, using Visual Studio to develop Android games with the Android Game Development Extension, and developing with the AGDK C/C++ libraries such as GameActivity, GameTextInput, and the Game Controller library. I also covered the basics of bringing your game to more screens such as TV’s, 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.
Google Play 🏬
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 Hughes covered 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 Elliott and Soléne Maître introduced the upcoming Play Integrity API. It 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 to help you deal with cheating, tampering, fraud, theft, unauthorized usage, and more.
Now then…
That’s it for this time with part 2 of our Android Developer Summit updates from Jetpack Compose, Material You, MAD Skills, Android TV, Android Auto/Automotive, WearOS, Game Development, and Google Play. Come back here soon for the next update from the Android developer universe.