The latest Android and Google Play news for app and game developers.
Posted by Wojtek Kaliciński, Developer Advocate, Android
Last year, we launched Android App Bundles and Google Play's Dynamic Delivery to introduce modular development, reduce app size and streamline the release process. Since then, we've seen developers quickly adopt this new app model in over 60,000 production apps. We've been excited to see developers experience significant app size savings and reductions in the time needed to manage each release, and have documented these benefits in case studies with Duolingo and redBus.
Thank you to everyone who took the time to give us feedback on our initial launch. We're always open to new ideas, and today, we're happy to announce some new improvements based on your suggestions:
When you adopt the Android App Bundle as the publishing format for your app, Google Play is able to optimize the installation by delivering only the language resources that match the device's system locales. If a user changes the system locale after the app is installed, Play automatically downloads the required resources.
Some developers choose to decouple the app's display language from the system locale by adding an in-app language switcher. With the latest release of the Play Core library (version 1.4.0), we're introducing a new additional languages API that makes it possible to build in-app language pickers while retaining the full benefits of smaller installs provided by using app bundles.
With the additional languages API, apps can now request the Play Store to install resources for a new language configuration on demand and immediately start using it.
The app can get a list of languages that are already installed using the SplitInstallManager#getInstalledLanguages() method.
SplitInstallManager#getInstalledLanguages()
val splitInstallManager = SplitInstallManagerFactory.create(context) val langs: Set<String> = splitInstallManager.installedLanguages
Requesting an additional language is similar to requesting an on demand module. You can do this by specifying a language in the request through SplitInstallRequest.Builder#addLanguage(java.util.Locale).
SplitInstallRequest.Builder#addLanguage(java.util.Locale)
val installRequestBuilder = SplitInstallRequest.newBuilder() installRequestBuilder.addLanguage(Locale.forLanguageTag("pl")) splitInstallManager.startInstall(installRequestBuilder.build())
The app can also monitor install success with callbacks and monitor the download state with a listener, just like when requesting an on demand module.
Remember to handle the SplitInstallSessionStatus.REQUIRES_USER_CONFIRMATION state. Please note that there was an API change in a recent Play Core release, which means you should use the new SplitInstallManager#startConfirmationDialogForResult() together with Activity#onActivityResult(). The previous method of using SplitInstallSessionState#resolutionIntent() with startIntentSender() has been deprecated.
SplitInstallSessionStatus.REQUIRES_USER_CONFIRMATION
SplitInstallManager#startConfirmationDialogForResult()
Activity#onActivityResult()
SplitInstallSessionState#resolutionIntent()
startIntentSender()
Check out the updated Play Core Library documentation for more information on how to access the newly installed language resources in your activity.
We've also updated our dynamic features sample on GitHub with the additional languages API, including how to store the user's language preference and apply it to your activities at startup.
Please note that while the additional languages API is now available to all developers, on demand modules are in a closed beta for the time being. You can experiment with on demand modules in your internal, open, and closed test tracks, while we work with our partners to make sure this feature is ready for production apps.
In Android Studio 3.3, we introduced a way to build app bundles that contain both the regular, installed version of your app as well as a Google Play Instant experience for modules marked with the dist:instant="true" attribute in their AndroidManifest.xml:
dist:instant="true"
AndroidManifest.xml
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="true" /> ... </manifest>
Even though you could use a single project to generate the installed and instant versions of your app, up until now, developers were still required to use product flavors in order to build two separate app bundles and upload both to Play.
We're happy to announce that we have now removed this restriction. It's now possible to upload a single, unified app bundle artifact, containing modules enabled for the instant experience. This functionality is now available for everyone.
After you build an instant-enabled app bundle, upload it to any track on the Play Console, and you'll be able to select it when creating a new instant app release. This also means that the installed and instant versions of your app no longer need different version codes, which will simplify the release workflow.
You need to enable app signing by Google Play to publish your app using an Android App Bundle and automatically benefit from Dynamic Delivery optimizations. It is also a more secure way to manage your signing key, which we recommend to everyone, even if you want to keep publishing regular APKs for now.
Based on your feedback, we've revamped the sign-up flow for new apps to make it easier to initialize the key you want to use for signing your app.
Now developers can explicitly choose to upload their existing key without needing to upload a self-signed artifact first. You can also choose to start with a key generated by Google Play, so that the key used to locally sign your app bundle can become your upload key.
Read more about the new flow.
We have now added the ability to permanently uninstall dynamic feature modules that are included in your app's initial install.
This is a behavior change, which means you can now call the existing SplitInstallManager#deferredUninstall() API on modules that set onDemand="false". The module will be permanently uninstalled, even when the app is updated.
SplitInstallManager#deferredUninstall()
onDemand="false"
This opens up new possibilities for developers to further reduce the installed app size. For example, you can now uninstall a heavy sign-up module or any other onboarding content once the user completes it. If the user navigates to a section of your app that has been uninstalled, you can reinstall it using the standard on demand modules install API.
We hope you enjoy these improvements and test them out in your apps. Continue to share your feedback as we work to make these features even more useful for you!
How useful did you find this blog post?
★ ★ ★ ★ ★
By: Mary Liz McCurdy, Health & Fitness Lead, Google Play
(Originally published on Android Central)
It's an exciting time to be a health & fitness app developer. With people shelling out on fitness more than ever before, we're seeing record high levels of gym memberships and attendance, the rise of boutique fitness, and an emphasis on connected devices.
Paramount to this growth is the integration of smart technology. Whether it be through streaming video, wearables, or mobile apps, technology empowers us with instant access to high quality workouts, sensor biofeedback, and endless on-demand inspiration. At Google Play, we've seen this growth reflected by the incredible popularity of health & fitness apps. In fact, this is one of Google Play's fastest growing app categories, boasting the most engaged 30d active users.
As the resident health & fitness expert on Google Play, I had the opportunity to speak about what's driving the category's growth at the recent Wearables Technology Show. Here are the top three recommendations I shared with the audience to help coach developers towards building more valuable app experiences:
Lose it!
We all know how painful manually logging activity and biometrics is- be it calorie tracking, workouts, moods, or hormone cycles. Manual logging is actually the number one reason users drop off.
What you should do: Minimize distraction with automation wherever possible while maximizing value at the appropriate moments. Remember that you are in all likelihood a companion experience to the main event.
Lose It! makes food tracking easier by using your phone's camera and image recognition technology to identify foods and their nutritional information. Goodbye manual calorie counting!
Strava uses auto pause detection, recognizing when you are resting during exercise so you don't need to fiddle with your device and can stay safe and in the zone.
Freeletics
Investing in robust personalization has been the driving factor in improving app engagement and buyer conversion among many of our top developers.
What you should do: Personalize the experience for each user or distinct user cohorts by leveraging technology like the Awareness API, Fit API, Google Sign In, and Facebook Login to intelligently pull in relevant user data. Think about your first-time users, power users, high value users, etc. and treat them uniquely.
Freeletics personalizes onboarding and the overall app experience based on gender and fitness level leading to a 58% increase in weekly active sessions.
Workout Trainer by Skimble increased user engagement by 30% through personalizing training programs based on user fitness assessments, goals, and workout patterns.
Glow
The rise of smartphones, wearables and IoT have left us swimming in data and dashboards and left many consumers wondering, so what?
What you should do: Offer insights and suggestions, not just raw data. Users are not engineers and generally do not want to process complex data or dashboards. In most cases, they want you to tell them what to do in the moment or provide digestible summaries after the fact. Keep it simple.
Glow provides personalized insights that leverage user-inputted data and third party data from Google Fit to help couples achieve their fertility goals.
Beddit gives personalized daily tips to improve your sleep and wellness by analyzing sleep cycles, resting heart rate, respiration, room temperature, and more.
At the end of the day, changing health and fitness habits is hard. Make it easier for your users by seamlessly guiding them on what they personally need to do to achieve their goal. It's that simple ;) We encourage you to experiment with these exercises to get your app fit for the millions of Android users looking to live a healthier, happier life.
Posted by Lily Sheringham, Google Play team
Today we have released a new video ‘10 tips to stay on the right side of Google Play policy’. The video provides 10 best practices to help you develop and launch apps and games which follow Google Play’s Developer Program Policies.
It accompanies the recently published News video series and is part of our 10 tips for success on Google Play video series.
Watch the video to learn how to review your app, to ensure you have appropriate content and the rights to use it, how to handle user data, and more. Also, find out how to stay up to date with policy updates and get support from our policy team.
You can also find more resources on Google Play policies in the Developer Policy Center, and also get the new Playbook for Developers app to learn more best practices to find success on Google Play.
Posted by Jamil Moledina, Google Play, Games Strategic Lead
Last Saturday, we hosted the first Google Play Indie Games Festival in North America, where we showcased 30 amazing games that celebrate the passion, innovation, and art of indies. After a competitive round of voting from fans and on-stage presentations to a jury of industry experts, we recognized seven finalists nominees and three winners.
Finalists nominees and winners also received a range of prizes, including Google I/O 2017 tickets, a Tango Development kit, Google Cloud credits, an NVIDIA Android TV & K1 tablet, and a Razer Forge TV bundle.
Indie Games Contest coming to Europe
We’re continuing our effort to help indie game developers thrive by highlighting innovative and fun games for fans around the world. Today, we are announcing the Indie Games Contest for developers based in European countries (specific list of countries coming soon!). This is a great opportunity for indie games developers to win prizes that will help you showcase your art to industry experts and grow your business and your community of players worldwide. Make sure you don’t miss out on hearing the details by signing up here for updates.
As we shared at the festival, it’s rewarding to see how Google Play has evolved over the years. We’re now reaching over 1 billion users every month and there’s literally something for everyone. From virtual reality to family indie games, developers like you continue to inspire, provoke, and innovate through beautiful, artistic games.
Posted by Dave Burke, VP of Engineering
Android 7.0 Nougat
Today, Android 7.0 Nougat will begin rolling out to users, starting with Nexus devices. At the same time, we’re pushing the Android 7.0 source code to the Android Open Source Project (AOSP), extending public availability of this new version of Android to the broader ecosystem.
We’ve been working together with you over the past several months to get your feedback on this release, and also to make sure your apps are ready for the users who will run them on Nougat devices.
Android Nougat reflects input from thousands of fans and developers like you, all around the world. There are over 250 major features in Android Nougat, including VR Mode in Android. We’ve worked at all levels of the Android stack in Nougat — from how the operating system reads sensor data to how it sends pixels to the display — to make it especially built to provide high quality mobile VR experiences.
Plus, Nougat brings a number of new features to help make Android more powerful, more productive and more secure. It introduces a brand new JIT/AOT compiler to improve software performance, make app installs faster, and take up less storage. It also adds platform support for Vulkan, a low-overhead, cross-platform API for high-performance, 3D graphics. Multi-Window support lets users run two apps at the same time, and Direct Reply so users can reply directly to notifications without having to open the app. As always, Android is built with powerful layers of security and encryption to keep your private data private, so Nougat brings new features like File-based encryption, seamless updates, and Direct Boot.
You can find all of the Nougat developer resources here, including details on behavior changes and new features you can use in your apps. An overview of what's new for developers is available here, and you can explore all of the new user features in Nougat here.
Multi-window mode in Android Nougat
Starting today and rolling out over the next several weeks, the Nexus 6, Nexus 5X, Nexus 6P, Nexus 9, Nexus Player, Pixel C, and General Mobile 4G (Android One) will get an over-the-air software update to Android 7.0 Nougat. Devices enrolled in the Android Beta Program will also receive this final version.
And there are many tasty devices coming from our partners running Android Nougat, including the upcoming LG V20, which will be the first new smartphone that ships with Android Nougat, right out of the box.
With all of these new devices beginning to run Nougat, now is the time to publish your app updates to Google Play. We recommend compiling against, and ideally targeting, API 24. If you’re still testing some last minute changes, a great strategy to do this is using Google Play’s beta testing feature to get early feedback from a small group of users — including those using Android 7.0 Nougat — and then doing a staged rollout as you release the updated app to all users.
We’re moving Nougat into a new regular maintenance schedule over the coming quarters. In fact, we’ve already started work on the first Nougat maintenance release, that will bring continued refinements and polish, and we’re planning to bring that to you this fall as a developer preview. Stay tuned!
We’ll be closing open bugs logged against Developer Preview builds soon, but please keep the feedback coming! If you still see an issue that you filed in the preview tracker, just file a new issue against Android 7.0 in the AOSP issue tracker.
Thanks for being part of the preview, which we shared earlier this year with an eye towards giving everyone the opportunity to make the next release of Android stronger. Your continued feedback has been extremely beneficial in shaping this final release, not just for users, but for the entire Android ecosystem.
Posted by By Sarah Karam, Google Play Apps Business Development
With more than 1 billion active users in 190 countries around the world, Google Play continues to be an important distribution platform for you to build a global audience. To help you get your apps in front of more users, it’s important to make them more quickly and easily discoverable in Google Play. That’s why we rolled out major features, such as Search Ads, Indie Corner, store listing experiments, and more, over the past year.
To improve the overall search experience, we’re introducing new app categories and renaming a few existing ones, making them more comprehensive and relevant to what users are looking for today.
The new categories include:
In addition, the “Transportation” category will be renamed “Maps & Navigation,” and the “Media & Video” category will be renamed “Video Players & Editors.”
To select a new category for your app or game
Newly added categories will be available on Google Play within 60 days. If you choose a newly added category for an app before the category is available for users, your current app category may change. See additional details and view our full list of categories in the Help Center.
Posted by Anthony Morris, SWE Google Play and Andrew Hayden, software engineer
Google Play continues to grow rapidly, as Android users installed over 65 billion apps in the last year from the Google Play Store. We’re also seeing developers move to update their apps more frequently to push great new content, patch security vulnerabilities, and iterate quickly on user feedback.
However, many users are sensitive to the amount of data they use, especially if they are not on Wi-Fi. Google Play is investing in improvements to reduce the data that needs to be transferred for app installs and updates, while making data cost more transparent to users.
Read on to understand the updates and learn some tips for ways to optimize the size of your APK.
For approximately 98% of app updates from the Play Store, only changes (deltas) to APK files are downloaded and merged with the existing files, reducing the size of updates. Google Play has used delta algorithms since 2012, and we recently rolled out an additional delta algorithm, bsdiff (created by Colin Percival1), that our experimentation shows can reduce delta size by up to 50% or more compared to the previous algorithm for some APKs. Bsdiff is specifically targeted to produce more efficient deltas of native libraries by taking advantage of the specific ways in which compiled native code changes between versions. To be most effective, native libraries should be stored uncompressed (compression interferes with delta algorithms).
An example from Chrome:
Apps that don’t have uncompressed native libraries can see a 5% decrease in size on average, compared to the previous delta algorithm.
APK Expansion Files allow you to include additional large files up to 2GB in size (e.g. high resolution graphics or media files) with your app, which is especially popular with games. We have recently expanded our delta and compression algorithms to apply to these APK Expansion Files in addition to APKs, reducing the download size of initial installs by 12%, and updates by 65% on average. APK Expansion file patches use the xdelta algorithm.
Alongside the improvements to reduce download size, we also made information displayed about data used and download sizes in the Play Store clearer. You can now see actual download sizes, not the APK file size, in the Play Store. If you already have an app, you will only see the update size. These changes are rolling out now.
Colin Percival, Naive differences of executable code, http://www.daemonology.net/bsdiff/, 2003. ↩
1. Optimize for the right size measurements: Users care about download size (i.e. how many bytes are transferred when installing/updating an app), and they care about disk size (i.e. how much space the app takes up on disk). It’s important to note that neither of these are the same as the original APK file size nor necessarily correlated.
Chrome found that initial download size remained the same by not compressing the native library in their APK, while the APK size increased, because Google Play already performs compression for downloads. They also found that the update size decreased, as deltas are more effective with uncompressed files, and disk size decreased as you no longer need an compressed copy of the native library. However, please note, native libraries should only be uncompressed when the minimum SDK version for an APK is 23 (Marshmallow) or later.
2. Reduce your APK size: Remove unnecessary data from the APK like unused resources and code.
3. Optimize parts of your APK to make them smaller: Using more efficient file formats, for example by using WebP instead of JPEG, or by using Proguard to remove unused code.
Posted by Tamzin Taylor - Strategic Partner Lead, Google Play
Today we’re releasing The News Publisher Playbook, where you will learn best practices for developing a successful news mobile strategy on Android. This is a new companion guide to our business playbook for developers, The Secrets to App Success on Google Play, focused on the news apps segment.
The guide includes tips and useful resources to help you optimize your news content on mobile, identifying the best distribution channels to reach the right audience, build your brand and maximize your revenue.
You will find tips on mobile website optimization, how to create a Google Play Newsstand edition, and how to improve your native app. You will also get an overview of ways to acquire and engage your readers as well as how to monetize and grow your revenue.
Once you’ve checked out the guide, we’d love to hear your feedback, so we can continue to improve our developer resources. Please let us know what you think.
Android Developer Story: Nabd improves reader engagement with Material Design
Get the News Publisher Playbook to help you find success on Google Play.
Posted by Alistair Pott, Product Manager, Google Play
Available in more than 190 countries, Google Play is a global platform for developers to build high quality apps and successful businesses. But every market has its own unique challenges and opportunities. Purchasing behavior, in particular, varies significantly between markets. So to provide developers with more flexibility, we've worked to adapt Google Play pricing options to better suit local consumers and make content more accessible.
Following a successful pilot in India earlier this year, today, developers have the option to reduce the price of their premium titles and in-app products in 17 more countries to these new minimum thresholds:
Countries affected:
You can lower the price of your apps and games right away by visiting the Google Play Developer Console and clicking on “Pricing & Distribution” or “In-app Products” for your apps.
We hope this change allows you to reach more people around the world so that you can continue to grow your business on Google Play.
Posted by Kobi Glick, Google Play team
Smartphones are powerful devices that can support diverse tasks from graphically intensive games to helping people get work done from anywhere. We understand that developers are challenged with delivering a delightful user experience that maximizes the hardware of the device, while also ensuring that their users can download, install, and open the app as quickly as possible. It’s a tough balance to strike, especially when you’re targeting diverse global audiences.
To support the growing number of developers who are building richer apps and games on Google Play, we are increasing the APK file size limit to 100MB from 50MB. This means developers can publish APKs up to 100MB in size, and users will see a warning only when the app exceeds the 100MB quota and makes use of Expansion Files. The default update setting for users will continue to be to auto-updating apps over Wi-Fi only, enabling users to access higher quality apps and games while conserving their data usage.
Even though you can make your app bigger, it doesn’t always mean you should. Remember to keep in mind the following factors:
We hope that, in certain circumstances, this file size increase is useful and enables you to build higher quality apps and games that users love.
A well thought-out Google Play store listing can significantly improve the discoverability of your app or game and drive installations. With the recent launch of Store Listing Experiments on the Google Play Developer Console, you can now conduct A/B tests on the text and graphics of your store listing page and use the data to make more informed decisions.
Dots is a US-founded game developer which released the popular game, Dots, and its addictive sequel, TwoDots. Dots used its store listings to showcase its brands and improve conversions by letting players know what to expect.
Christian Calderon, Head of Marketing for Dots, shared his top tips with us on store listings and visibility on Google Play.
As part of the 100 Days of Google Dev video series, Kobi Glick from the Google Play team explains how to test different graphics and text on your app or game’s Play Store listing to increase conversions using the new Store Listing Experiments feature in the Developer Console.