Yesterday, Google launched a new app in preparation for Stadia to be available on Android TV and Google TV devices. We’ve found that the new Android TV app is designed completely differently from how Stadia for Android works.
About APK Insight: In this “APK Insight” post, we’ve decompiled the latest version of an application that Google uploaded to the Play Store. When we decompile these files (called APKs, in the case of Android apps), we’re able to see various lines of code within that hint at possible future features. Keep in mind that Google may or may not ever ship these features, and our interpretation of what they are may be imperfect. We’ll try to enable those that are closer to being finished, however, to show you how they’ll look in the case that they do ship. With that in mind, read on.
Reduced storage space
One of the biggest improvements between these two versions is a massive decrease in storage space. Just the installable APK file for Stadia’s mobile app takes up over 65MB of storage space, while the Android TV app clocks in at just under 19MB.
This is possible because the new app has been stripped of many of its visual assets, including the various graphics used throughout the mobile app. Beyond that, Stadia for Android TV has far fewer libraries of code — even opting not to use Flutter natively — all of which is shaving quite a few megabytes off the installed size.
Web technology
We find that Stadia for Android TV is switching to a Google-developed web-based platform called “Cobalt,” which uses web technologies like HTML, CSS, and JavaScript to run apps on a variety of platforms. As explained on the framework’s homepage, Google is fairly open about the fact that the YouTube TV app — presumably meaning the service’s Android TV app — is built onto Cobalt.
With a bit of digging into the new app’s code, we find a familiar-looking URL:
https://stadia.google.com/tv
This page was discovered some weeks ago by GemBearGaming, so we took a closer look. Through experimentation and reading the code, we learn that the page behaves differently based on a number of factors.
If you’re on a desktop or laptop, you’re given instructions on how to link a Stadia account to your TV. On Android, you’re encouraged to “Install the Stadia for Android TV app.” On Cast-based devices like a Nest Hub, you’re shown an error message saying that your Chromecast Ultra needs a firmware update. Lastly, we find that the page gives special treatment to the Android TV app and Cobalt.
Effectively, Stadia for Android TV is a specialized web browser — with extra features specific to Stadia — that opens to a web app. But what can we learn about that web app?
Flutter for Web?
As mentioned, we’ve been following the development of Stadia for Android TV for many months. This has been possible because texts about the Android TV experience have appeared in the APK, mixed in with the mobile app’s Flutter code. At the time, we figured that this overlap meant that Stadia’s Android TV experience would be powered by the same app that’s used on mobile.
Instead, the Android TV experience is seemingly powered by a web app. If that’s the case, then why did text related to Android TV appear in the Flutter code for the mobile app? The most obvious answer we can come up with is that Stadia for Android TV is built using Flutter for Web, a relatively new addition for the app framework.
This possibility is backed up by some of the text we can see in the app today. In April, we spotted a new bit of text in the Flutter code that explained that the Google Assistant button on the Stadia Controller would not work on Google TV devices. This exact text is visible in the Stadia for Android TV app today, suggesting that the mobile app and web app are built from the same codebase.
For Google TVs, use the remote to access the Google Assistant
Your Stadia Controller won’t open the Google Assistant when you’re playing on a Google TV
While we’ve yet to formally confirm how the app was built, this would mark one of the most significant apps to be built with Flutter for Web since it went stable in March. The most recent app confirmed to be built with Flutter for Web was the Google I/O 2021 Photo Booth.
Thanks to JEB Decompiler, from which some APK Insight teardowns benefit.
Author: Kyle Bradshaw
Source: 9TO5Google