Yesterday’s update to Google Maps was certainly no slouch for new features; it came packing some great improvements for cyclists, new voice commands during navigation, and a few other interface tweaks. In addition to these public changes, there are also two brand new features buried within the code which are not active yet, but they may point to some exciting stuff on the horizon.


"I Am Here"

Google Maps is pretty good at figuring out where we've gone; between GPS, Wi-Fi, and even things like BLE-based iBeacons, it's possible to pinpoint our locations just about everywhere, even inside of buildings. Still, there are times that even the latest technology can get confused, and that's where we can lend a hand. Google is working on a new interface that will allow users to clearly declare their presence at specific stores, monuments, or just about anything else Google has in its database.

<string name="IAMHERE_ADD_A_PLACE">Add %s as a new place</string>
<string name="IAMHERE_INTERNAL_ONLY">*internal dogfood only*</string>
<string name="IAMHERE_ARE_YOU_AT">Are you at</string>
<string name="IAMHERE_OR_ARE_YOU_AT">Or are you at</string>
<string name="IAMHERE_ARE_YOU_AT_PLAIN">Are you at</string>
<string name="IAMHERE_NOW_AT">Now at %s</string>
<string name="IAMHERE_NOW_AT_PLAIN">Now at</string>
<string name="IAMHERE_VIEW_MORE">More</string>
<string name="IAMHERE_EXPLORE_NEARBY">Explore nearby</string>
<string name="IAMHERE_NOT_AT_THIS_PLACE">Not at this place?</string>
<string name="IAMHERE_WHERE_ARE_YOU">Where are you?</string>
<string name="IAMHERE_SOMEWHERE_ELSE">Somewhere else?</string>
<string name="IAMHERE_REPORT_BLUE_DOT_PROBLEMS">Report blue dot issues</string>


<item quantity="other">"You've taken %d photos here"</item>
<item quantity="one">"You've taken %d photo here"</item>
<item quantity="two">"You've taken %d photos here"</item>
<item quantity="few">"You've taken %d photos here"</item>
<item quantity="many">"You've taken %d photos here"</item>

These strings point to a fairly straight-forward interface that covers the basic interaction of showing a user where Maps thinks they are, but offering ways to change locations as needed. Aside from some fairly insignificant bits, there aren't any dedicated layout files or images among the resources, and it's clear that the interface is constructed by code. There are also a few pre-loaded locations, but they could be meant either as filler for a user tutorial or -more likely- just for testing.

At this time, "I Am Here" is only available to Google employees and testers (note the dogfood string), so the public hasn't been invited to the party yet, but the code looks mostly complete.

The thing we've got to wonder is how this will be used. It's possible this functionality will become a simple check-in feature like we've already got in Google+. Alternatively, on a more speculative front, this might become a component for the Nearby feature we've spoken about in the past. Perhaps it could be used for helping two parties find each other in an otherwise large or complicated setting. I'm not sure about anybody else, but I would have loved some digital assistance a few weeks ago when I was meeting a small group of people at a very large mall.

Developer Gallery

While digging through the apk, I came across a lot of new code in a folder named "devgallery." Most of the class names and variables are obfuscated, so there's relatively little to go on, but two class names remained intact: GalleryConfigurationFragment and DeveloperGalleryFragment.

There are no unique resources of any kind referenced by this code, not even strings – they've all been hard-coded. In fact, all of the interface elements are constructed entirely in code, including custom handling of different resolutions and pixel densities. It’s not really clear if this has been done because the feature is still in early development, if it's necessary to account for dynamic content, or maybe the developers are just trying to make this code less obvious to prying eyes (cough)(cough).

Among the several hard-coded strings, many of which are obviously filler, I notice an obscene number of typos, misspellings, and even a couple amusing word substitutions. I sincerely doubt the author of this code meant for the text to be taken seriously, and probably wanted his or her fellow Googlers to get a couple of laughs. Naturally, I had to honor the contribution by sharing the joke. (Note: I left out a few strings that were too innocuous to to be meaningful. Bolded words deserved a tad more attention.)

"Some notice text"
"Some incident text"
"Some more incident text"
"Some elevation profile accent"
"Some elevation profile descent"
"Some travel mode label"
"Hello world"
"Some content description"
"via US-101 N and some other street with a long name"
"15 min without traffic which is not the case"
"content desctiption"
"5:14 - 6:00 PM"

There are also sample strings for different locations, which happen to include identical directions:

"Google West Campus", "0.5 mi (11 min)", "35 towards 36 SB Downtown Mountain View"
"Church El Camino", "0.5 mi (11 min)", "35 towards 36 SB Downtown Mountain View"
"Tokyo Metro", "0.5 mi (11 min)", "35 towards 36 SB Downtown Mountain View"
"Castro", "0.5 mi (11 min)", "35 towards 36 SB Downtown Mountain View"

Some of the longer filler (lorem ipsum) strings also contain embedded tags like this:

"<getTitle()> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt"

These are the embed tags present in the text, so far:

  • getTitle()
  • getDetails()
  • getSnippetText()
  • getReviewerInfoText()
  • getReview()
  • getLabel()
  • getButtonOneText()
  • getButtonTwoText()

Naturally, there are several labels and sample info to fill up the interface for testing purposes:

"Text: "
"Description: "
"Food", "22","Decor", "20","Service", "18", "Cost", "$29"
"10:27 from San Antonia & Middlefield"
"5 min"
"Every 60 min"
"28 min"
"9.3 miles"
"22 min"
"(426) u2022 "
"User Rating"
"At least"
"Any", "2.0", "3.0", "4.0"
"43 saved places"
"Write a review"

Finally, I noticed a hard-coded link to the Metropolitan Transportation Authority for the New York area (http://www.mta.info).

Of the few interfaces that are built from code, only one was entirely obvious. It creates a series of radio button groups offering options related to layout configurations.

  • Small, Normal, Large, Huge
  • Short text, Long text
  • LTR, RTL
  • ldpi, mdpi, hdpi, xhdpi, xxhdpi

So, what does all of this add up to? There’s not enough solid evidence to be positive, but with a name like "Developer Gallery," the presence of a layout config screen, and some of these other bits, it’s not hard to make a guess. This sounds like an interface for picking 3rd-party extensions.

If you're wondering why you might want this, just think about the potential of injecting custom features directly into Maps and Navigation. Currently, developers have to embed a map in their own apps to overlay graphics or run their own code. This is fine if you only want the features of one app at a time, but there may be benefits to having multiple apps working in tandem. Additionally, 3rd-party apps can't embed navigation, so some kind of hook for apps to improve on that experience would also be welcome.

Of course, this is deeply in the territory of speculation. There have been a few quietly circulating rumors that Google was finally willing to open up Maps to customization, but there have never been any credible details. Without more information, it's too early to be certain that this isn't something entirely different. We will just have to wait for future versions of Maps to shed some more light on this one.


That's it for this Teardown. The stuff we're seeing here probably raises more questions than it answers, but it's awesome to see some big stuff popping up so soon after Google I/O. Keep an eye out and we'll have more for you soon!

Cody Toombs
Cody is a Software Engineer and Writer with a mildly overwhelming obsession with smartphones and the mobile world. If he’s been pulled away from the computer for any length of time, you might find him talking about cocktails and movies, sometimes resulting in the consumption of both.

  • http://about.me/tnsuarez Rican7

    Great teardown. These are always interesting, but this one was very carefully done. :+1:

  • Gran PC

    The developer gallery sounds like a way for the developers to test how the UI reacts to different devices -- it doesn't really suggest anything related to extensions to me.

    • http://www.androidpolice.com/author/cody-toombs/ Cody Toombs

      I can see that as a possibility, but that doesn't really sound like a "gallery" to me. I'd also expect code like that to be kept on a private version for internal use only instead of appearing in a public release. I'm not determined to believe it will be for extensions, I can think of a dozen possible explanations, but it lines up with some other rumors and it does make sense as a feature.

      It's abundantly clear that this code is brand new, so we probably won't know for a while. And since it's been found, I'm not sure that it won't be pulled in future releases.

      • Gran PC

        I think a "gallery" could mean that it's some sort of test mode where it shows all possible views in some sort of gallery-like display. That'd also explain why the layout is generated programmatically and not in a resource file.

        You do raise a good point: that sort of stuff should be kept on a private version, but there is lots of stuff that Google release with their APKs that should be kept on private versions. Wouldn't be very surprising if this would be just something that slipped.

  • emperor43

    yes, great teardown ! i was actually missing them !

  • Martin Cohen

    But will they ever restore "Add as Contact"? I keep my original Nexus phone so I can do this.

  • http://www.bordersweather.co.uk/ Andy J

    Could stuff with long text, actually be testing how stuff appears on a wear device?
    EDIT: and potentially Android Auto too....

  • alacrify

    As a remote hope, maybe "I am here" could let me redefine where Google thinks things are. I can't set Google Now events for "home" because it doesn't tie my location to my home address (about 500 feet off, which is enough to ruin it).

    • ash

      You can define that via maps. I had same issue and I did the same

      • alacrify

        I've tried - it won't let me tell it "where I am right now is home". It thinks my "location is already optimized".

        • primalxconvoy

          Same thing with my work and home location. It was so bad that I just have up and disabled "Google Now/Search" and use a third party search app instead

          • alacrify

            I tried what Winkme posted (comment still "awaiting moderation") - I've adjusted to as close as I can (the house next door) and reported my address to Google. We'll see what happens...

          • ash

            Or you could just add your location. Via map editor

    • Winkme
      • alacrify

        Yes, I've tried them. Home is defined, but GPS for my (smallish town) home thinks my address is about 500 feet down the street. So "remind me when I get home to start the laundry" will never trigger.

        • janz

          So the map itself is incorrect? If so use mapmaker to correct it.

  • imaguest

    Imagine Waze being an extension to maps instead of a different app. That would be great, specially for Android Auto.

    • justinmbarlow

      Jacqueline implied I'm taken by surprise that a mom can earn $8130 in 1 month
      on the computer . see post C­a­s­h­f­i­g­.­C­O­M­

    • helenjsmith

      My Uncle
      Riley got an almost new red GMC Canyon just by some parttime working online
      with a laptop. visit their website C­a­s­h­f­i­g­.­C­O­M­

  • RobertSGrant

    Start working at home with Google! It's by-far the best job
    I've had. Last Wednesday I got a brand new BMW since getting a check
    for $6474 this - 4 weeks past. I began this 8-months ago and immediately
    was bringing home at least $77 per hour. I work through this link, go
    to tech tab for work detail

    ✒✒✒✒✒✒✒✒✒✒ Jobs700.com



    Oh, just post it!

  • RobertSGrant

    Start working at home with Google! It's by-far the best job I've had. Last Wednesday I got a brand new BMW since getting a check for $6474 this - 4 weeks past. I began this 8-months ago and immediately was bringing home at least $77 per hour. I work through this link, go to tech tab for work detail

    ✒✒✒✒✒✒✒✒✒✒ Jobs700.com


  • primalxconvoy

    Does this mean that there will be third party apps that can use Google Maps but via their own interface? I absolutely loathe the official app. It seems to not be user friendly and completely unintuitive. It doesn't even support copying and pasting addresses from the mobile web version (which work fine) to the app! How badly designed is that?

    I'd be so happy if someone else just made a better free maps app for Android.

  • Christopher Orr

    The hint is in the text "Report blue dot issues" — all of the "Are you at" and "Not at this place?" stuff is already live in 8.2: just tap on the blue location dot.