29 Jun 2022

feedAndroid Developers Blog

Independent versioning of Jetpack Compose libraries

Posted by Jolanda Verhoef, Android Developer Relations Engineer

Starting today, the various Jetpack Compose libraries will move to independent versioning schemes. This creates the possibility for sub-groups such as androidx.compose.compiler or androidx.compose.animation to follow their own release cycles.

Allowing these libraries to be versioned independently will decouple dependencies which were previously implicitly coupled, thereby making it easier to incrementally upgrade your application and therefore stay up-to-date with the latest Compose features.

The first library to break away from the single Compose version is the Compose Compiler. Today we're releasing the 1.2.0 stable version that brings support for Kotlin 1.7.0! The release is both backwards and forwards compatible with the Compose UI libraries and the Compose Runtime library. This means you can upgrade your Compose Compiler to 1.2.0 stable and use Kotlin 1.7.0, while leaving your other Compose libraries on their current version, for example 1.1.0 stable.

To upgrade the version of the Compose Compiler in your app, specify the kotlinCompilerExtensionVersion in your build.gradle file.

Compose and Kotlin are highly coupled, and we've heard your feedback that Compose compiler updates are needed to allow you to upgrade your Kotlin version. We want to make sure that you can use the latest and greatest features (and bug fixes) from both Compose and Kotlin, which is why we plan to release stable versions of the Compose Compiler on a much more regular basis. This means the Compose Compiler version numbers will progress at a faster pace than most other Compose libraries. Since the Compose Compiler is both forwards and backwards compatible, you will be able to upgrade it as soon as a new version is released.

The Compose Compiler is built as a Kotlin Compiler Plugin, and so you must use a version of the Compose Compiler which is compatible with the version of Kotlin that you have chosen. To help you choose the version that matches your project, check out the Compose-Kotlin compatibility map.

Moving the Compiler library to a different versioning scheme is the first step in decoupling versioning for the different Compose library groups. You'll see new stable releases for the other Compose libraries in the next few weeks, and then they will then start following their own release cycles independent of the Compose Compiler.

Prepare your build for individual versioning and start using the latest Compose Compiler and Kotlin versions now!

We look forward to seeing what you build with Compose!

android {
    composeOptions {
        kotlinCompilerExtensionVersion = "1.2.0"

29 Jun 2022 5:00pm GMT

23 Jun 2022

feedAndroid Developers Blog

Developer-Powered CTS (CTS-D)

Posted by Sachiyo Sugimoto, Android Partner Engineering

A strength of Android is its diverse ecosystem of devices, brought to market by more than 24K distinct devices, and used by billions of people around the world. Since the early releases of Android, we've invested in our Android Compatibility Program as a way to ensure that devices continue to provide a stable, consistent environment for apps.

The Compatibility Test Suite (CTS) is a key part of the program - it is a collection of more than two million test cases that check Android device implementations to ensure developer applications run on a variety of devices and enable a consistent application experience for users.

Device makers run CTS on their devices throughout the development process, and use it to identify and fix bugs early. Over the years we have constantly expanded the suite by adding new test cases, and today CTS includes more than 2 million tests. It is still growing - as Android evolves, there are new areas to cover and there are also gaps where we are constantly working to create additional tests.

While most CTS tests are written by Android engineers, we know that app developers have a unique perspective on actual device compatibility issues. So to enhance CTS with better input from app developers, we are adding a new test suite called CTS-D that is built and run by developers like you.

What is CTS-D?

CTS-D is a new CTS module that is powered by app developers with a focus on pain points that they are seeing in the field. Developers can build and contribute test cases to CTS-D to help catch those issues, and they can run the CTS-D suite to verify compatibility. Longer term, our plan is to work closely with the Android developer community to expand the CTS-D suite.

We know that many of you have already created your own tests to verify compatibility on various devices. We want to work with you to bring those tests into AOSP, and you can see the first tests contributed by the community in the initial CTS-D commit here.

So with CTS-D, we are helping to make those kinds of tests available widely, to help device manufacturers and app developers identify and share issues more effectively.

How is CTS-D used?

CTS-D is open-sourced and available on AOSP, so any app developer can use it as a verification tool. Using CTS-D helps to minimize the communication overhead among app developers, device manufacturers and Google, helping to resolve issues effectively.

If a certain device does not pass a CTS-D test, please report the problem using this issue tracker template. After we verify the issue on the reported device, we will work with our partners to resolve it. We're also strongly advising device manufacturers to use CTS-D to discover and mitigate issues.

Get Started with CTS-D!

If you have an idea for CTS-D, please file a test proposal using this issue tracker template before contributing your test code to AOSP. The Android team will review your proposal and verify your test's eligibility. We're currently most interested in adding more test cases in the area of Power Management.

Just like with CTS, new CTS-D test cases must meet eligibility requirements and can only enforce the following:
  1. All public API behaviors that are described in Android developer documentation.
  2. All MUST requirements that are included in Android Compatibility Definition Document (CDD).
  3. Test cases that have not been covered by existing CTS test cases in AOSP
If you are interested in learning more about CTS-D, check out tutorials here on how to contribute to and utilize CTS-D. Note that the review process for new CTS-D test cases can take some time, so thanks for your patience. We hope you will give CTS-D a try soon. Let's collaboratively make the Android experience even better!

23 Jun 2022 5:00pm GMT

22 Jun 2022

feedAndroid Developers Blog

Notes from Google Play: making Play work for everyone


As Apps Partnerships lead for Google Play, I have the amazing opportunity of meeting with many companies who share great ideas and feedback on how we can support you creating and growing successful businesses.

In this latest edition of Notes from Google Play, I want to share some of your work that has inspired us, alongside what is top of mind for me and our team. What sums it up for me is our focus on making Google Play work for everyone. It's about making Play work better for all of you - the people behind apps and games - making it easier for you to grow apps and games business, and helping you better serve everyone, everywhere.

I will kick us off by sharing the story of OLIO, one of the many apps that has inspired me this year. OLIO is a community-driven app that is fighting to reduce food waste. The app provides a way for people to easily give away food to neighbors. Founders, Tessa Clarke and Saasha Celestial-One, had a goal to create local food sharing networks across the world and ensure nothing of value goes to waste. Having first launched the app in the UK, Tessa and Saasha's belief in their core mission helped them expand the app to 62 countries and counting, partnering with global stores to help them reach zero waste along the way.

The success of the OLIO app is a tale of two women from different backgrounds, with the same dream, made for the benefit of everyone and our planet. For me, this is what it's all about: ensuring that everyone is empowered to build a successful business that can benefit people around the globe.
So let me share more about some of my favorite tools and programs that we recently launched with this goal in mind.

Apps and games by everyone

Regardless of the size of your company, we want to make sure you have the insights and tools that enable you to make more informed decisions, and ultimately make it easy for you to build and improve your app or game business. Let's take a look at privacy and security as an example, as this is a critical topic.

We have various tools and programs to help you build safe and secure experiences for everyone and protect your business, including the Play Integrity API, Data Safety section, Privacy Sandbox on Android, and also the newly launched Google Play SDK Index.The index provides data and insights about more than 100 of the most widely used commercial SDKs. This can help you navigate third-party SDKs and align with Google Play policies, so that you make more informed decisions for your business and your users.

We also have programs designed for companies with various needs, from media companies building experiences across devices, to startups solving local problems in the first cohort of Appscale Academy in India. These 100 promising app innovators have already inspired us with their drive and creativity to build high-quality apps that serve and help people across India, and the world.

We're also excited to continue investing in programs designed to help grow businesses both big and small. These include the Google Play Partner Program which launched in March and is designed to help larger games businesses reach their growth and performance goals. We also just opened submissions for the Indie Games Accelerator and Indie Games Festival programs. We were particularly inspired by the alumni of the 2021 edition, and you can hear directly from Jimjum Studios in Israel, who create games that encourage kindness, community building, and generosity, in the first episode of Google Play Coffee breaks:

Beyond the size of the company, apps and games are built and run by people. So we are continuously investing in programs to drive diversity in the ecosystem and empower the next generations of app and game makers. Programs like Change the Game and our investment in organizations driving positive change in the games industry are just a couple of the programs I'm particularly proud of.

Apps and games for everyone

We believe everyone should have easy access to great app and game experiences. This enables people to lead better lives, and it helps you grow your businesses.

In order to help with this, we've made some updates that make it easier for everyone to access apps and games at a price that is right for them, which in turn helps you better monetise your apps or games. For example, you asked for more flexibility and less complexity in how you sell your subscriptions, so we launched new subscription capabilities. You can now create multiple base plans and offers for each subscription, all while significantly reducing the cost and complexity of managing an ever-increasing number of SKUs. Whether your aim is to better connect with people that are new to your business, or to retain your loyal users, you have the ability to create offers for everyone.

We've also invested in new tools that help people pay for your apps and games using the methods that suit them best, helping to improve your monetisation. Google Play Commerce provides buyer support in over 170 countries, and we've further increased access by adding to our payment method library, which now includes over 300 local payment methods in 70 countries. We also made changes to help you better adapt to local purchasing power by adding the option to lower prices, starting at the equivalent of 5 US cents in any market.

Serving people better doesn't only mean adapting pricing, but also optimizing your apps and games for the devices they are using, so they can get the best experience. Whether it's phones, wearables, tablets or TVs. We introduced new tools and resources to help you create better experiences on large screens and launched Google Play Games beta, to help you expand your game's reach to PCs.

Celebrating you

I started by highlighting OLIO as a business that was brought into existence by newcomers to the apps space, and yet managed to have a positive impact across the world. This is only one of so many inspiring examples out there. We've just launched #WeArePlay, a new campaign that celebrates you, the global community of people behind apps and games, and your unique stories. It represents teams of all sizes - some founded by longtime coders and others by tech newcomers, some based in big cities and others in smaller towns. These are short stories that tell personal journeys of making apps or games that are solving a problem or bringing joy to people everywhere.

I look forward to watching you all continue to build amazing app and game experiences, grow your businesses, and enthrall your users. Here's to you and your achievements - let's continue to celebrate every step forward and each small win. That's what makes us all grow.

Take care of yourselves and each other,

Sarah Karam

Director, Global Apps Partnerships, Google Play

22 Jun 2022 11:12pm GMT