The latest (minor) update to the Google app brought with it a surprise twist as it enabled customization in the search bar widget. As it turns out, that's not the only new thing in this update. A teardown also turned up quite a few clues relating to a new on-screen interface for Google Home or a new Home device with built-in display.

Disclaimer: Teardowns are based on evidence found inside of apks (Android's application package) and are necessarily speculative and usually based on incomplete information. It's possible that the guesses made here are totally and completely wrong. Even when predictions are correct, there is always a chance that plans could change or may be canceled entirely. Much like rumors, nothing is certain until it's officially announced and released.

The features discussed below are probably not live yet, or may only be live for a small percentage of users. Unless stated otherwise, don't expect to see these features if you install the apk.

Preamble: I should be clear that there are at least a couple of ways to interpret the information that follows. It's possible that we're looking at the first tangible evidence of a Google Home device with a built-in screen like the one reported last month by TechCrunch. This could also be related to the "visual responses" demonstrated earlier this year at I/O that will allow Google Home to send custom info screens to televisions (via Chromecast) in response to some requests. There are even other explanations, but we'll dig into some of the details and discrepancies along the way.

tl;dr note: A lot of this teardown is focused on enumerating the details and giving some analysis. I'm writing it that way so readers can see my train of thought and then form their own opinions. If you're not interested in a long read with that level of detail, and I know many aren't, I suggest skimming the titles and skipping to the conclusion at the end.

Quartz: Google Home with a screen

Let's begin with the codename that appears throughout all of the new text since that is what ties most of this together. Google calls this Quartz. As I said above, I'm not sure if this is the name of a single new hardware product, the name for the group of any and all Home devices that include a screen, or if it's the name of a software project that will project a new interface onto a TV. TechCrunch previously reported that a screen-equipped variant of Google Home was codenamed Manhattan.

There is also a second name that has been around a bit longer: Monet. Both names are part of a new activity shown below, but the Quartz name is appearing for the first time. Codenames don't always have special meaning, but it's easy to make some connections here: Monet is likely a reference to the famous painter, and Quartz calls to mind the inner workings of a clock–both art and clocks being things you would place in a room and look at.

<activity android:name="com.google.android.apps.gsa.monet.quartz.QuartzMonetActivity" android:exported="false" android:process=":search" android:taskAffinity="" android:theme="@style/Quartz.TransparentNavBar" />

Note: While this teardown is based on new strings of text named with the Quartz prefix, there is a very tight overlap with another large block of strings that has been growing over the last few updates with the "image_viewer" prefix. They may or may not be related, but seeing as they are likely surfacing the same information in a similar way, I'll be including both sets of snippets.

What does it do?

Before attempting to narrow down what Quartz actually is, let's focus on what it can do. There are a few really specific features and they help to form an idea of the shape Quartz may take.

We can safely say that Quartz will operate on voice commands. It has the typical prompt advising users of some of the commands they can give.

<string name="quartz_suggestions_prompt">Try saying...</string>

It helps with cooking and recipes

Based on a portion of the new text, we're probably going to want Quartz in the kitchen. The screen will be used to display recipes and cooking preparation, including details like the number of servings, prep time, ingredients, and more. There is also a format for showing each step in the preparation of a dish.

strings
<string name="quartz_ganache_widget_intro_preview_format">%1$s
Serves: %2$s
Time: %3$s</string>
<string name="quartz_ganache_widget_ingredients_preview_format">Ingredient %1$d of %2$d
%3$s</string>
<string name="quartz_ganache_widget_intruction_preview_format">Step %1$d of %2$d
%3$s</string>
<string name="quartz_ganache_widget_prep_preview_format">Prep
%1$s</string>

<string name="image_viewer_recipe_cook_time_label">Cook Time</string>
<string name="image_viewer_recipe_ingredients">Ingredients</string>
<string name="image_viewer_recipe_ingredients_label">Ingredients include:</string>
<string name="image_viewer_recipe_time_label">Time: </string>
<string name="image_viewer_recipe_yield">Yield</string>
<string name="image_viewer_recipe_yield_label">Yield: </string>

New layouts:
/layout/quartz_ganache_answer_card.xml
/layout/quartz_ganache_intro.xml
/layout/quartz_ganache_list_card.xml
/layout/quartz_ganache_list.xml
/layout/quartz_ganache_prep.xml
/layout/quartz_ganache_widget.xml
/layout/quartz_ganache.xml

Kitchen use seems like it might be a tentpole feature for Quartz. After all, it's one of the things a regular Google Home isn't good at because recipes and instructions are harder to follow when we have to listen to them carefully. They're simply easier to comprehend if we have pictures and text to look at. It's even easier to follow recipes when we can watch them being made, which segues into the next feature.

You can watch YouTube and control media

Google Home already has rudimentary control over YouTube videos, but it leaves a lot to be desired when you're trying to pick one. Quartz will make use of a pair of new layouts dedicated to YouTube, one being a browser and the other a video viewer.

strings
New layouts:
/layout/quartz_youtube_browser.xml
/layout/quartz_youtube_video.xml

<string name="image_viewer_video_author_label">By</string>
<string name="image_viewer_video_duration">(%s)</string>
<string name="image_viewer_video_comments_label">Comments</string>
<string name="image_viewer_video_likes_label">Likes</string>
<string name="image_viewer_video_upload_date_label">Published</string>
<string name="image_viewer_video_uploaded_by">Uploaded by:</string>
<string name="image_viewer_video_view_count_label">Views</string>
<string name="image_viewer_video_watch_label">Watch</string>

If we've got a screen to interact with, not just a microphone and a speaker, choosing and watching YouTube videos will be a lot easier and more intuitive.

As for other types of media, the standard playback buttons will be available (e.g. Play, Pause, Next, and Previous).

strings
<string name="quartz_media_image_description">media image</string>

<string name="quartz_media_next_button_description">next</string>
<string name="quartz_media_pause_button_description">pause</string>
<string name="quartz_media_play_button_description">play</string>
<string name="quartz_media_previous_button_description">previous</string>

New layouts:
/layout/quartz_media_view_widget.xml
/layout/quartz_media_view.xml

Set Timer(s)

Another feature that's useful everywhere, but most commonly associated with the kitchen, is a timer. Just about any product running Google Assistant offers some sort of timer implementation, but Quartz will specifically provide three buttons to use with them: pause, resume, and remove.

strings
<string name="quartz_pause_btn">pause</string>
<string name="quartz_resume_btn">resume</string>
<string name="quartz_remove_btn">remove</string>

New layouts:
/layout/quartz_timer_clock.xml
/layout/quartz_timer_widget.xml
/layout/quartz_timer.xml

In case you're wondering how I know this is related to the timer–since the string names don't mention it–I found that the strings are used in code found in this namespace: com.google.android.apps.gsa.staticplugins.quartz.monet.timer.renderer

Pause and resume are to be expected, but the remove button leaves no doubt that we'll be able to have multiple timers running at once. Again, that's pretty useful in the kitchen setting.

Check the weather

Weather information is like the "Hello World" of connected devices. That is to say that the vast majority of multi-purpose devices with a working Internet connection are probably providing weather details in some way or another. For something in the Home ecosystem that will have a screen to display information, it's doubly obvious that weather will be a standard feature.

The one interesting note about the resources for this one is that there are thirty-one different weather icons listed for everything from sunny skies to a hurricane. Actually, that's not the only disastrous weather mentioned here, tornados and blizzards are also on the list.

strings
<string name="quartz_weather_image_description">weather image</string>

<string name="quartz_unit_celsius">°C</string>
<string name="quartz_unit_fahrenheit">°F</string>

<string name="weather_icon_blizzard"></string>
<string name="weather_icon_blowing_snow"></string>
<string name="weather_icon_clear_night"></string>
<string name="weather_icon_cloudy"></string>
<string name="weather_icon_drizzle"></string>
<string name="weather_icon_flurries"></string>
<string name="weather_icon_haze_fog_dust_smoke"></string>
<string name="weather_icon_heavy_rain"></string>
<string name="weather_icon_heavy_snow"></string>
<string name="weather_icon_isolated_scattered_tstorms_day"></string>
<string name="weather_icon_mixed_rain_hail_rain_sleet"></string>
<string name="weather_icon_mostly_clear_night"></string>
<string name="weather_icon_mostly_cloudy_day"></string>
<string name="weather_icon_mostly_cloudy_night"></string>
<string name="weather_icon_mostly_sunny"></string>
<string name="weather_icon_not_available"></string>
<string name="weather_icon_partly_cloudy"></string>
<string name="weather_icon_partly_cloudy_night"></string>
<string name="weather_icon_scattered_showers_day"></string>
<string name="weather_icon_scattered_showers_night"></string>
<string name="weather_icon_scattered_snow_showers_day"></string>
<string name="weather_icon_scattered_snow_showers_night"></string>
<string name="weather_icon_showers_rain"></string>
<string name="weather_icon_sleet_hail"></string>
<string name="weather_icon_snow_showers_snow"></string>
<string name="weather_icon_strong_tstorms"></string>
<string name="weather_icon_sunny"></string>
<string name="weather_icon_tornado"></string>
<string name="weather_icon_tropical_storm_hurricane"></string>
<string name="weather_icon_windy_breezy"></string>
<string name="weather_icon_wintry_mix_rain_snow"></string>

New layouts:
/layout/quartz_weather_content.xml
/layout/quartz_weather_temp_range.xml
/layout/quartz_weather_temperature.xml
/layout/quartz_weather.xml

Photo gallery

Another obvious feature for a screen that's going to be on most of the time is a photo gallery. I suspect this will be at least partially interactive because one of the layouts produces a list of photos, which only makes sense if users can choose photos from it. The rest of the layouts are for displaying either full-size photos or scaled images that might fit two or more to a screen.

strings
New layouts:
/layout/quartz_photo_gallery_card.xml
/layout/quartz_photo_gallery.xml
/layout/quartz_photo_large_attr.xml
/layout/quartz_photo_list.xml
/layout/quartz_photo_small_attr.xml

Web browsing

Since many of the previously mentioned features might come with links to web pages, it seems fairly natural that there would also be a webview incorporated into this environment. The layout used here is calling up a basic WebKit control, so it's probably going to be fairly barebones. I doubt you'll want to do much active browsing on this, but it has enough of an interface to get the job done.

<string name="quartz_web_page_logo_description">web page</string>

New layouts:
/layout/quartz_webview.xml

Google Maps

Now we get to another thing that Google Home could never really do for you: Provide useful map information. Just like the web browser, this appears to be just the most basic implementation of what Google Maps might have to offer for an extra screen in the home.

strings
<string name="quartz_map_button_description">open map</string>
<string name="quartz_address_logo_description">address</string>
<string name="quartz_phone_logo_description">phone</string>

New layouts:
/layout/quartz_local_place_card.xml
/layout/quartz_local_place_image_template.xml
/layout/quartz_local_place_images_and_map.xml
/layout/quartz_local_place_info.xml
/layout/quartz_local_place_list_card.xml
/layout/quartz_local_place_list.xml
/layout/quartz_local_place_rating.xml
/layout/quartz_local_place.xml

Business listings appear to be the focus of the current layouts, and the only fields mentioned here are address and phone number. Seeing as there's no sign of a phone interface yet, it may not be possible to tap on the number to initiate a call. Of course, this whole thing is still in development and calling might still be on the to-do list, so it's premature to read too much into that absence at this time.

The default screen / screensaver

Regardless of what form Quartz takes, the most predictable element, and the part that ties almost everything together, is an idle screen. Google uses the name "rest screen" for the related resources, surely because it shows up when the device isn't doing something else more interactive.

While there are probably some options to customize this screen, it looks like it will display the date, time, weather, and a counter for notifications. These details will sit atop a background. There are also layouts for a carousel and suggestions, but I'm not entirely sure what will appear in either of them. I do know that there will also be a row of icons running parallel to the carousel, but I'm not sure what will be included in that row.

strings
<string name="quartz_restscreen_date_pattern">EEE, MMM d</string>

Note: The line above is used to define a format for dates. It will translate to something like "Wed, Oct 4, '17"

New layouts:
/layout/quartz_rest_screen_suggestions.xml
/layout/quartz_restscreen_background.xml
/layout/quartz_restscreen_carousel.xml
/layout/quartz_restscreen_date.xml
/layout/quartz_restscreen_notification_count.xml
/layout/quartz_restscreen_time.xml
/layout/quartz_restscreen_weather.xml
/layout/quartz_restscreen.xml

A look at the layout of the background does reveal one interesting detail. The component that displays the image is named KenBurnsCrossFadeImageView. The Ken Burns name is probably familiar to many readers, but he is a well-known documentary filmmaker that became widely recognized for using simple pan and zoom effects on still photographs to give them a little more life on the screen. The layout will also include up to three lines of text to describe the photo, which will probably resemble the standard title, artist, and source information shown on the Chromecast screensaver.

Leftovers

This section about features is already far too long, and the remaining elements aren't interesting enough to warrant discussion, so I'm including them here just for completeness. Included below are bits about the pairing process, resetting the device, and similar mundane details. There are also a few strings that suggest there may be shopping and style suggestions, but they aren't very fleshed out and only belong to the 'image viewer' resources, which I'm not convinced are part of Quartz. Feel free to skim through or skip to the next section, you won't be missing much.

strings
<string name="quartz_pair_notification_title">Google app</string>
<string name="quartz_pair_notification_subject">Start pairing this device</string>

<string name="quartz_pairing_welcome_device_connected">Great! You’re ready to go!</string>
<string name="quartz_pairing_welcome_device_found">Connecting to %s…</string>
<string name="quartz_pairing_welcome_prelude">Finding device…</string>
<string name="quartz_pairing_welcome_welcome">Welcome! Let’s get you setup.</string>

<string name="quartz_pairing_fail_to_pair">There was an error.</string>
<string name="quartz_pairing_device_not_found">Unable to find the device. All devices must be in the same network.</string>

<string name="verify_device_button">Next</string>
<string name="verify_device_sub_heading">Please verify that your device is showing the following content</string>
<string name="verify_device_title">Verify Device</string>

<string name="quartz_resetdialog_title">Reset</string>
<string name="quartz_resetdialog_message">Do you want to reset?</string>
<string name="quartz_resetdialog_button_no">No</string>
<string name="quartz_resetdialog_button_yes">Yes, perform reset</string>

<string name="quartz_build_info_dialog_title">Build version info</string>
<string name="quartz_device_qualifier_h" />
<string name="quartz_device_qualifier_sw" />
<string name="quartz_close_button_description">close</string>
<string name="quartz_back_button_description">back</string>

<string name="quartz_connection_connected">Connected</string>
<string name="quartz_connection_internet_disconnected">No internet connection</string>
<string name="quartz_connection_chirp_disconnected">No local connection to Google Home</string>
<string name="quartz_libassistant_connection_permanently_disconnected">Something went wrong, please restart the device.</string>
<string name="quartz_libassistant_connection_temporarily_suspended">Connecting to your Google Assistant…</string>

<string name="quartz_entity_image_description">entity image</string>

<string name="image_viewer_style_idea">Open style idea %1$s</string>
<string name="image_viewer_style_ideas_title">Style ideas</string>

<string name="image_viewer_product_brand_label">Brand</string>
<string name="image_viewer_product_in_stock">In stock</string>
<string name="image_viewer_product_availability_label">Availability</string>
<string name="image_viewer_product_price_label">Price*</string>
<string name="image_viewer_product_reviews_label_missing">Reviews</string>
<string name="image_viewer_product_unavailable">Out of stock</string>

<string name="image_viewer_image_description">Image titled %1$s</string>
<string name="image_viewer_more_options">More options</string>
<string name="image_viewer_more_related_images">More related images</string>
<string name="image_viewer_related_image">Open related image %1$s</string>
<string name="image_viewer_related_images_title">Related images</string>
<string name="image_viewer_related_products_title">Similar items</string>
<string name="image_viewer_related_searches_title">Related searches</string>
<string name="image_viewer_remove_failed">Couldn\'t remove the saved image. Please check your Internet connection.</string>
<string name="image_viewer_removing">Removing…</string>
<string name="image_viewer_rich_metadata_rating_label">Rating</string>
<string name="image_viewer_save">Save</string>
<string name="image_viewer_save_failed">Couldn\'t save the image. Please check your Internet connection.</string>
<string name="image_viewer_saved">Saved</string>
<string name="image_viewer_saved_description">Saved. Remove image.</string>
<string name="image_viewer_saved_to_google">Saved to Google</string>
<string name="image_viewer_saving">Saving…</string>
<string name="image_viewer_see_more">See More</string>
<string name="image_viewer_share">Share</string>
<string name="image_viewer_view_all_related_images">View All</string>
<string name="image_viewer_view_all_related_images_accessibility">View all related images</string>
<string name="image_viewer_view_saved">View saved</string>
<string name="image_viewer_visit_site">Visit</string>

New layouts:
/layout/quartz_build_info.xml
/layout/quartz_companion_screen_pairing.xml
/layout/quartz_companion_screen.xml
/layout/quartz_quartz.xml
/layout/quartz_notification.xml
/layout/quartz_input.xml
/layout/quartz_knowledge_answer.xml
/layout/quartz_main.xml
/layout/quartz_nativelist_card_horizontal.xml
/layout/quartz_nativelist_card_vertical.xml
/layout/quartz_nativelist_title.xml
/layout/quartz_nativelist.xml
/layout/quartz_recommended_content.xml
/layout/quartz_rendered_card.xml
/layout/quartz_result_suggestions.xml
/layout/quartz_suggestion_chip.xml
/layout/quartz_tts_transcription.xml

What is Quartz?

After that lengthy examination of the feature set, the question of form factor must be addressed. Let's start with the three explanations that were either previously announced or rumored to be coming:

  • It could be a Google Home-like device with built-in screen, just like the TechCrunch report describes.
  • It could be the software layer that generates a screen that can then be displayed on a television via Chromecast, which Google demonstrated at I/O earlier this year.
  • It could be a hybrid solution that involves pairing a tablet or similar device to Google Home and allowing Home to generate a display to show on the tablet's screen.

Before we narrow down the list, I want to address the fact that many of the previous sections mention buttons, but at no point is it definite that the new layouts and buttons are shown on the target screen. In other words, it's still possible these can be shown on your primary device (i.e. your phone).

I first want to rule out the hybrid solution of a tablet acting as an output device for Google Home. This isn't because of any specific features listed above, but for overall practical reasons. Quartz seems to target a device that will always have the screen on, and tablets have batteries that will eventually run out of power. If the screen is always on and animated with photos in the background, it would run down even the biggest tablet batteries in a matter of hours. I think it's safe to assume Quartz is expecting a device that's plugged into a wall. (However, I should acknowledge that there are signs that Quartz may have been developed and tested with tablets, so it can't be completely ruled out.)

While we know that Google is going to enable Home to show visual results with a television, and the text related to Quartz is not technically at odds with that model, I don't think that's the intent. Entirely too many of these features appear to be interactive. There are about a dozen buttons, and they serve purposes that would be inconvenient to use if you have to dig out a phone to reach some of them.

Conclusion

Based on all of the clues available in the latest update, my prediction is that Quartz is either the codename for a Google Home device with a built-in, full color touchscreen, or it may be the software component that will interact with such a device.

When you're not interacting with the device, it will show a default screen with date and time, weather, and a counter for notifications. The background will cycle through photos like a Chromecast, but they'll pan and zoom in the Ken Burns style.

At launch, this device will probably offer these primary features:

  • recipes with step-by-step instructions
  • YouTube videos
  • interactive timers
  • weather forecasts
  • photo gallery
  • Google Maps (only very basic features)
  • and a basic web browser

Many of these features are right up Google's alley, and when taken as a whole, it's easy to see how this would be a very compelling counterpart to Amazon's Echo Show.

Google's device will display videos and maps, so the screen has to be at least moderately-sized; but it's also probably intended to fit on a kitchen counter, so it can't be too big, either. Naturally, the sweet spot probably falls somewhere between 7 and 10 inches, or basically the size of almost every tablet ever made. Like I said earlier, this was probably developed and tested on a tablet.

That's about all I can come up with from the clues. This post includes a lot of speculation and guesswork based on incomplete evidence, but everything matches up closely with previous rumors. Obviously, there's nothing here that indicates a release schedule, but there's enough to suggest the project is beyond the early stages of development. We'll keep an eye open for more details as they become available.

Download

The APK is signed by Google and upgrades your existing app. The cryptographic signature guarantees that the file is safe to install and was not tampered with in any way. Rather than wait for Google to push this download to your devices, which can take days, download and install it just like any other APK.

Version: 7.14.15 beta 7.14.16 beta

Google
Google
Developer: Google LLC
Price: Free