Now in Android #48
Welcome to Now in Android, your ongoing guide to what’s new and notable in the world of Android development.
Android Dev Summit returns on October 27–28, 2021! 📆
Join us October 27–28 for Android Dev Summit 2021! The show kicks off at 10 AM PST on October 27 with The Android Show: a technical keynote where you’ll hear all the latest developer news and updates. From there, we have over 30 sessions on a range of technical Android development topics, and we’ll be answering your #AskAndroid questions live.
Android Dev Summit returns on October 27-28, 2021!
The Android Dev Summit is back! In just a few weeks, join us October 27-28 to hear about the latest updates in Android…
Android 12 is live in AOSP! 🤖
Android 12 introduces a new design language called Material You along with redesigned widgets, notification UI updates, stretch overscroll, and app launch splash screens. We reduced the CPU time used by core system services, added performance class device capabilities, made ML accelerator drivers updatable outside of platform releases, and prevented apps from launching foreground services from the background and using notification trampolines to improve performance. The new Privacy Dashboard, approximate location, microphone and camera indicators/toggles, and nearby device permissions give users more insight into and control over privacy. We improved the user experience with a unified API for rich content insertion, compatible media transcoding, easier blurs and effects, AVIF image support, enhanced haptics, new camera effects/capabilities, improved native crash debugging, support for rounded screen corners, Play as you download, and Game Mode APIs.
Android 12 is live in AOSP!
Today we're pushing the source to the Android Open Source Project (AOSP) and officially releasing the latest version of…
Unit 6 of Android Basics in Kotlin is live!🎉
The final unit planned for Android Basics in Kotlin that covers using Android Jetpack’s WorkManager API is now live. Android Basics in Kotlin guides students through learning to program in Kotlin while learning to build Android apps, ultimately developing a collection of apps to start Android developer journeys.
You can see the full course here.
Enhanced user management on Google Play Console 🧑💼
The user and permission tools in Play Console have a new, decluttered interface and new team management features, making it easier to make sure every team member has the right set of permissions to fulfill their responsibilities without overexposing unrelated business data.
We’ve rewritten permission names and descriptions, clarified differentiation between account and app-level permissions, added new search, filtering, and batch-editing capabilities, and added the ability to export this information to a CSV file. In addition, Play Console users can request access to actions with a justification, and we’ve introduced permission groups to make it easier to assign multiple permissions at once to users that share the same or similar roles.
Improved Google Play Console user management: access requests, permission groups, and more
User management is an important responsibility for businesses of all sizes. The challenge is to make sure that every…
Making Permissions auto-reset available to billions more devices 🔐
Android 11 introduced permission auto-reset, automatically resetting an app’s runtime permissions when it isn’t used for a few months. In December 2021, we are starting to roll this feature out to devices with Google Play services running Android 6.0 (API level 23) or higher for apps targeting Android 11 (API level 30) or higher. Users can manually enable permission auto-reset for apps targeting API levels 23 to 29.
Some apps and permissions are automatically exempted from revocation, like active Device Administrator apps used by enterprises, and permissions fixed by enterprise policy. If your app is expected to work primarily in the background without user interaction, you can ask the user to prevent the system from resetting your app’s permissions.
Making permissions auto-reset available to billions more devices
Contributors: Inara Ramji, Software Engineer; Rodrigo Farell, Interaction Designer; James Kelly, Product Manager; Henry…
Wear OS Jetpack libraries now in stable⌚
The five core Android Jetpack Wear OS libraries are now stable, helping you to follow best practices, reduce boilerplate, and create performant, glanceable experiences for your users. The Android Jetpack Wear OS libraries contain all the familiar functionality you’ve grown used to in the old Wearable Support library with better support for Wear OS 3.0.
We strongly recommend you migrate the libraries within your Wear OS apps from the Wearable Support library to their AndroidX equivalents as we make them available in stable.
Wear OS Jetpack libraries now in stable!
In order to help you develop high quality Wear OS apps, we have been busy updating the Android Jetpack Wear OS…
MAD Skills: Hilt and Paging 💡
The MAD Skills series continues to roll on, with technical content about modern Android development.
The Android Jetpack paging library is now at version 3. Paging is designed to help you handle large datasets that come from local storage or over the network within your app, allowing your app to use network bandwidth and system resources more efficiently. TJ has launched a new MAD Skills series to cover it, beginning with this introduction.
The first episode covers how to begin to incorporate paging in your app with content coming from a network data source. It covers how to implement a
PagingSource, create a
Pager, and expose a stream of
PagingData from the Pager.
Future episodes will cover how to consume paging data in the UI, and how to work with paging data from two different sources — network and a database cache.
Accessibility series 🌐
The accessibility series continues on with more information on how to follow basic accessibility principles to make sure that your app can be used by as many users as possible.
Color contrast can not only help users with visual impairments use your app, it can help everyone use your app outdoors in the sun. Smaller text needs larger contrast ratios than large text, and the video covers best practices and how to test your app to make sure it’s legible to the largest number of users.
EditText views need to have context for users of TalkBack to avoid them being announced as EditBox. The video covers two different ways to avoid this problem: Adding an
android:hint attribute to stand-alone EditText views, and adding an
android:labelFor attribute to each
TextView that serves as a label. Both help TalkBack give appropriate context for a vastly-improved user experience.
Also, we’ve added a new codelab that covers accessibility best practices within Jetpack Compose, such as touch target sizes, content descriptions, click labels, and more.
Want even more accessibility? You are in luck, check out this entire new learning pathway aimed at teaching you how to make your app more accessible.
Manuel talks about Headspace’s journey to app excellence; they spent eight months refactoring to a Model-View-ViewModel architecture, rewriting in Kotlin and improving their test coverage from 15 to 80%. The improved app experience increased monthly active users by 15% and increased review scores from 3.5 to 4.7 between Q2 and Q4 of 2020.
Mindful architecture: Headspace's refactor to scale
Contributors: Mauricio Vergara, Product Marketing Manager, Developer Marketing, Marialaura Garcia, Associate Product…
Maru continued our app excellence series, covering the dimensions of performance excellence:
- Fast load times
- Smooth rendering
- Battery economy
- Up-to-date SDKs (for both security and performance!)
App performance to drive app excellence
In our previous blog post in this series, we defined app excellence as "creating an app that provides consistent…
Starting in Android 12, foreground service launch restrictions were introduced. These restrictions can leave your app in a state where calling setForeground may cause an exception.
Using WorkManager on Android 12
In WorkManager 2.6, we implemented the ability for Workers to run in any designated processes and as of today…
Wayne answers some top game development questions we’ve gotten since launching the Android Game Development Kit (AGDK) in July, ranging from AGDK libraries and tools, optimizing memory in Android, the upcoming Game Mode API, and using graphics APIs to target the GPU.
Answering your top questions on Android Game Development Kit
We launched the Android Game Development Kit (AGDK) in July, and have collected some top questions from developers …
AndroidX Releases 📚
There’s not a huge amount of notable changes in AndroidX libraries this week; we’ve got some small fixes and updates to support Kotlin 1.5.30. CameraX 1.1.0-alpha 09 dramatically improved the efficiency of our RGBA output, and we’ve also updated the associated CameraX analysis documentation and the CameraX TFLite sample.
Documentation Updates 🏫
Speaking of documentation updates, we’ve consolidated privacy and security resources in Design for Safety. The page includes best practices and resources to help you design and implement safe, secure, and private apps.
ADB Podcast Episodes🎙
There has been one 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:
That’s it for this time, with Android Dev Summit 2021, Android 12, the Hilt and Paging MAD skills series, Android Basics in Kotlin, Play Console User Management updates, Permissions auto-reset to older devices, WearOS Jetpack libraries, more of our accessibility series, app excellence, Android 12 WorkManager and System UI, CameraX analysis updates, and a new Design for Safety section on developer.android.com. Come back here soon for the next update from the Android developer universe.