28 Nov 2022

feedAndroid Developers Blog

Google Play Coffee break with Creatrip | Setting up your business for global reach

Posted by Aditya Swamy, Director, Google Play PartnershipsI sat down for a "virtual coffee" with Haemin Yim, founder and CEO of Creatrip, from Korea to discuss starting on the web, setting up the company for global reach, and tips for startups looking to grow.

In Haemin's words "Creatrip is an app that provides a gateway to authentic Korean trends and cultures." Last year, they took part in the ChangGoo program, an initiative that supports Korean app startups in partnership with the South Korean government. The Creatrip team applied the learnings of the program to continue to grow and now have users from over 100 countries.Here are my key takeaways from our conversation:
illustration of three people in a rowboat at sea during a storm. The person at the helm is looking at weather related data

Expanding the app's value proposition to address challenges

Despite having a great idea for an app, Haemin shared with me that it hasn't always been smooth sailing. After gaining significant brand awareness and with increasing travel bookings across the app, the pandemic sent the travel industry into disarray. As with many businesses, this had significant implications for Creatrip. However, Haemin and the team used their strong understanding of the people using their app to quickly expand their offering.

With the knowledge that people often wanted to visit South Korea because of their interest in K-trends and culture; Haemin adapted the business to provide K-products to those who were unfortunately unable to travel during that period. This led Haemin to grow the business beyond just a travel app and into a global e-commerce platform.

Creating new content to fuel app growth

Creatrip started as an app that provided travel content. It quickly expanded to provide people with in-app booking features, local currency exchange rates that weren't previously digitized, and even a global e-commerce platform providing access to popular 'K-items'. However, content is the key element that draws users into the app.

My top advice for businesses looking to continue to evolve their content is to expand their content creator pipeline. For example, by encouraging South Korean locals to contribute, Creatrip could gain a richer and more diverse range of content, showcasing Korea through the eyes of many different people. Haemin and the team are already in the process of building a new feature that allows people to create their own content on the app.

Think about short form video apps. By allowing people to become their own content creators, it enables them to have a much wider repository of content and encourages users to spend more time on the app. Now more people want to be creators and make their own content as seen on YouTube. This is fueling growth in watchtime, and adding more users.

illustration of two people receiving global information on shopping, popular items, trends, data, and people via their laptop and phone screen

Going global from the start

Something I found particularly interesting from my chat with Haemin, was how she prepared the business for global reach from the start. Haemin believes that despite requiring a bit more time and effort, preparing for global reach from the beginning can actually allow for exponential growth, as you start to target the right markets and reach a global fan base. It is wonderful to see how Haemin brings her passion for all things Korean, to people all around the world. The team's first step towards going global was by listening to and understanding the needs of the people already using Creatrip.

The team at Creatrip have definitely brought a lot of unique ideas to the app. With 90% of their users having started on the website, the team had an ingenious idea to bring people over to mobile. They listened to their global users and saw that people were keen to find out the currency exchange rates being provided at local stores in Seoul. They created a mobile-only feature that shows local currency rates from local stores. This required the team to actually go to the stores twice a day, however it led to a large increase in people using the mobile app - all by providing information that was previously unavailable to people from outside of Seoul.

Planning for the future

It's amazing to see how much Creatrip is flourishing; the app has grown from 100k monthly users up to 1.5 million. There are many factors that helped Creatrip grow over the past few years, but some notable takeaways from my chat with Haemin include:

  1. Taking the time to understand the people using their apps and their needs
  2. Launching app only features to drive people from web to the app
  3. Using content as a means to get new users and increase engagement

For Haemin, there are still a lot of opportunities ahead. She believes that the 'K-phenomenon' will keep growing for the foreseeable future and this will aid more travel across South Korea. The team at Creatrip is focused on continuing to expand the cross-border shopping experience so people can buy South Korean trending products, no matter what country they live in. I can't wait to see how Creatrip continues to bring the magic of Korea to the world.

As a final thought I couldn't let Haemin go without asking her favorite K trends. She mentioned that fusion fine dining was a top trend in Korea, NewJeans were a trending K-pop band, and South Korean blankets were a top K-product.

Do you have any questions for Creatrip? What are your own tips for other app or game businesses? Let us know on Twitter.


Google Play logo

28 Nov 2022 7:00pm GMT

25 Nov 2022

feedTalkAndroid

Save 20% on every GameSir accessory including its new G7 Xbox Controller with extra buttons and customizable faceplates

Black Friday weekend is here and if you are on the hunt for some new gaming controllers at a reasonable price, GameSir has a range of devices for upgrading your smartphone and Xbox gaming experience - all of which are discounted by 20%. Devices such as the new G7 wired Xbox Controller, the X3 GamePad […]


Come comment on this article: Save 20% on every GameSir accessory including its new G7 Xbox Controller with extra buttons and customizable faceplates

Visit TalkAndroid

25 Nov 2022 8:14pm GMT

24 Nov 2022

feedTalkAndroid

[Deal] Save up to 50% on these AirRobo Robotic Vacuums through November 27

Getting yourself some free time this holiday season could be as simple as investing in a robotic vacuum that will clean the floors whilst you relax watching Netflix or are out shopping. Thanks to AirRobo's Black Friday deals, you can get into the home automation game without breaking the bank with the choice of the […]


Come comment on this article: [Deal] Save up to 50% on these AirRobo Robotic Vacuums through November 27

Visit TalkAndroid

24 Nov 2022 7:42pm GMT

Monoprice SB-300 soundbar review: low cost, big sound

Ready to upgrade from your TV speakers or step into the world of home audio? You don't have to break the bank to get there, especially these days. We're taking a look at the SB-300 soundbar from Monoprice, which is priced below $200 and offers a 2.0 speaker system with Dolby Atmos, eARC, Bluetooth connectivity, […]


Come comment on this article: Monoprice SB-300 soundbar review: low cost, big sound

Visit TalkAndroid

24 Nov 2022 6:22pm GMT

23 Nov 2022

feedTalkAndroid

The OnePlus 10 Pro is down to just $549/£599 this Black Friday

Already offering excellent value at its RRP, one of 2022's best smartphones is currently discounted down to just $549/£599 this Black Friday. We are, of course, referring to the OnePlus 10 Pro which launched at the beginning of the year. Also discounted are the OnePlus 10T, the Nord 2T, and a range of Buds which […]


Come comment on this article: The OnePlus 10 Pro is down to just $549/£599 this Black Friday

Visit TalkAndroid

23 Nov 2022 5:01pm GMT

[Deal] Grab some big savings on the Pixel 7 Pro and Galaxy Z Flip 4 with AT&T this Black Friday week

Here with a bunch of deals for Black Friday is AT&T with the carrier offering big savings on Pixel, Samsung, and Motorola handsets, Galaxy Tab, and iPad tablets, as well as smartwatches such as the new Pixel Watch. The deals consist of discounts and Buy-One-Get-One-Free offers and are already live on the AT&T website. We've […]


Come comment on this article: [Deal] Grab some big savings on the Pixel 7 Pro and Galaxy Z Flip 4 with AT&T this Black Friday week

Visit TalkAndroid

23 Nov 2022 3:59pm GMT

22 Nov 2022

feedTalkAndroid

[Deal] Save a massive $30 on a Plex Pass Lifetime Subscription through November 28th

When it comes to streaming your personal content on the big screen, Plex is one of the most user-friendly options around with apps available on almost any streaming device you can think of. Capable of streaming live TV and DVR, movies, TV shows, music, podcasts, and even showing your photo albums, Plex offers even more […]


Come comment on this article: [Deal] Save a massive $30 on a Plex Pass Lifetime Subscription through November 28th

Visit TalkAndroid

22 Nov 2022 6:21pm GMT

feedAndroid Developers Blog

Per-App Language Preferences - Part 1

Posted by Neelansh Sahai Android Developer Relations Engineer (on Twitter and LinkedIn)What if you have a set of users who are quite fluent in English, Hindi, and Spanish, and they have a news app on their phones and prefer to read the news in Hindi? For their texting app, they prefer Spanish as they have some friends and family who they text with in Spanish. But for ease of access, they still prefer their device to be in English. Now there are many such use-cases where the users might want their app languages to be different from their system language. Interesting!

Starting with Android 13, we have included one of the most-requested features from users, Per-App Language Preferences. It lets users switch app languages from System settings, providing users with better control over their language choices for different apps, irrespective of the system language.
A cellphone screen displaying App language preferences in system settings for the YouTube app

Build for your multilingual users

This blog focuses on how to integrate the Per-App Language Preferences API in your app to provide your users the flexibility to choose different languages for different apps.

1. Users can change the language settings from system settings by selecting:

Settings → System → Languages & Input → App Languages → [Select the desired App] → [Select the desired Language]

NOTE: Only those apps that have opted in for the feature by specifying the locale_config.xml file (more on this below), will appear in system settings.

A cellphone screen demonstrating finding the language settings from system settings by selecting Settings → System → Languages & Input → App Languages → [Select the desired App] → [Select the desired Language]
2. If your app already has an in-app language picker, you can integrate the Per-App Language Preferences API to leverage the full platform support. For pre-Android 13 users, the system settings won't be visible, but developers can still provide an in-app language picker.


A cellphone screen demonstrating integrating the Per-App Language prefences API for an app which already has an in-app language picker

How to integrate this feature in your app?

There are 5 steps that need to be followed while working on the Per-App Language Preferences feature, listed here →



1. Create locale_config.xml file


Create a new file in values/xml/ directory and name it as locale_config.xml. This file should contain a list of all the locales that are supported by the app. The list element should be a string containing a locale tag.

NOTE: The locale tags must follow the BCP47 syntax, which is usually {language subtag}-{script subtag}-{country subtag}. Anything other than that will be filtered out by the system and won't be visible in the system settings.


locale_config.xml

<?xml version="1.0" encoding="utf-8"?>
<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
...

<!-- English -->
<locale android:name="en"/>



<!-- Japanese (Japan) -->
<locale android:name="ja-JP"/>



<!-- Chinese (Macao) in Simplified Script -->
<locale android:name="zh-Hans-MO"/>



<!-- Chinese (Taiwan) in Traditional Script -->
<locale android:name="zh-Hant-TW"/>
...
</locale-config>





2. Add the locale_config in the AndroidManifest.xml

Specify this locale_config.xml file in the app's AndroidManifest.xml

AndroidManifest.xml

<manifest>
...
<application
...
android:localeConfig="@xml/locale_config">
</application>
</manifest>


After steps 1 & 2, your users will be able to discover and set their language preference for your app from system settings on devices running Android 13 or higher. In case your users are on devices running on versions lower than Android 13, you can provide an in-app language picker. Optionally, you can also include the same language picker in your app for devices running Android 13 or higher. When your app includes an in-app language picker, it's important for the user's preferences to be in sync between the system and the app. This is where the AndroidX APIs come into the picture. Read on to learn how to create an in-app language picker.





3. Add the libraries

Use the latest version of AppCompat Library

build.gradle (app)

def latestAppCompatVersion = "1.6.0-rc01"

dependencies {
...
implementation "androidx.appcompat:appcompat:$latestAppCompatVersion"
implementation "androidx.appcompat:appcompat-resources:$latestAppCompatVersion"
...
}




4. Use AndroidX APIs

Use the APIs in your code to set and get the app locales.

MainActivity.kt

val appLocale: LocaleListCompat = LocaleListCompat.forLanguageTags("xx-YY")

// Call this on the main thread as it may require Activity.restart()
AppCompatDelegate.setApplicationLocales(appLocale)


// Call this to get the selected locale and display it in your App
val selectedLocale = AppCompatDelegate.getApplicationLocales()[0]

NOTE: These APIs are also backward compatible, so even if the app is being used on Android 12 or lower, the APIs would still behave the same, and no additional checks for OS versions are required in your code.


5. Delegate storage to AndroidX

Let AndroidX handle the locale storage so that the user's preference persists.

AndroidManifest.xml

<application
...
<service
android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
android:enabled="false"
android:exported="false">
<meta-data
android:name="autoStoreLocales"
android:value="true" />
</service>
...
</application>


Steps 3, 4, & 5 above demonstrate the minimum components needed to create an in-app language picker.

And with this, your app can now support locale switching.



Additional things to take care of while migrating to the API

Earlier, developers had to handle the user's preferences on their own, either by using SharedPreferences, storing the data on a server, or other app logic. With the new APIs, there is no need to handle this separately. So when you are using these APIs, AndroidX is already taking care of the storage part, but what happens when the app is opened for the first time after a user updates their device to Android 13 or higher?

In this case, the system won't be aware of the user's preferences for the app language and thus it will map the app to the default system language. To avoid this, developers need to add some one-time migration logic so that their users don't have to set the language again when they update the app.

// Specify the constants to be used in the below code snippets

companion object {

// Constants for SharedPreference File
const val PREFERENCE_NAME = "shared_preference"
const val PREFERENCE_MODE = Context.MODE_PRIVATE

// Constants for SharedPreference Keys
const val FIRST_TIME_MIGRATION = "first_time_migration"
const val SELECTED_LANGUAGE = "selected_language"

// Constants for SharedPreference Values
const val STATUS_DONE = "status_done"
}




// Utility method to put a string in a SharedPreference
private fun putString(key: String, value: String) {
val editor = getSharedPreferences(PREFERENCE_NAME, PREFERENCE_MODE).edit()
editor.putString(key, value)
editor.apply()
}

// Utility method to get a string from a SharedPreference
private fun getString(key: String): String? {
val preference = getSharedPreferences(PREFERENCE_NAME, PREFERENCE_MODE)
return preference.getString(key, null)
}


// Check if the migration has already been done or not
if (getString(FIRST_TIME_MIGRATION) != STATUS_DONE) {

// Fetch the selected language from wherever it was stored. In this case it's SharedPref

// In this case let's assume that it was stored in a key named SELECTED_LANGUAGE
getString(SELECTED_LANGUAGE)?.let { it

// Set this locale using the AndroidX library that will handle the storage itself
val localeList = LocaleListCompat.forLanguageTags(it)
AppCompatDelegate.setApplicationLocales(localeList)

// Set the migration flag to ensure that this is executed only once
putString(FIRST_TIME_MIGRATION, STATUS_DONE)
}
}

What flexibility does the feature provide to the users and developers?

Here are a few things that might prove to be beneficial for you users.

  1. All devices running Android 13 or higher will have a common place for users to discover and change the language of their apps.
  2. Although the system settings are limited to the devices running Android 13 or higher, the AndroidX APIs are backwards compatible. Thus, there is no requirement to add OS Version checks in your code while building for your multilingual users.
  3. Developers do not need to handle configuration changes separately or worry about storing the user's selected language every time. The API handles configuration changes and stores the language preferences for you.
  4. Works with other Android features like Backup and restore. If a user switches to a new device and restores the previously backed up data, your app will retain the user's last preferred language, thus providing your users with a better and more seamless experience.

Recap

With that, most parts of the feature are covered. So let's have a quick recap on what we discussed in today's read.

  1. A quick read on what Per-App Language Preferences offer to multilingual users and app developers.
  2. What end users will see on their devices.
  3. How to migrate your app to the Per-App Language Preferences APIs.
  4. A few things that need to be taken care of while migrating to the APIs to ensure a better user experience.
  5. Lastly, the benefits that end users and developers can leverage from this feature.

References

  1. Per-App Language Preferences
  2. Sample App ( Compose )
  3. Sample App ( Views )
  4. Per-App Language Preferences (YouTube Video)

22 Nov 2022 6:00pm GMT

21 Nov 2022

feedAndroid Developers Blog

App Bundles for Google TV and Android TV

Posted by Josh Wentz, Product Management, Google TV

TLDR: Google TV and Android TV will be requiring Android App Bundles that are archivable starting in May 2023 to save storage for users.

Over the past few decades, TV has transformed from linear channel surfing to on-demand content with multi-app experiences. Today, over 10,000 apps are available on Android TV OS. While software has grown exponentially, TV hardware has remained limited in capacity compared to its phone counterparts. In 2022, smartphones often have a minimum storage size of 64GB, but smart TVs have an average of just 8GB. Less storage results in users having to uninstall apps, hindering their overall TV experience. To help with this problem and others, Android introduced App Bundles in Nov 2020.


What are Android App Bundles?

"Android App Bundles" (AABs) are the standard publishing format on Google Play (phones, tablets, TVs, etc) that have replaced "Android Package Kits" (APKs). App Bundles are smaller, faster, fresher, and better than its precursor. Key benefits include:

  1. Smaller Download/Storage Size - App Bundles create an average of 20% total size savings compared to its equivalent APK counterpart by optimizing for each device.
  2. Less Likely to Uninstall - Since App Bundles enables users with the option to archive (which reclaims ~60% of app storage), users can keep these and more apps on their TV despite limited storage. A quick archive/unarchive user interface is built-in to the TV. Developers can also maintain state for a frictionless later return.
  3. Applicable to All Android Surfaces - App Bundles are helpful for all Android surfaces using the Google Play store including TV, phone, tablet, watch, auto, & more.
  4. Streamlined Delivery & Security - For easier delivery, a single artifact with all of your app's code & resources allows Play store to dynamically serve an optimized app for each device configuration. For greater security, developers can also reset the upload key if it's lost or compromised.


What is new for TV?

With TV storage confined and users having an increasing appetite for more apps, Google TV and Android TV will be requiring App Bundles starting in May 2023. While this provides about 6-months to transition, we estimate that in most cases it will take one engineer about 3-days to migrate an existing TV app from Android Package Kit (APK) to Android App Bundle (AAB). While developers can configure archiving for their mobile apps, TV apps are required to be archivable so that all users and developers can benefit on storage-constrained TVs.

For TV apps not transitioned in time, Google may hide such apps from the TV surface. If you're working on a brand new TV app, be sure to use Android App Bundles from the start!


How can TV apps transition?

Visit our Developer Guide to learn more about how to migrate to an Android App Bundle (AAB).

All told, App Bundles bring a delightful experience to both you as developers and your users, especially in the living room. Thank you for your partnership in creating immersive content and entertainment experiences for the future of TV.

21 Nov 2022 10:00pm GMT

Introducing Camera Viewfinder

Posted by Francesco Romano, Developer Relations Engineer, Androidhand holding a phoneOver the years, Android devices have evolved to include a variety of sizes, shapes, and displays, among other features. Since the beginning, however, taking pictures with your phone has been one of the most important use cases. Today, camera capabilities are still one of the top reasons consumers purchase a phone.

As a developer, you want to leverage camera capabilities in your app, so you decide to adopt the Android Camera Framework. The first use case you want to implement is the Preview use case, which shows the output of the camera sensor on the screen.

So you go ahead and create a CaptureSession using a surface as big as the screen size. As long as the screen has the same aspect ratio as the camera sensor output and the device stays in its natural portrait orientation, everything should be fine.

But what happens when you resize the window, unfold your device, or change the display or orientation? Well, in most cases, the preview may appear stretched, upside down, or incorrectly rotated. And if you are in a multi-window environment, your app may even crash.

Why does this happen? Because of the implicit assumptions you made while creating the CaptureSession.

Historically, your app could live in the same window for its whole life cycle, but with the availability of new form factors such as foldable devices, and new display modes such as multi-window and multi-display, you can't assume this will be true anymore.

In particular, let's see some of the most important considerations when developing an app targeting various form factors:

Let's examine some common pitfalls to avoid when developing an app targeting various form factors:

While CameraX already handles most of the cases above, implementing a preview that works in different scenarios with Camera2 APIs can be complex, as we describe in the Support resizable surfaces in your camera app Codelab.

Wouldn't it be great to have a simple component that takes care of those details and lets you focus on your specific app logic?

Say no more…

Introducing CameraViewfinder

CameraViewfinder is a new artifact from the Jetpack library that allows you to quickly implement camera previews with minimal effort. It internally uses either a TextureView or SurfaceView to display the camera feed, and applies the required transformations on them to correctly display the viewfinder. This involves correcting their aspect ratio, scale, and rotation. It is fully compatible with your existing Camera2 codebase and continuously tested on several devices.

Let's see how to use it.

First, add the dependency in your app-level build.gradle file:

implementation "androidx.camera:camera-viewfinder:1.3.0-alpha01"

Sync your project. Now you should be able to directly use the CameraViewfinder as any other View. For example, you can add it to your layout file:

<androidx.camera.viewfinder.CameraViewfinder
android:id="@+id/view_finder"
app:scaleType="fitCenter"
app:implementationMode="performance"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

As you can see, CameraViewfinder has the same controls available on PreviewView, so you can choose different Implementation modes and scaling types.

Now that the component is part of the layout, you can still create a CameraCaptureSession, but instead of providing a TextureView or SurfaceView as target surfaces, use the result of requestSurfaceAsync().

fun startCamera(){
val previewResolution = Size(width, height)
val viewfinderSurfaceRequest =
ViewfinderSurfaceRequest(previewResolution, characteristics)
val surfaceListenableFuture =
cameraViewfinder.requestSurfaceAsync(viewfinderSurfaceRequest)

Futures.addCallback(surfaceListenableFuture, object : FutureCallback<Surface> {
override fun onSuccess(surface: Surface) {
//create a CaptureSession using this surface as usual
}
override fun onFailure(t: Throwable) { /* something went wrong */}
}, ContextCompat.getMainExecutor(context))
}


Bonus: optimized layouts for foldable devices

CameraViewFinder is ready-to-use across resizable surfaces, configuration changes, rotations, and multi-window modes, and it has been tested on many foldable devices.

But if you want to implement optimized layouts for foldable and dual screen devices, you can combine CameraViewFinder with the Jetpack WindowManager library to provide unique experiences for your users.

For example, you can choose to avoid showing full screen preview if there is a hinge in the middle of the screen, or if the device is in "book" or "tabletop" mode. In those scenarios, you can have the viewfinder in one portion of the screen and the controls on the other side, or you can use part of the screen to show the last pictures taken. Imagination is the limit!

The sample app is already optimized for foldable devices and you can find the code to handle posture changes here. Have a look!

21 Nov 2022 6:00pm GMT

18 Nov 2022

feedTalkAndroid

Amazon’s Luna could be headed down the same path as Google Stadia

We all know the sad story of the Stadia cloud gaming platform which is being laid to rest on January 18th of next year but news has broken that Amazon may be heading down the same path with its Luna service which has seen mass job cuts. How many? Around 10,000 positions have been culled […]


Come comment on this article: Amazon's Luna could be headed down the same path as Google Stadia

Visit TalkAndroid

18 Nov 2022 7:53pm GMT

These are the smartphone brands working on Snapdragon 8 Gen 2-powered flagships

As is usually the case once a new chipset has been announced, a number of smartphone brands have indicated that they are already at work developing new flagship smartphones which will be powered by Qualcomm's Snapdragon 8 Gen 2 processor, with OnePlus claiming that it will be the first to launch with its OnePlus 11 […]


Come comment on this article: These are the smartphone brands working on Snapdragon 8 Gen 2-powered flagships

Visit TalkAndroid

18 Nov 2022 7:29pm GMT

Check out these Black Friday deals from Cricket Wireless and its brand-new tablet add-on

Cricket Wireless is here with a bunch of handy Black Friday deals and a new tablet plan that lets you connect up to four tablets to selected unlimited plans for an additional $15 monthly. The carrier's Black Friday deals include free phones when activating a $60 unlimited plan, with options for both Android and iOS […]


Come comment on this article: Check out these Black Friday deals from Cricket Wireless and its brand-new tablet add-on

Visit TalkAndroid

18 Nov 2022 7:04pm GMT

Qualcomm’s Snapdragon 8 Gen 2 processor is official with a new core layout and support for ray tracing graphics

Qualcomm's latest flagship processor, the Snapdragon 8 Gen 2, is official and unsurprisingly brings a host of improvements across the board. Featuring a new Kryo core layout that achieves a 35% boost in performance and up to 40% increased power efficiency over its predecessor, the Snapdragon 8 Gen 2 promises to ramp up the smartphone […]


Come comment on this article: Qualcomm's Snapdragon 8 Gen 2 processor is official with a new core layout and support for ray tracing graphics

Visit TalkAndroid

18 Nov 2022 5:56pm GMT

17 Nov 2022

feedAndroid Developers Blog

#WeArePlay | Discover what inspired 4 game creators around the world

Posted by Leticia Lago, Developer Marketing

From exploring the great outdoors to getting your first computer - a seemingly random moment in your life might one day be the very thing which inspires you to go out there and follow your dreams. That's what happened to four game studio founders featured in our latest release of #WeArePlay stories. Find out what inspired them to create games which are entertaining millions around the globe.
Born and raised in Salvador, Brazil, Filipe was so inspired by the city's cultural heritage that he studied History before becoming a teacher. One day, he realised games could be a powerful medium to share Brazilian history and culture with the world. So he founded Aoca Game Lab, and their first title, ÁRIDA: Backland's Awakening, is a survival game based in the historic town of Canudos. Aoca Game Lab took part in the Indie Games Accelerator and have also been selected to receive the Indie Games Fund. With the help from these Google Play programs, they will take the game and studio to the next level.
#WeArePlay Marko Peaskel Nis, Serbia
Next, Marko from Serbia. As a chemistry student, he was never really interested in tech - then he received his first computer and everything changed. He quit his degree to focus on his new passion and now owns his successful studio Peaksel with over 480 million downloads. One of their most popular titles is 100 Doors Games: School Escape, with over 100 levels to challenge the minds of even the most experienced players.
#WeArePlay Liene Roadgames Riga Latvia
And now onto Liene from Latvia. She often braves the big outdoors and discovers what nature has to offer - so much so that she organizes team-building, orienteering based games for the team at work. Seeing their joy as they explore the world around them inspired her to create Roadgames. It guides players through adventurous scavenger hunts, discovering new terrain.
#WeArePlay Xin Savy Soda Melbourne, Australia
And lastly, Xin from Australia. After years working in corporate tech, he gave it all up to pursue his dream of making mobile games inspired by the 90's video games he played as a child. Now he owns his studio, Pixel Starships, and despite all his success with millions of downloads, his five-year-old child gives him plenty of feedback.

Check out all the stories now at g.co/play/weareplay and stay tuned for even more coming soon.


How useful did you find this blog post?

#WeArePlay Xin Savy Soda Melbourne, Australia Google Play g.co/play/weareplay

17 Nov 2022 6:00pm GMT

16 Nov 2022

feedTalkAndroid

[Black Friday] Save a massive 46% on EcoFlow’s River Mini Portable Power Station

When the average power bank doesn't cut it on those camping trips, EcoFlow's River Mini Portable Power Station will do the job and more with its handy 210Wh of power, AC outlets, and USB ports. Usually priced at $349, you can snag a 46% saving on the River Mini Portable Power Station which is reduced […]


Come comment on this article: [Black Friday] Save a massive 46% on EcoFlow's River Mini Portable Power Station

Visit TalkAndroid

16 Nov 2022 9:53pm GMT

Vivo’s new flagship X90 series launches on November 22nd with both MediaTek and Snapdragon chipsets

Vivo has confirmed that it will take the wraps off of its new X90 series of flagship smartphones on November 22nd, and now we have images and specifications for two of the three models thanks to a serial leaker. As it turns out, the X90 Pro and Pro+ will be powered by the latest chipsets […]


Come comment on this article: Vivo's new flagship X90 series launches on November 22nd with both MediaTek and Snapdragon chipsets

Visit TalkAndroid

16 Nov 2022 9:51pm GMT

[Deal] FlexiSpot is slashing its prices on standing desks by up to 27% on Black Friday Weekend

It's great working from the home office but if you are finding that your tush is getting numb whilst sitting down in the very comfortable gaming chair you bought during the lockdown, it's time to switch things up and get yourself a versatile standing desk. As it would happen, Black Friday is looming on the […]


Come comment on this article: [Deal] FlexiSpot is slashing its prices on standing desks by up to 27% on Black Friday Weekend

Visit TalkAndroid

16 Nov 2022 9:26pm GMT

feedAndroid Developers Blog

Helping Families Find High-Quality Apps for Kids

Posted by Mindy Brooks, General Manager, Kids and FamilyApps play an increasingly important role in all of our lives and we're proud that Google Play helps families find educational and delightful experiences for kids. Of course, this wouldn't be possible without the continued ingenuity and commitment of our developer partners. From kid-friendly entertainment apps to educational games, you've helped make our platform a fantastic destination for high-quality content for families. Today, we're sharing a few updates on how we're building on this work to create a safe and positive experience on Play.

Expanding Play's Teacher Approved Program

In 2020, we introduced the Teacher Approved program to highlight high-quality apps that are reviewed and rated by teachers and child development specialists. Through this program, all apps in the Play Store's Kids tab are Teacher Approved, and families can now more easily discover quality apps and games.

As part of our continued investments in Teacher Approved, we're excited to expand the program so that all apps that meet Play's Families Policy will be eligible to be reviewed and shown on the Kids tab. We're also streamlining the process for developers. Moving forward, the requirements for the Designed for Families program, which previously were a separate prerequisite from Teacher Approved eligibility, will be merged into the broader Families Policy. By combining our requirements into one policy and expanding eligibility for the Teacher Approved program, we look forward to providing families with even more Teacher Approved apps and to help you, our developer partners, reach more users.

If you're new to the Teacher Approved program, you might wonder what we're looking for. Beyond strict privacy and security requirements, great content for kids can take many forms, whether that's sparking curiosity, helping kids learn, or just plain fun. Our team of teachers and experts across the world review and rate apps on factors like age-appropriateness, quality of experience, enrichment, and delight. For added transparency, we include information in the app listing about why the app was rated highly to help parents determine if the app is right for their child. Please visit Google Play Academy for more information about how to design high-quality apps for kids.

Building on our Ads Policies to Protect Children

When you're creating a great app experience for kids and families, it's also important that any ads served to children are appropriate and compliant with our Families Policy. This includes using Families Self-Certified Ads SDKs to serve ads to children. We recently made changes to the Families Self-Certified Ads SDK Program to help better protect users and make life easier for Families developers. SDKs that participate in the program are now required to identify which versions of their SDKs are appropriate for use in Families apps and you can view the list of self-certified versions in our Help Center.

Next year, all Families developers will be required to use only those versions of a Families Self-Certified Ads SDK that the SDK has identified as appropriate for use in Families apps. We encourage you to begin preparing now before the policy takes full effect.


Building Transparency with New Data Safety Section Options

In the coming weeks, all apps which include children in their target audience will be able to showcase their compliance with Play's Families Policy requirements with a special badge on the Data safety section. This is another great way that you can better help families find apps that meet their needs, while supporting Play's commitment to provide users more transparency and control over their data. To display the badge, please visit the "Security practices" section of your Data safety form.

Screenshot of a cellphone screen showing the Data Safety form in Google Play with the 'Security practices'section highlighted

As always, we're grateful for your partnership in helping to make Play a fantastic platform for delightful, high-quality content for kids and families. For more developer resources:

16 Nov 2022 6:30pm GMT

15 Nov 2022

feedAndroid Developers Blog

Preparing for the Android Privacy Sandbox Beta

Posted by Ryan Fitzgibbon, Product ManagerIn February we announced the Privacy Sandbox on Android, with the goal of bringing new, more private advertising solutions to mobile.

Over the course of 2022, we've published design proposals and released a number of Developer Previews. We appreciate all of the feedback we've received which has helped us refine and improve these proposals.

Beginning early next year we plan to rollout the initial Privacy Sandbox Beta to Android 13 mobile devices, so that developers can take the next steps in testing these new solutions. We'll start with a small percentage of devices and increase over time. Note that Developer Previews will continue to be released and this is where we'll first deliver the latest features for early feedback before being released on production devices.

Today, we're sharing more details about the Privacy Sandbox Beta so that developers can get prepared.


Enroll to access the Privacy-Preserving APIs

Starting with the Beta release, as well as future Developer Previews, developers will need to complete an enrollment process in order to utilize the ads-related APIs (including Topics, FLEDGE, and Attribution Reporting). The enrollment process will verify developer identity and gather developer-specific data needed by the APIs. You can learn more about how to enroll here.



How to participate

The Privacy Sandbox Beta will be available for ad tech and app developers who wish to test the ads-related APIs as part of their solutions.

To participate in the Beta program, organizations who wish to test the Beta on their own Android 13 devices can request access for a limited number of devices, plus register any apps which will utilize the Sandbox APIs.

For the SDK Runtime, we'll have a closed beta for developers to test Runtime-enabled SDK distribution to select apps. Because of the coordination required to test the SDK Runtime on production devices, we expect this beta to involve a limited number of partners who can dedicate resources to support this testing. If you're interested in participating, please register your interest.

To utilize the Beta release, developers will need to compile their solutions with an API level 33 SDK extension update that is coming soon.


Advice For Advertisers & Publishers

We've heard from many advertisers and publishers about the role they can play in testing these new technologies. For companies that rely on third party solutions for ad serving or ad measurement, we recommend working with your providers to understand their testing roadmaps and how you can participate in early testing of Privacy Sandbox.

We want to thank everyone who has engaged on the Android Privacy Sandbox, and look forward to continued feedback as we enter this next phase of testing."

15 Nov 2022 6:00pm GMT

14 Nov 2022

feedAndroid Developers Blog

Platform Track at Android Developer Summit '22

Posted by Dan Galpin (@dagalpin), Developer Relations EngineerToday marks the final track for Android Developer Summit: the Platform Track, focused on developer features and guidance around Android 13. With your help, we're making the platform more private and secure, more personal, and more capable than ever. Tune into the livestream and watch the full playlist on YouTube! And if you've got any burning questions, be sure to Tweet them using #AskAndroid; at the end of our livestream, we'll be assembling the Android experts to help answer them live; tune in at 12:30PM to see if we answer your question live! Here are the top 3 takeaways from the Platform track, and be sure to watch the full Platform session playlist on YouTube:

#1 - Security and Privacy

The first step to take advantage of Android 13's new security and privacy features is to Migrate Your Apps to Android 13, making sure that your app not only works great but also takes advantage of some of the new stuff Android 13 has to offer. We also cover what's Next Up on the Privacy Sandbox, Everything about Storage on Android, Demystifying Attestation, and how to Foster User Trust by Adopting Privacy-respecting Permission Workflows.The Photo Picker is an example of an easy to use API that gives users a great photo and video selection experience while minimizing app permissions. The rich Photo Picker experience will be supported back to Android 11 using an SDK Extension, a technology that uses Google System Updates with Modular System Components to add functionality to an OS release.
Photo Picker Easy to integrate A great user experience for browsing and selecting photos and videos No runtime permissions Updated independently of the platform Cloud integration coming soon!

#2 - Personalization

When it comes to personalization, we teach Building for a Multilingual World, Building Modern Android App Widgets, Designing a High Quality App with the Latest Android Features, and Building Accessibility Support for Compose - all ways that help make sure that your apps support the way your users use their devices.

Themed app icons allow your app icon to harmonize with user-selected theme colors, while Widgets allow users to literally use your app as part of their customized experience.
Themed app icons App icons in supported launchers are tinted to inherit theme colors. Requires apps to have both an adaptive icon and a monochromatic app icon

#3 - Capabilities

We're extending the capabilities of the platform to support the latest media and communications standards and more, so we're walking you through Presenting a High-quality Media Experience for all Users, Improving Your Social Experience Quality with Android Camera, how to handle Capture, Playback, and Sharing 10BIT Video, supporting BLE Audio in your Voice Communications Applications, an Introduction to Ultrawide-band on Android, the latest in Android Graphics, how to start Syncing Data with Health Connect, and implementing Hardware Acceleration for ML on-device. We even shared how to Migrate to Play Billing Library 5 and what it does to make subscriptions more flexible on Google Play.

To learn more about how you can secure your app, maximize user privacy, make your app part of a more personal Android, leverage new platform capabilities, and more, check out the full playlist.

14 Nov 2022 5:30pm GMT

Leading Health and Fitness Apps Roll Out Health Connect Integrations

Posted by Sara Hamilton, Developer RelationsEarlier this year, we introduced Health Connect as a way for app developers like you to have early access to a platform that securely shares health and fitness data across Android devices, with user consent. We collaborated with Samsung to build this platform which simplifies the connectivity between your apps while providing centralized privacy controls for users. We are now making the Health Connect (Beta) app available for download in Google Play to give users a central place to manage their privacy settings with granular controls to see which apps have access to data at any given time.

Today, 10+ health, fitness and wellness apps are rolling out integrations with the platform including early adopters of Health Connect like MyFitnessPal, Oura and Peloton.
Against a light blue background, an illustration of a person and their dog looking at a large screen with a 3x3 display of health app icons: Lifesum, Fitbit, MyFitnessPal, Dexcom, Samsung Health, Oura, Peloton, Flo,and WW.
Through the first wave of integrations, we have seen Health Connect provide many key benefits to developers.


Reduced fragmentation makes it easier to give users more holistic health insights

By enabling health and fitness apps to talk to each other, each app is able to provide a user with better, more holistic health insights.

In the past, developers had to establish multiple API connections to share data between different apps and each integration was costly to build and maintain. This limited developers' data sharing capabilities and made it hard for users to unlock this data so that it could be utilized in different apps.

Now, with Health Connect, building an integration with a new app is as simple as reading in new data from Health Connect, rather than building a whole new integration.

For example, Android users will now be able to sync and get credit for their Peloton workouts in apps like Oura, MyFitnessPal, WeightWatchers and Lifesum. Now, through a single integration with Health Connect, Peloton Members will have the option to share their workout stats across the ecosystem of apps they use to support their overall wellness.

Phone screen showing App permissions for all apps that can access data stored in Health Connect

Standardized data schema ensures data consistency between apps

Health Connect provides a standardized data schema which supports 40+ data types across 6 categories. The schema is intuitive to use and covers a wide range of use cases, from exercises to sleep tracking to vital signs. It only requires just a few lines of code to read and write any of these data types in Health Connect. Health Connect even supports complex aggregations so that you can completely customize your queries to your app's use case.

"With Health Connect APIs, our engineers were able to easily adapt their existing architecture in order to read and write user health data such as nutrition, hydration, exercise, and steps. With this integration, we're now able to consume data from any 3rd party application that also writes to Health Connect, expanding our users' choices while allowing them more flexibility to grant granular permissions about which data they want to share"
- Jason Peterson, Chief Technology Officer of MyFitnessPal


Centralize privacy controls for users, with less code

Previously, users had to navigate to multiple apps to manage data permissions. And, developers had to build out permissions management UIs themselves.

With Health Connect, users can easily manage permissions in a single place, with granular controls to see which apps are accessing data at any given time.

For developers, Health Connect provides the permissions management hub and granular permissions UIs out of the box, so you can set this up quickly.

Phone screen showing granular permissions for Run Tracker app to access in Health Connect
granular permissions screen that shows the different data types

For example, Signos was able to quickly set up permissions checks with Health Connect. "One aspect I was pleasantly surprised by was the user onboarding UX," said Signos developer Jake Smith. "A simple, drop-in piece of code sets up the permissions so users can start reaping the benefits."


We're just getting started

Join the many developers who have already integrated with Health Connect and don't miss out on the opportunity to develop richer insights for your users. Check out our documentation, helpful video tutorials, and code samples - and start building today!

14 Nov 2022 4:00pm GMT

12 Nov 2022

feedTalkAndroid

BLUETTI Black Friday Sneak Peek: All Doorbusters and Giveaways in one place

The biggest sale of the year is almost here. BLUETTI is kicking off the holiday shopping season on November 11. Beyond tons of great deals on power stations, it also offers Mystery Boxes and Exclusive Giveaways, and even arranges Lucky Draws. Score the following best buys and freebies now or never. AC500 & B300S Starts […]


Come comment on this article: BLUETTI Black Friday Sneak Peek: All Doorbusters and Giveaways in one place

Visit TalkAndroid

12 Nov 2022 4:17pm GMT

11 Nov 2022

feedAndroid Developers Blog

Coming up next for Android Dev Summit ‘22: The Platform track, on November 14!

Posted by Daniel Galpin (@dagalpin), Developer Relations Engineer On Monday, November 14, we kick off the final of three tracks for Android Dev Summit with the Platform track! This track includes almost 20 talks focused on developer features and guidance around Android 13, and how, together with your help, we're making the platform more private and secure, more personal, and more capable than ever. We dropped information on the livestream agenda, technical talks, and speakers - so start planning your schedule!
Platform Track @ Android Dev Summit November 14, 2022 at 9:00 AM PT Sessions All times in PT 9:50 AM 9:20 AM 9:35 AM 9:00 AM Migrate Your Apps to Android 13 Designing a High Quality App with the Latest Android Features Building for a Multilingual World Improving Your Social Experience Quality with Android Camera 10:10 AM HDR 10BIT: Capture, Playback, and Sharing 10BIT Video 10:15 AM Foster User Trust by Adopting Privacy-respecting Permission Workflows 10:28 AM 10:38 AM Presenting a High-quality Media Experience for all Users Next Up on the Privacy Sandbox 10:58 AM 11:13 AM Building Accessibility Support for Compose Hardware Acceleration for ML on-device 11:27 AM Android Graphics 11:44 AM Migrate to Play Billing Library 5 - More flexible subscriptions on Google Play Demystifying Attestation 11:59 AM 12:14 AM Supporting BLE Audio in Your Voice Communication Applications 12:24 PM Building Modern Android App Widgets 12:33 PM #AskAndroid 12:52 PM Everything About Storage on Android 1:05 PM Keep your App From Failing in a 64-bit Only World 1:13 PM Syncing Data with Health Connect 1:20 PM Introduction to Ultrawide-band on Android Broadcast live on d.android.com/dev-summit & YouTube

Here's what to expect on November 14th:

Get ready for all things platform! We're kicking the livestream off at 9:00 AM PT on November 14th on YouTube and developer.android.com, where you'll be able to watch almost 20 sessions, with talks such as:

And at approximately 12:30 PM PST, we'll be hosting a live Q&A - #AskAndroid - so you can get your burning platform questions answered live by the team who built Android. Post your questions to Twitter or comment in the YouTube livestream using #AskAndroid for a chance to have your questions answered on the livestream.

Check out our previous tracks: Modern Android Development and Form Factors.

The Platform track is our third and final track for Android Dev Summit '22. Missed the earlier moments? You can still catch up on all of the content: watch the keynote on YouTube and check out the keynote recap so you don't miss a beat! Plus, get up to speed on all things Modern Android Development with a recap video, blog, and the full MAD playlist where you can find case studies and technical sessions, as well as the recap for Form Factors and the full Form Factors session playlist.

We're so excited for all the great content yet to come from Android Dev Summit, and we're looking forward to connecting with you!

11 Nov 2022 4:00pm GMT

10 Nov 2022

feedAndroid Developers Blog

Continuing our Commitment to User Choice Billing

Posted by Paul Feng, Vice President, Product ManagementBuilding on Android's long history of continuously evolving to provide users and developers more flexibility and choice, we announced earlier this year that we would begin exploring expanded billing options on Google Play through our user choice billing pilot. At the heart of this pilot is our belief that the best way to offer alternative billing for in-app purchases is to put the choice in the hands of users.

Pilot participants can offer an additional billing system alongside Google Play's billing system for their users in select countries. Our goal is to understand complexities involved in supporting user choice billing for developers and users in countries across the world while maintaining a safe and positive user experience. This pilot allows us to test and iterate on different implementations, and gather insights from developers and users on their experience to determine how this pilot might evolve.
Illustration of a woman standing in front of a large phone with Google Play logo prominently featured. At her feet are stacks of coins. To the right of the phone are icons for music, video, a key, gems, and stars
Learn more about the user choice billing pilot here

Partner participation and excitement

When we announced the pilot, we noted that we were starting with Spotify as our very first partner. We've been working closely with the Spotify team and are excited to announce that this week they begin rolling out an initial test implementation of user choice billing to their users in select countries. We expect the experience will likely evolve over time as they continue to iterate and learn. Spotify has announced more detail on this rollout here.

We're also excited that Bumble has joined to partner with us in our user choice billing pilot. We're working with their teams and we anticipate their users will begin seeing this choice in-app in select countries in the coming months.

Enable user choice billing in over 35 countries

Additionally, with strong interest from developers around the world, in September we opened participation in the pilot to to all developers of non-gaming apps. We provided more detail about the eligibility, requirements-including interim UX guidelines-and announced that user choice billing will initially be available to users in Australia, India, Indonesia, Japan, and the European Economic Area.

Today we are excited to announce that based on the positive response and initial feedback from developers and users, we are expanding the pilot to users in the United States, Brazil, and South Africa.
Greyscaled world map highlighting existing pilot countries in green (Australia, India, Indonesia, Japan, European Economic Area) and recently added pilot countries in blue (Brazil, South Africa, United States)
Participating developers can enable user choice billing in over 35 countries

While this is still early days in the pilot, we're encouraged by this initial response and momentum, and look forward to sharing more in the coming months as we continue to build and iterate with our partners and roll out user choice billing to more users. To learn more about the pilot eligibility, requirements, and how to get started visit our Help Center.

10 Nov 2022 6:00pm GMT

09 Nov 2022

feedAndroid Developers Blog

Form Factors at Android Developer Summit ‘22

Posted by Alex Vanyo, Developer Relations EngineerThe Android Developer Summit is live with the second stop on our world tour - and we are thrilled to give you the latest updates on Android form factors! Discover the latest tools, APIs and guidance that make it easier to build apps that look great on large screens, wearables, and TVs. Here are the three things you need to know about form factors at ADS, and check out the full YouTube playlist here:

#1: Android developers are finding BIG success when optimizing their apps for large screens

The large screen category is growing, with over 270 million active large screen Android devices and an expanding portfolio of tablets, desktops, and foldables to choose from. That's why there has never been a better time to be sure your app looks great across all screen sizes and postures. To learn practical tips for optimizing your app for large screens, check out the Do's and Don'ts: Mindset for optimizing apps for larger screens session. Throughout the session, the Android team highlights design guidance, app quality, and additional tips for large screens on everything from reachability to canonical layouts. New Android Studio tools like emulators and reference devices make it easier to build and test.In-depth guides help you improve your app by optimizing layouts, avoiding camera issues, and enhancing support for peripherals like mouse, keyboard and stylus.

Large screens enable users to see more, do more, and experience more. With large screen sizes, there are ever-expanding opportunities to excite and delight your users with differentiated app experiences. That's why we launched our new large screens gallery page during the Android Dev Summit kickoff, with general design tips and verticalized use cases, and implementation ideas.

#2: It's easier than ever to develop for Wear OS

Compose for Wear OS is stable, bringing the modern UI toolkit to the wrist and making it simpler than ever to build exceptional Wear OS apps. This toolkit is designed to help you get your app up and running faster than before; Outdooractive adopted Compose for Wear OS and enhanced their wearable experience with 30% fewer development hours. Equally important as development time is the user experience you are able to provide. Todoist rebuilt their app using Compose for Wear OS, saw their growth rate on Google Play increase by 50%, and heard positive feedback internally and on their social media channels. To begin developing with Compose for Wear OS, get started on our curated learning pathway for a step-by-step learning journey. Where you can find documentation including a quick start guide and get hands on experience with the Compose for Wear OS codelab!

Outdooractive cut development time by an estimated 30% with Compose for Wear OS
The Android Developer Summit technical sessions dive deep into the content you need to build Wear OS apps, with guidance on app architecture, testing, handling rotary input and verticalized sessions for media and fitness. We have seen the impact that Health Services has had on developing health and fitness apps for the wrist, and how powerful this can be when extended with Health Connect on mobile. Using Google APIs and tools, Strava improved their user engagement and retention - with 30% more active days from Wear OS users on Strava than users without a wearable device. For more information on how to start building apps for Wear OS check out the developer site.

#3: Find tips and tricks for developing a great Android TV app

Finally, for Android TV we have collected tips for building amazing living room user experiences, including some new platform features in Android 12 and 13. TV is an important part of the Android ecosystem; of US households watch 25+ hours of content each week. Plus, there are now over 110 million monthly active AndroidTV OS devices. There is a ton to learn about how you can tap into this audience in our Improving the TV User Experience technical session including an update on Compose, seeing how App Bundles relate to TV, and guidance and best practices around energy savings and user preferences.

Those were the top three announcements about Form Factors at Android Developer Summit. Want to learn more? Check out the full form factors playlist on YouTube!

What's next for Android Dev Summit' 22? The Platform track, on November 14

This was the second stop on the Android Dev Summit '22 tour. Last month, we kicked things off with the keynote as well as our first track on Modern Android Development. After today's second track on Form Factors, there's more to come in our third and final track on the Platform, which will be broadcast live on YouTube next week on November 14. We can't wait to see you again next week!

09 Nov 2022 2:20pm GMT

“Reach” Your Users on Large Screens

Posted by Diana Wong, Product Manager, Android Large screen devices like foldables and tablets mean your users have more screen to interact with. But they also can make it more difficult for those users to reach certain parts of their screen. Reachability, or what parts of the screen users can comfortably reach without stretching or adjusting their grip, is an important factor in user experience and accessibility and can help you decide where to place your app's UI elements.

UI Elements on Large Screens

Large screens, such as tablets and foldables, are not always held and engaged with the same way as a smaller device like a phone. In the image below, you can see an example of how easily users can reach each area of a tablet with a width greater than nine inches.



The green area is easy for the majority of users to reach, the yellow and orange areas are only reachable for some users, and the red area is most difficult for users to reach. Within the red area, a user may need to adjust their grip or stretch to reach UI elements. It is important to consider how reachable each of your UI elements are to provide your users with the most optimal experiences.






Reachability isn't "one size fits all"

Reachability can be impacted by a number of factors. First, device size can change what areas are reachable; larger devices mean it will be more difficult for users to reach the center of the screen. Another factor impacting reachability is the task a user is executing as users may hold their device in different ways for tasks like taking a photo versus using the keyboard. Hand size, measured from base of the wrist to the tip of the middle finger, can also affect how much of the device a user can reach. For example, take a look at the hand size data below. For tablets with a diagonal size greater than nine inches, users with hands larger than the US average can reach significantly more of the screen than users with hands smaller than average.

Hand size data showing differences in reachability between users with large hands and users with small hands
Additionally, how users hold their device changes depending on device orientation. As shown in the images below, devices used in portrait mode versus landscape impact the areas a user can comfortably reach.
Hand size data showing differences in reachability between users who hold their devices in landscape mode versus those who hold their devices in portrait mode

Finally, mostly due to screen size, foldable devices show some slightly different reachability patterns. Because they often have smaller screens than tablets, it is easier to reach the center of the device. However, the general pattern holds when it comes to reachability. When unfolded, the average user cannot reach the top 25% of the screen on a foldable device.

The DOs and DON'Ts of Large Screen Reachability

Reachability may vary by user, but there are some guidelines that can help your users' large screen app experience. We have found that placing UI elements in the corners can be less than optimal. UI elements that are too close to the edges are going to be more likely to interact with user grip.Additionally, our reachability data shows that elements too close to the corners or edges of the device can be more difficult to reach, especially when a user is holding the device with both hands.

Now that you've learned all about reachability and the factors that impact it, here's what you need to remember when building or updated an app for large screens:

DO: Limit interactions on the top 25% of the screen

The upper quarter of the screen can be hard to reach without changing one's grip.

DONT: Place critical and frequently used elements close to the screen's bottom edge and corners

Placing essential interactive elements too close to the bottom edge of the screen makes it more difficult for some users, particularly those with larger hands, to reach.

You can learn more about designing your app for large screens in our new gallery page or by checking out the Material Design guidance for large screens and foldables.

09 Nov 2022 2:15pm GMT

Power your Wear OS fitness app with the latest version of Health Services

Posted by Breana Tate, Developer Relations EngineerThe Health Services API enables developers to use on-device sensor data and related algorithms to provide their apps with high-quality data related to activity, exercise, and health. What's more, you don't have to choose between conserving battery life and delivering high frequency data-Health Services makes it possible to do both. Since announcing Health Services Alpha at I/O '21, we've introduced a number of improvements to the platform aimed at simplifying the development experience. Read on to learn about the exciting features from Health Services Beta in Android Jetpack that your app will be able to take advantage of when you migrate from Alpha.


Capture more with new metrics

The Health Services Jetpack Beta introduces new data and exercise types, including DataType.GOLF_SHOT_COUNT, ExerciseType.HORSE_RIDING, and ExerciseType.BACKPACKING. You can review the full list of new exercise and data types here. These supplement the already large library of data and exercise types available to developers building Wear OS apps with Health Services. Additionally, we've added the ability to listen for health events, such as fall detection, through PassiveMonitoringClient.

In addition to new data types, we've also introduced a new organization model for data in Health Services. This new model makes the Health Services API more type-safe by adding additional classification information to data types and data points, reducing the chance of errors in code. In Beta, all DataPoint types have their own subclass and are derived from the DataPoint class. You can choose from:

DataTypes are categorized as AggregateDataTypes or DeltaDataTypes.

As a result of this change, Health Services can guarantee the correct type at compile time instead of at runtime, reducing errors and improving the developer experience. For example, location data points are now represented as a strongly-typed LocationData object instead of as a DoubleArray. Take a look at the example below:

Previously:

exerciseUpdate.latestMetrics[DataType.LOCATION]?.forEach {
val loc = it.value.asDoubleArray()

val lat = loc[DataPoints.LOCATION_DATA_POINT_LATITUDE_INDEX]
val lon = loc[DataPoints.LOCATION_DATA_POINT_LONGITUDE_INDEX]
val alt = loc[DataPoints.LOCATION_DATA_POINT_ALTITUDE_INDEX]

println("($lat,$lon,$alt) @ ${it.startDurationFromBoot}")
}

Health Services Beta:

exerciseUpdate.latestMetrics.getData(DataType.LOCATION).forEach {
// it.value is of type LocationData
val loc = it.value
val time = it.timeDurationFromBoot
println("loc = [${loc.latitude}, ${loc.longitude}, ${loc.altitude}] @ $time")

}

As you can see, due to the new approach, Health Services knows that loc is of type List<SampleDataPoint<LocationData>> because DataType.LOCATION is defined as a DeltaDataType<LocationData, SampleDataPoint<LocationData>>.


Consolidated exercise end state

ExerciseState is now included within ExerciseUpdate's ExerciseStateInfo property. To give you more control over how your app responds to an ending exercise, we've added new ExerciseStates called ExerciseState.ENDED and ExerciseState.ENDING to replace what was previously multiple variations of ended and ending states. These new states also include an endReason, such as USER_END, AUTO_END_PREPARE_EXPIRED, and AUTO_END_PERMISSION_LOST.

The following example shows how to check for exercise termination:

val callback = object : ExerciseUpdateCallback {
override fun onExerciseUpdateReceived(update: ExerciseUpdate) {
if (update.exerciseStateInfo.state.isEnded) {
// Workout has either been ended by the user, or otherwise terminated
val reason = update.exerciseStateInfo.endReason
}
...
}
...
}


Improvements to passive monitoring

Health Services Beta also transitions to a new set of passive listener APIs. These changes largely focus on making daily metrics better typed and easier to integrate. For example, we renamed the PassiveListenerConfig function setPassiveGoals to setDailyGoals. This change reinforces that Health Services only supports daily passive goals.We've also condensed multiple APIs for registering Passive Listeners into a single registration call. Clients can directly implement the desired overrides for only the data your app needs.

Additionally, the Passive Listener BroadcastReceiver was replaced by the PassiveListenerService, which offers stronger typing, along with better reliability and performance. Clients can now register both a service and a callback simultaneously with different requests, making it easier to register a callback for UI updates while reserving the background request for database updates.


Build for even more devices on Wear OS 3

Health Services is only available for Wear OS 3. The Wear OS 3 ecosystem now includes even more devices, which means your apps can reach even more users. Montblanc, Samsung, and Fossil are just a few of the OEMs that have recently released new devices running Wear OS 3 (with more coming later this year!). The newly released Pixel Watch also features Fitbit health tracking powered by Health Services.

If you haven't used Health Services before, now is the time to try it out! And if your app is still using Health Services Alpha, here is why you should consider migrating:

You can view the full list of changes and updated documentation at developer.android.com.


09 Nov 2022 12:45pm GMT

07 Nov 2022

feedAndroid Developers Blog

Coming up next for Android Dev Summit ‘22: The Form Factors track, on November 9!

Posted by Diana Wong, Product ManagerLast month, we kicked off the first part of Android Dev Summit, and later this week comes the second session track: Form Factors! In this track, we'll bring you through all things Android form factors, including the API, tooling, and design guidance needed to help make your app look great on Android watches, tablets, TVs and more. We dropped information on the livestream agenda, technical talks, and speakers - so start planning your schedule!

Form Factors Track @ Android Dev Summit November 9, 2022 Sessions: Deep Dive into Wear OS App Architecture, Build Better Uls Across Form Factors with Android Studio, Designing for Large Screens: Canonical Layouts and Visual Hierarchy Compose: Implementing Responsive UI for Large Screens, Creating Helpful Fitness Experiences with Health Services and Health Connect, The Key to Keyboard and Mouse Support across Tablets and ChromeOS Your Camera App on Different Form Factors, Building Media Apps on Wear OS, Why and How to Optimize Your App for ChromeOS. Broadcast live on d.android.com/dev-summit & YouTube.

Here's what to expect on November 9th:

Get ready for all things form factors! We're kicking the livestream off at 1:00 PM GMT on November 9th on YouTube and developer.android.com, where you'll be able to watch over 20 sessions and check out the latest announcements on building for different form factors, with talks such as:

And to wrap the livestream up, at 4:20 PM GMT, we'll be hosting a live Q&A - #AskAndroid - so you can get your burning form factors questions answered live by the team who built Android. Post your questions to Twitter or comment in the YouTube livestream using #AskAndroid, for a chance to have your questions answered on the livestream.


There's more to come!

There is even more to get excited for as the Android Dev Summit continues later this month with the Platform track. On November 14, we're broadcasting our Platform technical talks where you'll learn about the latest innovations and updates to the Android platform. You'll be able to watch talks such as Android 13: Migrate your apps, Presenting a high-quality media experience for all users, and Migrating to Billing Library 5 and more flexible subscriptions on Google Play. Get a sneak peak at all the Platform talks here.

Missed the kick off event? Watch the keynote on YouTube and check out the keynote recap so you don't miss a beat! Plus, get up to speed on all things Modern Android Development with a recap video, blog, and the full MAD playlist where you can find case studies and technical sessions.

We're so excited for all the great content yet to come from Android Dev Summit, and we're looking forward to connecting with you!

07 Nov 2022 9:30pm GMT

03 Nov 2022

feedAndroid Developers Blog

Accurately Measure Android App Performance with Profileable Builds


Posted by Yi Yang (Software Engineer)
It's important to stay on top of your app performance to make sure your users can easily use your app. When an app experiences issues such as animation jank, frozen frames, and high memory usage, it negatively impacts the user experience which could lead to lower ratings or app deletion. To fix these performance issues, we first need the right tools to measure app performance correctly.

This is where profiling comes in. Profiling helps you find where CPU cycles and memory are spent at the time of inspection which makes it easier for you to pinpoint performance bottlenecks in your app. Android Studio offers a suite of profilers to help with the inspection.

Screenshot of Android Studio profilers
Historically, profiling an Android app required a debug build.

Screenshot of the debug/release build variants in Android Studio

The debug build allows you to use features useful for development, like Apply Changes, working with the debugger, or the Database Inspector. In addition, it also enables profiling tools to inspect the state of a running app unavailable to the release build.

Under the hood, the debug build sets the debuggable flag in the Android Manifest to true.

AndroidManifest.xml


<application android:debuggable="true">

...

</application>


While useful, the debug build is meant to provide more information at the cost of performance. That's because when debuggable is true, a lot of compiler optimizations are turned off.
Screenshot of the Profile HWUI rendering setting in Developer Options. The option is in Developer Options > Monitoring > Profile HWUI rendering > On screen as bars
To show you the performance difference between the debug and release builds, we recorded an app running on the same device but in these two build variants. To visualize the frame rendering time, we turned on Profile GPU Rendering (or Profile HWUI rendering in some Android versions) in Developer Options when recording the screen. Each vertical bar on the bottom of the screen represents how long each frame takes to render. The shorter these bars are, the smoother the animation is.

The screen recording below shows the same app running on the same device. The left-hand side is on a debug build, the right-hand side a release build. The debug version has more stuttering frames, also known as UI jank. This means when you profile the debug build, you may see timing measurements significantly different from what your users see in the release build, and you may end up optimizing something that is not the problem.
GIF showing the performance difference between debug and release builds












To address that issue, the Android platform introduced a tag called profileable. It enables many profiling tools that measure timing information, without the performance overhead of the debug build. Profileable is available on devices running Android 10 or higher.

AndroidManifest.xml

<application>
<profileable android:shell=["true" | "false"] />
</application>

Let's look at another screen recording. This time, the left side shows a profileable release app and the right side an unmodified release app. There's little performance difference between the two.

GIF showing the performance difference between profileable and release builds


With profileable, you can now measure the timing information much more accurately than the debug build.

This feature is designed to be used in production where app security is paramount. Therefore we decided to only support profiling features such as Callstack Sampling and System Trace, where timing measurement is critical. The Memory Profiler only supports Native Memory Profiling. The Energy Profiler and Event Timeline are not available. The complete list of disabled features can be found here. All these restrictions are put in place to keep your app's data safe.

Now that you know what the profileable tag does, let me show you how to use it. There are two options: automatically and manually.


Option 1: Use the option in Android Studio.

With Android Studio Flamingo and Android Gradle Plugin 8.0, all you need to do is just select this option from the Profile dropdown menu in the Run toolbar: "Profile with low overhead". Then Android Studio will automatically build a profileable app of your current build type and attach the profiler. It works for any build type, but we highly recommend you to profile a release build, which is what your users see.

Screenshot of the one-click profileable builds feature in Android Studio Flamingo Canary
When a profileable app is being profiled, there is a visual indicator along with a banner message. Only the CPU and Memory profilers are available.
Screenshot of Android Studio profiler profiling a profileable build
In the Memory Profiler, only the native allocation recording feature is available due to security reasons.

Screenshot showing Android Studio memory profiler features when profiling a profileable build











This feature is great for simplifying the process of local profiling but it only applies when you profile with Android Studio. Therefore, it can still be beneficial to manually configure your app in case you want to diagnose performance issues in production or if you're not ready to use the latest version of Android Studio or Android Gradle plugin yet.


Option 2: Manual configuration.

It takes 4 steps to manually enable profileable.

1. Add this line to your AndroidManifest.xml.

AndroidManifest.xml

<application>
<profileable android:shell="true" />
</application>

2. Switch to the release build type (or any build type that's not debuggable).

Screenshot of selecting the active build variant in Android Studio
















3. Make sure you have a signing key configured. To prevent compromising your release signing key, you can temporarily use your debug signing key, or configure a new key just for profiling.















4. Build and run the app on a device running Android 10 or higher. You now have a profileable app. You can then attach the Android Studio profiler by launching the Profiler tool window and selecting the app process from the dropdown list.

Screenshot of process selection in Android Studio profilersMany of you may wonder if it is safe to leave the profileable manifest tag in production and the answer is yes. This tag is designed to be usable in release builds to enable local profiling. No memory data is readable by the host profiling tools and the shell process. Only stack traces are readable, which are typically obfuscated or lacking symbols in release builds.

In fact, many first-party Google apps such as Google Maps ship their app to the Play Store as profileable apps.

Screenshot showing Google Maps as a profileable process in the profiler process dropdownIn summary, profiling the debug build may skew the performance and therefore it's better to analyze the release build with the profileable tag enabled.

Here's a table that shows which build type should be used:

Release Profileable Release Debug
Production Profiling CPU timing Debugger, Inspectors, etc.

Profiling memory, energy, etc.

To learn more about profilable builds, start by reading the documentation and the the user guide.

With these tools provided by the Android team, we hope you can make your app run faster and smoother.

03 Nov 2022 8:00pm GMT

10 Nov 2011

feedAndroid Forums

Latest action game INC from OrangePixel now available!

From the developer of Meganoid and Stardash comes a new action arcade game: INC! http://www.youtube.com/watch?v=9j5OEG-3RyM Get it from the...

10 Nov 2011 9:31am GMT

Free online video chat

More than 1000 broadcast cameras for you online - the most incendiary models in Russia. 1000 girls, 1000, the temptations, 1000, full of desire - all...

10 Nov 2011 7:48am GMT

Layout problem

Hi Friends I decided to work with a tab layout application. Program consist of 3 tabs and a button. I like to place the button below the tab. ...

10 Nov 2011 5:20am GMT

[ANDROID]5 New Live Wallpapers for ANDROID !

*1-) Spectrum ICS * Image: http://i.imgur.com/IjE5B.jpg *2-) Alien Shapes* Image: http://i.imgur.com/7hQHA.jpg

10 Nov 2011 12:50am GMT

09 Nov 2011

feedAndroid Forums

New to Android, thinking of getting Asus Transformer

Hey all, New to this site and Android. I'm a 50 year old fireman who has resisted the newest tech gadgets but am wanting a tablet for use at home....

09 Nov 2011 10:33pm GMT

Island Fortress - "reverse Angry Birds" (FREE GAME)

Island Fortress is a free physics based puzzle/construction game where player has to defend the treasure from the pirate's cannonballs....

09 Nov 2011 8:42pm GMT

Unlock Code Question (MyTouch 3G)

I have a question about using an unlock code with an HTC T-Mobile MyTouch 3G. So I got the phone from a guy on Craigslist, and I have AT&T. In order...

09 Nov 2011 8:28pm GMT

[Game] Mini-Bubbles

Free Mini-Bubbles Android Market Link: https://market.android.com/details?id=br.com.dotfive.minibubbles Pop the most bubbles you can within...

09 Nov 2011 6:39pm GMT

Top 6 Android Tablet For 2011

Well now a days we are seeing new tablets coming every day and we see new upcoming tablets leaks too! It's difficult to choose best one which works...

09 Nov 2011 4:15pm GMT

unlock code

Hello, I need unlock code for telephone my touch 3g tmobile. thanks

09 Nov 2011 2:56pm GMT