[MUSIC PLAYING]
LAURENCE MORONEY: Welcome to Coffee with a Googler.
Today I'm going to be chatting with Peter Lewis, who's
a product manager here at Google,
and he's working with beacons and showing us
all the wonderful things that can
be done with beacons and the types of applications
that you can build.
And if you've ever built any applications with beacons,
the one thing that I would love to share with you and the one
thing that we're going to be talking about
is just how much innovation is going on in that space
and how much there still is to learn.
For me, I had been building some applications
and I didn't realize the power that
was available from the Google SDKs
and the various APIs and platforms that are out there.
So we're going to learn all about that,
and hopefully there'll be something useful for you
with some instructions on how you can get started.
So we're taking a little break from Firebase
and shooting Firecasts and Ask Firebase and all these shows
to have one of my favorite people
at Google, who works on one of my favorite technologies,
beacons.
And Peter, welcome, and thanks for coming all the way
from the UK to chat with us.
PETER LEWIS: Thank you for having me.
You're one of my favorite people at Google as well.
LAURENCE MORONEY: Aw.
PETER LEWIS: So it's great to be here
and talking about the technology that I work on.
I'm a product manager in Google's location group.
And one of the things that we work on
is the Google Beacon Platform.
LAURENCE MORONEY: OK.
PETER LEWIS: Which includes Eddystone,
which is a beacon format, and a bunch of cloud and mobile APIs
for interacting with beacons.
LAURENCE MORONEY: So just as a little bit
of a reset for people who aren't familiar with them
or have used them or played with them, what exactly are beacons?
PETER LEWIS: These things are really simple devices.
All that they do is repeatedly broadcast an identifier.
And that identifier marks an important place
or an important object in a way that users' devices understand.
So they give phones a good idea about what
matters in their environment.
LAURENCE MORONEY: OK.
Here in Google, we've got these beacons all over the place
so we can have apps that say we're in a particular place.
We're in a conference room or we're
in a microkitchen or something along those lines.
So what kind of ways would beacons--
are they used outside of Google in the real world?
PETER LEWIS: They're a location technology, and location
matters in many apps.
Almost every app that you download
cares about where the user is so they can deliver a contextually
relevant experience.
And the Beacon Platform is about taking that to the next level,
about providing more reliable place detection and also
more precise place detection.
So what that means is that if you're
building a feature in your app that takes account of the fact
that a user is in a particular place,
that can become more precise, and it can trigger more
reliably as well.
So beacons are a great way of providing the signal
that a user's device needs in order
to be able to deliver that kind of experience.
LAURENCE MORONEY: So I've done a little bit of beacon
development myself, and in my case
it was kind of primitive, where I was just
turning on the Bluetooth stack and sniffing for beacons.
And if I detected a particular one,
then I could respond to it.
But I know you've got a platform that makes
all of that so much easier.
PETER LEWIS: We wanted to take beacon development
from something that only experts could do and then make it
into a platform that's really easy for developers
to get started with, and really to see something happening
pretty much immediately when they
start developing with beacons.
So the way that we've done that is
to make it so that you no longer have
to care about the individual bytes
that the radio in this thing is broadcasting,
and VLE frequencies or whatever, and really
to focus on what the functionality that you
as an app developer want to enable is.
So the way that we've done that is we've
made it so that the identifier in the beacon
just points to a cloud resource that you
can update via an API, the Proximity Beacon API,
or directly through our web dashboard
that we have on our dev site.
LAURENCE MORONEY: OK.
Always good to have a dashboard.
PETER LEWIS: Yeah, absolutely that.
And the idea is that once you've deployed the infrastructure,
once you've marked all of the places that you care about,
you can associate lots of different information
with those places.
And then you can get that information
back to your app using the nearby API in Android
or the CocoaPods that we have for iOS as well.
And the experience for a developer
shifts away from, I'm looking for these particular bytes
that I have to keep track, or with this particular beacon,
all that kind of thing, and more towards, in my app
I just create a subscription that says,
tell me when I'm on platform 9 at King's Cross Station.
LAURENCE MORONEY: OK, cool.
And does it work when you're on platform 9 and 3/4
as well, just--
PETER LEWIS: Absolutely.
But we don't talk about that with muggles.
LAURENCE MORONEY: Fair enough.
So one of the things that I found
when I was building apps for beacons
was that it was very much like a single beacon, single use.
And I just didn't have the imagination to go beyond that.
So I was writing a game that said, OK, when
you're in this location and when it detects
that you're in this location, then it
will unlock a part of the game.
And then you do that part of the game,
and then it tells you to go to another location.
And then when you run over there and it
sniffs the beacon at that location,
then it unlocks the next part of the game.
And it was really fun and it was kind of interesting,
but it was like a single beacon for single use.
And I know you're really looking into more interesting scenarios
than that.
PETER LEWIS: In the olden days, the way
you developed with beacons was to decide
there was a particular feature of your app
that you were going to point at with a particular beacon.
And that approach really wasn't something
that scaled nicely, either for developers or for the platform.
And I think developers found very quickly
that they had to start building and managing
large databases of their beacons that
were very difficult to share with other developers or reuse
or all of these things.
So it was a bit of a pain.
We, with the Google beacon platform,
have shifted away from that model
of one beacon for one feature in one app
and towards a model where you deploy the infrastructure.
You mark all of the places that matter,
and then you decide what you want to do with them per app
that you're developing, really.
So you can get lots of different functionality
from the same set of beacons.
And that's a power that really comes from the fact
that we treat beacons as cloud objects within Google's Beacon
Registry.
So this is part of Google Cloud Platform.
You register beacons with the Cloud Platform,
and once you've done that, you can associate blobs
of information with beacons that are meaningful
not only to your app but to other developers' apps,
to different bits of apps, and there are
many different permutations.
So we were one of the APIs is to use Cloud Platform's identity
and access management console.
This is a tool that allows you to share resources in Cloud
Platform with other developers.
I have a platform project and I might say,
I want you to be able to fire up App Engine instances.
I can also say, I want you to be able to use beacons that
are in my beacon network, for example,
and build experiences in your app based on my infrastructure.
LAURENCE MORONEY: Got it.
PETER LEWIS: And all of these permutations
are possible with the Beacon Platform.
LAURENCE MORONEY: Is there a concrete scenario or an example
scenario that we can think of where
if I've got an area with lots of beacons in it,
how I can use those beacons in multiple ways?
PETER LEWIS: Absolutely.
So one of the things we're most excited about recently
is that the city of Amsterdam has been deploying beacons
throughout the city and then making
them available to developers throughout the world.
So the way they do that is they go and do
the hard work of sticking these things up
to bus stops and buses and trams and things like that.
And they associate some information with those beacons.
So they might be this bus stop ID or the routes of buses that
stop there, that kind of thing.
And they use a new feature in Proximity Beacon API that
allows them to make those blobs of data publicly accessible
to any developer.
So what this means is if you want
to build an app that uses Amsterdam's beacon network,
you just have to write code in Android Studio
or for iOS using the CocoaPod.
And this means that you can take advantage
of their hard work deploying beacons
and actually enable new contextual functionality
in your app.
LAURENCE MORONEY: Interesting.
Where would I get started?
PETER LEWIS: So the easiest way to get started
is with just a few beacons on your desk,
exactly like these beacons here.
We've worked with many beacon manufacturers to make sure that
beacons are correctly broadcasting Eddystone and have
full support for the Eddystone specification that you can
order from our developer site, g.co/beacons.
LAURENCE MORONEY: g.co.beacons.
PETER LEWIS: We have on GitHub, we
have a set of beacon platform samples,
so GitHub Google beacon platform,
and that has some sample apps in it.
In terms of SDKs, really the most important thing
is to make sure you're using the nearby API, which is
part of Google Play Services.
So this is an API that lets you as a developer focus
on, tell me about this kind of information,
and it takes care of the beacon scanning for you,
works out whether it has that kind of information associated
with the beacon, and then just returns it
to your app as a message.
LAURENCE MORONEY: Oh, nice.
As a difference that-- just how valuable
that is when I was writing my app.
It was like there were hundreds of beacons around me,
and for a particular one, I was getting the ID
and I had to maintain a database to query, oh,
if you got this beacon, then here's the data,
or here's the things that you want to do associated with it.
So all that's taken out of my hands.
PETER LEWIS: That's all taken away so
that you can focus on the feature that you want to build.
LAURENCE MORONEY: Super cool.
PETER LEWIS: Making your app contextual
is difficult enough as it is.
LAURENCE MORONEY: Yes it is.
PETER LEWIS: Making it so you can focus on the feature
is really important to us.
LAURENCE MORONEY: Cool.
PETER LEWIS: We also have a code lab.
LAURENCE MORONEY: Ah, OK.
PETER LEWIS: Yeah.
So there's a Hello Beacons code lab that you can do,
codelabs developers google.com.
And that will walk you through creating a nearby subscription.
So what this means is that you can essentially
write a piece of functionality in your app that says,
tell me about beacon messages that
have this namespace and type.
LAURENCE MORONEY: And then it will just go and find them
for you.
PETER LEWIS: Exactly.
LAURENCE MORONEY: Cool.
Well, thank you so much, Peter.
So if you've been juggling in how
to get started with beacons, well, we've
got a great website for you.
Just go to g.co/beacons.
You can download everything.
There's samples.
There's documentation-- everything
you need to get started with building applications
in this wonderful technology.
Thank you so much.
PETER LEWIS: I did it.
[MUSIC PLAYING]