Welcome to a new episode of Now in Android, your ongoing guide to what’s new and notable in the world of Android development.
Developer Preview 1 is now available, with the latest features and changes to try with your apps! Install a system image and update the tools to get started. During this phase we’re looking for your feedback, so please let us know what you think! Visit the feedback page to report an issue or submit a feature request. Here is the rough timeline for the release milestones:
Explore the new features and APIs available in Android 14 and learn about its behavior changes that might affect your app when it’s running on Android 14. Some notable changes in core functionality include the SCHEDULE_EXACT_ALARM permission, which is no longer being pre-granted to most newly installed apps targeting Android 13 and higher. Context-registered broadcasts may be placed in a queue while the app is in the cached state. And to improve security and privacy for users, starting with Android 14, apps with a targetSdkVersion lower than 23can’t be installed.
There are also some behavior changes that apply exclusively to apps that are targeting Android 14 or higher. For example, exporting behavior for runtime-registered broadcasts, or new restrictions to implicit and pending intents. Android 14 also introduces foreground service types for health and remote messaging use cases and requires you to specify at least one foreground service type for each foreground service in your app.
Do check out the list of documented features and behavior changes that might affect your app.
We launched a new MAD Skills series focusing on the Jetpack Compose layout and modifier. The series has three new episodes covering fundamentals of compose layout and modifiers, mental model of how Compose APIs transform data into UI and Constraints and modifiers order.
In the first episode, Simona Stojanovic explains about the fundamentals of layouts and modifiers. It helps you understand how layout and modifiers work together, what out-of-the-box APIs Compose offers, and how to beautifully style your UI.
You can also watch this post as a MAD Skills video:
In the second episode, Jolanda Verhoef helps you to create a mental model of how the out-of-the-box Compose APIs actually transform data into UI. With this mental model you will have a better understanding of how the different phases — Composition, Layout, Drawing — in Compose work.
You can also watch this post as a MAD Skills video:
In the third episode, Jolanda helps you understand how the order of modifiers in the modifier chain influences the sizes of the composables and learn more about modifier chaining.
If you’ve got any questions from this series on Compose Layouts and Modifiers, we will have a live Q&A session on March 9th. Leave a comment on the blog posts, on YouTube, or using #MADCompose on Twitter to ask your questions.
Since the previous episode, there have been some AndroidX releases worth highlighting.
Graduated to stable, Browser 1.5.0 added new features such as the ability to specify initial launch height of a Custom Tab, toolbar’s top corner radius, set the position of the close button on the toolbar and notify when a Custom Tab is resized.
WorkManager 2.8.0 introduces a new way to update periodic work that allows ongoing work to continue. It also introduced several API changes such as, ability to intercept scheduling exceptions, improved RxWorker support, and so on. For details, check out the documentation.
The Compose Material 3 1.1.0-alpha06 added new features and API changes, including support for prefix and suffix text in Text fields, TimePicker function for Material 3 compliant time pickers, Modal bottom sheet implementation for Material3 and more.
With Lifecycle 2.6.0-beta01 the LifecycleOwner and ViewModelStoreOwner are now written in Kotlin. This also introduces source incompatible changes for classes written in Kotlin.
Last but not least, the Compose Compiler v1.4.1 and v1.4.2 releases focus on fixing recomposition bugs.
In the Migrating Sunflower to Jetpack Compose blog post, Chris Arriola shares their experience migrating Sunflower to Jetpack Compose. The blog post highlights the migrating strategy in practice and provides steps you can take to devise a plan to migrate your app. You can get insights on how the plan can be implemented by migrating the Sunflower app. Chris also shares their experience and the obstacles they faced during the migration journey.
In the Hundreds of thousands of developers are learning Jetpack Compose blog post, the Android team shares how Compose Camp, an Android meetup series, has helped developers across different experience levels to learn about building Android apps with Jetpack Compose. The post also highlights some “campers” experiences and learning tips. It was great to see hundreds of thousands of you around the world participate in Compose Camp!
Summers Pittman wrote about how to use the Android Sharesheet tool for sharing deep linked content. The article shows why you should use the Sharesheet and demonstrates how to use it with linked content.
Mozart Louis wrote about how to deal with “color washout”. The article talks about how to correctly transcode 10-bit HDR video to 8-bit SDR video and ensure support for devices that can’t display HDR content.
Diego Zavala wrote about how Android’s new Credential Manager can bring sign-in solutions and passkeys together. Credential Manager is a new Jetpack API that allows app developers to simplify their users’ authentication journey, while also increasing security with support of passkeys.