Hello everyone. Thanks for joining us
for Google NYC's annual TechTalks series. I work for Waze which is part of Google. This year we're excited
to tell you how we're making Waze a great experience for as many people as possible. My teammate Eytan
is going to talk today a lot about us getting ready to work with Apple's CarPlay as part of that effort.
So my name is Jon, I'm Jon Sharkey, a software engineer and manager here at Google. I work on mobile apps. A lot of ios and I'm learning Android stuff too.
At Google I worked on Google plus, Google Play and now for Waze. I worked at other companies
to be sure that Google is the best one. I worked at Facebook, Reddit, and a bunch of mobile game companies as well.
I'll tell you a bit about Waze. Many of you have used Waze before. I'll tell about the history. It started in 2006.
Someone named Ehud Shabtai invented something he called free map Israel. He was an Israeli engineer and wanted good maps
for Israel. He made an app for his palm pilot or something similar to that. This
is preiPhone days and Android as well. Waze was founded in 2008. Waze was acquired
by Google in 2013. After it became a huge hit and google thought it was great so google
acquired them. Waze is still headquartered in Tel Aviv. What is Waze? It's like a gps
based app for driving. It has a reputation for accurate time estimates when driving.
It's really good at that. Another thing it does is it's more fun and social than other
driving apps. You see icons on the map of other users. You get to report things like
accidents and potholes and feel like you are contributing. Almost all the data on Waze
comes from the community including the map itself. The map was defined by where people
drive which means Waze was very accurate and up to date. Now that Waze is part of google,
it was able to grow in its own way while being part of google. I work for Waze now and it
feels like working for a smaller company within google. We get the freedom engineer things
that work for us. Our team is small. We get to build the products in the way we
want. Being part of google gives us access to lots of great resources and people and
ideas and talent. And working with all the google teams have been great and I like that
there is a variety of ways to approach things at google. Waze is headquartered in Tel
Aviv but we've been growing our presence in New York. I used to be based in California
but the time zone from Tel Aviv to California was difficult. So we've been growing engineering
in New York and it's been great. Waze is a global business, there are employees in Paris,
Singapore, lots of other places too. Here in New York Waze has about 80 employees.
We're growing. Marketing, PR and sales and engineering. There are two main teams in New
York. One team works on ad infrastructure, the infrastructure that helps advertisers
set up campaigns. My team is the platform team. And we do all Android and ios development.
And platform means two things. We work on sdk's that integrate with partners for example
Lyft and Spotify. And we work on in-car platforms which means if your car has a screen and a
dash board that runs software, we make Waze work on those things. There are competing
standards, smart display link, web link, apple's carplay. That's what we're going to talk about
today is making Waze work on apple's carplay. We want Waze to work for you no matter what
your driving situation is. >> So we're going to talk about this today.
A few housekeeping things. There is wifi here. It's google guest. There is no password so
just connect to it. If you need the restroom it's to the left outside. If you have any
questions grab anyone in a google shirt or Waze shirt and we'll help you out. So we're
going to have a tech talk followed by a q and a and another reception and you'll be
done at 8:00. I'll introduce my colleague. He does a lot of ios development for us here.
He's been doing most of the carplay work. And he's going to tell you about carplay and
their unique partnership with apple to make this happen. He's an engineer on the platforms
team. Previously he worked on search, google maps. So here is Eytan. [applause]
. >> Thanks Jon. I'm excited to have the opportunity
today to show you just one of the things we're working on at Waze to make sure driving is
always a safe experience. Many new cars come with a dashboard display that let's you
connect your smartphone and listen to music, podcast, send messages and navigate. We made
Waze available on Android auto last year and we're excited this fall apple's carplay will
support third party navigation apps such as Waze and google maps. If you have not used
it before card play is a safe way to use your phone in the car. You can stay free of distractions
while you drive and it's supported by many car manufacturers. The way you interact with
carplay is different depending on the model of the car. Some have rotary knobs, others
have touch screens and others have buttons to navigate through the various elements on
the screen. During apple's announcement of support for third party navigation apps
in June, they chose to feature Waze as an example of an app running on car play. The
screen shot they featured was from a prototype they built in about a week. The announcement
for support for third party apps was really well received and we saw a ton of posts on
social media from excited Wazers looking to beta test Waze on carplay. To have the opportunity
to develop that prototype with apple, a few engineers from Waze worked closely with engineers
on a version of carplay in May. To prevent news from leaking a small number of people
knew about the project even within apple. When we worked at apple's campus we worked
in an almost entirely empty building to make sure it stayed that way. Before I jump into
the carplay framework, I'll give you an overview of how the Waze is structured. So there
is a few major parts. The ios code, Android code and common code. Common code uses c and
c++. And for each platform you have native code that runs things like ui and other things
like that. The common code handles things like complex business logic, network protocols
and real time rendering. Pretty much anything you wouldn't want to
write more than once which is great because that ensures you have consistent behavior
across each platform. The best example of our common code being a big success is the
map we show on Waze. It's built using open gl. Since the map is such a complex component
it's always moving and updating and developing. On top of all of that common code that is
shared between Android and ios, we have dedicated code for ui and platform specific code for
location, sounds that might be specific on Android or iPhone. There is a lot of pros
or cons having both apps rely on all this common code. We can fix a bug in both with
just a single code change. This means the behavior between both platforms stays consistent.
That is important for testing as well as making sure the experience stays consistent. Whether
you are using the app on Android or iPhone, you can tap the same button and it will do
the same thing on both phones. Sharing so much code does have a cost. In order to work
way common code on each platform, Waze engineers have to be experienced with c, c++ and how
they interact with the native language. So if you are ever considering sharing code between
platforms take time to look at the pros and cons to see if it's the right thing to do
for your project. So now that we have background on the Waze code base. I want to show you
around the car play framework. Carplay provides a fixed set of templates that ios renders
from the phone on to the car's screen. It let's us decide how to create and configure
the templates so we can focus on delivering a great experience without worrying about
testing with every different carplay to make sure that it works with a specific resolution
or specific kind of car control. So to develop an app, navigation app on carplay, the first
thing we need to do is make app conform to carplay's app delegate protocol. Once we do
that, we're notified anytime a carplay screen is connected or disconnected from the device.
Each method includes references to cp interface controller and cp window. We use both to create
the carplay interface for Waze. The interface controller is responsible for managing the
templates that we present on the carplay screen. This is a map template. It has a map. And
you can zoom, pan and all that kind of stuff. Window is where we draw the map as well as
any raw elements that don't require user interaction. For example the speed limit sign is a subview
of cp window. So aside from navigation, car play provides templates for presenting different
kinds of information. For example a grid template to show a limited side of buttons or list
template to show a longer set of options such as hazards you can report with Waze. A couple
of other useful templates that car play provides are the search template for presenting things
like auto complete and search results and voice control. Voice control lets us listen
for voice commands like navigate home or report an accident. This goes a long way to making
sure that car play requires the minimal user interaction so when you are driving you can
keep your eyes on the road and off of the display. And then on our map template, we
can call start navigation session for trip. That will give us a cp navigation session
which we can later use to provide a list of turns as well as updates to things like the
eta and distance remaining for that trip. So while you are driving if we ever need to
present new information to you such as a road closure or traffic ahe had or possibly a reported
speed trap, we show a navigation alert through car play. This alert let's you confirm whether
or not the report is still active. You can contribute to the community and help other
drivers who are driving along the same route. >> Here is a quick demo of Waze on carplay.
You can see turn by turn instructions. Traffic and incident alerts, and speed limit indication.
>> In one mile, turn left on canal street. Heavy traffic reported ahead.
>> This was earlier. This is a real route. And that's it. I'd like to thank everyone
for joining us today and be sure to look out for Waze on car play in September. We have
time now for q and a. I believe we have microphones in the aisles if you'd like to use those.
>> Good evening. Thank you for inviting me and having me. It's been a great event.
I have a question about the common code base actually. Now that we have Kotlin for developing
Android apps and a bunch of people are working on Kotlin multiplatform, do you have plans
to migrate the code base to something that is not that complex because you mentioned
there is pros and cons. One way to remediate that is having one single code base in one
language and I think Kotlin is a nice thing to equalizer. Thanks.
>> That makes sense. There is no specific plans for Kotlin. There is lots of other
solutions. There are ways to run objective c on Android phones and java on i phones.
It would be technically possible to have a unified code base. The difficulty with Kotlin
is I guess on iPhone you still have to bridge to swift or objective c or the ios ui
and api's. I think the main thing stopping us from doing something like that is it would
require ary write of everything which would bay huge investment. There is no plans to
do that in the in each future. If we did I think Kotlin would be considered.
>> Do you plan to use something else? Do you plan to rewrite your map stuff?
>> Deprecated but they didn't give a date for deprecation. So in the short term, the
answer is no. I think the way this we have our open gl code structure, swapping out rendering
part using metal wouldn't approximate as big of a project as it might sound. We can still
use a lot of the code that we use to calculate and draw the elements. But metal would be
what is drawing those on the screen. If they deprecate gl it would be graphic rendering
for ui? I guess not. >> That was also my question. I was going
to follow it up with did metal on ios, what would you do on Android?
>> I think on Android it's still supported if I'm not mistaken. I mostly do ios so
I don't know exactly. I don't think there is any plan to deprecate open gl for Android.
>> If you wanted to share your rendering pipeline, are you aware of anything?
>> It would cause to us fork. We still have some shared code for the map. But a lot
of the rendering would be split between platforms. >> Thanks.
>> All these features you displayed and is it in common ios and Android apps?
>> We have a qa team. So we have full time qa staff who help us
test things and they develop test plans and do a lot of the testing. We also have a
data community. We have thousands of people who want to use prereleased versions of Waze
and we'll send them out to them. That helps us test many times more situations than we
can test on our own. So a combination of those. >> And while we're developing we use assimilator
and also units for car play for example. I have a head unit sitting on my desk even
though I'm not in a car, I can still work as if I was sitting if a car. So I have
a closer connection to the actual experience rather than just doing everything on assimilator.
>> And just my followup question s unit testing the only type of white box testing you do
or you do more testing of code coverage testing statement coverage testing, all those types?
>> We mostly rely on qa. Because some of the situations are so complicated that running
the unit tests wouldn't cover every case. But also it's just a matter of cost. It's
much faster to run through regression tests we know exactly how the test than set up all
the infrastructure for unit testing and to have that run all the time. That's the way
that Waze decides to do it. Other teams do things very differently. They have unit test,
full coverage, like you mentioned. It depends on the project.
>> Thank you for the talk. Getting back to the common shared code between ios and
Android, you list c and c++is used in that code base. What parts of the system are
you choosing to build in straight c and why versus c++ as they are often listed together
but different and separate languages. >> Sure. I think a lot of the earlier code
that was written back this 2008 was mostly c. We still use a lot of that today. Kind
of as like the foundational classes for a lot of the stuff that we do. And because
of that it's already there and it works and has been tested many times. So for those things
they are mostly inC. For a lot of the things like networking and business logic, typically
in c++ and definitely the plan. >> Mostly historical reasons. If you were
to build it today, would you make the same decision or build mostly in c plus plus?
>> A hard question. I would pick c++ over c and I'm not sure everyone else would agree.
>> I'm also not a huge c fan. I'm comfortable and objective c but I think c++is a good choice
for sharing code. >> I have a question. I'm an educator. Just
curious about your background in terms of how you got involved as application developers
and what led you down this path. Seems like you've done a lot for being fairly young guys.
>> I'm older than I look, 35. I start when had I was a kid with the game programming
because I wanted to learn how to make video games. I learned how to make art music and
coding is what I was good at. I learned a lot about I learned open gl and
c plus plus and then I studied computer science. I worked in the game industry for a while
and realized working for Google is way better than working in the gaming industry. And
that was my path. I studied computer science. Pretty traditional educational route.
>> Mine was similar. I started doing summer programs starting in seventh grade focused
on different topics but programming like a Lego robot to find a center of a maze or something
like. That and that's what put my on the path. But same education, computer science
degree. I worked at a startup out of college. And that's where I started learning ios.
And they needed another ios person and I was there so they threw me in and said here is
the code, learn it and fix all these things. >> we've worked with great self talk people
and people that do boot camps too. >> Absolutely.
>> Thank you for coming. I guess I have more of a user friendly and solution question.
So I notice more with Waze a lot of times it takes you the faster route but it goes
on the side street, around the corner, maybe around another corn tore get you back on to
the same street. What kind of tech updates are you working on to make it more user friendly?
>> So you don't want to have the crazy routes even if it saves a few minutes.
>> It saves maybe a minute. >> I know there has been talk of letting you
choose. Do you want to have take a couple minutes longer and take fewer turns and letting
the user have more choice over that. I can't speak to when those features will launch or
if they will launch there. Is talk about that. In Los Angeles Waze
was having people do left turns they thought was too dangerous. There is a toggle. You
can say don't give me any dangerous left turns. Features like that are coming.
>> As a single driver in a car, you don't always have the flex to believe go into all
those preferences. >> Yeah. It would be hard to choose those
preferences while driving for sure. I'll take that as good feedback.
>> Thank you. >> Thanks for your talk. I'm curious how
Waze manages events. How those navigation alerts go to the relevant cars, how do you
validate it? >> So we receive a ton of reports from users.
And I think we aggregate those. And once we are confident enough that a report is valid
and actually exist where you say it exist, then we start showing it to other users.
And the second part of that is giving you the option to tell us if the report is no
longer there. If there is an accident but it cleared up or if there was a pothole but
now it's fixed. So you can say it was there, no it's not there and that kind of builds
into the feedback. >> How decides what to show you is like it
knows what route you are on so it know which is alerts have been reported on that route.
And the one that it's the most confident in being correct and true it will show you. This
is where I hesitated there. Is an allegory rig Tom decide which ones are
important and I don't know about that one. >> There are more alerts than you want to
see so we choose which ones to show you. I don't know how to tell you how it chooses.
There is a team of people who think about these things.
>> Some complicated code of cluster alerts. If a bunch of people report heavy traffic
anyway short distance, we bring them together to one point and on the map we show you a
traffic icon with the number of reports. So you don't see a ton of pins for the same
thing. That's just one example. >> Thank you.
>> You were mentioning earlier that you use a specific type of templates. I was wondering
from a user experience perspective how do you guys collect user pain points or come
one ideas to make the experience better? >> So for car play it's one of the nice things
is a lot of the control is delegated to the framework. We can't move a lot of buttons
around. It's kept very simple. Specifically for that reason. I think apple
did a lot of research and user studies before deciding to develop.
>> We have community teams you were asking about ux and getting feedback from
users W. very a community team who manages social media and forums. You can send feedback
through the app if you want to report a bug or have a complaint or tell us we're doing
a good job. You can send feedback through app there.
Is a team that helps the product people and designers and us engineers know what the problems
are. >> So now that you are part of google, how
do you see their roadmap of Waze and google map being right now you have two products
competing with each other or not. >> Google maps and Waze are separate teams.
Being separate teams help Waze focus on the things it wants to. Waze is focused on driving
and google maps does other things too. It allows Waze to innovate and try new things
that might be difficult for maps to do. I don't know the answer for long term, but
in the near future Swayze going to stay a separate app so we can try things and run
separately from maps. >> And do you share the information or knowledge?
>> There is some information sharing. For example accident reports and Waze some of
that data maps uses. When Waze is runched in new areas, I think we've helped taking
data to help build that there. Is collaboration between the teams.
>> Can you talk about partnerships. How receptive have manufacturers been with Waze
navigating as the native navigation app or is the only progress been with apple at this
point? >> There is other ones too. There is smart
display link which was built by Ford originally. They open sourced it or made it available
to other people as well. There is a company that makes technology called web link, we
support that. So generally people have been very supportive. Everyone wants Waze on their
platform. So it's been nice to have a lot of support from these companies to getaways
working. >> There is a Waze branded car called the
panda. It has Waze logo on the front. And it's called the fiat panda. I think our
partnerships team do a great job of reaching out to many different companies and working
with all of them. >> Is that what you drive?
>> I think it's only available in Europe but we want to import one. If I could get the
expense approved I would buy it. >> I'm curious about the societal use of all
the data you have. You have incredible data of where millions of people are driving.
You know where crashes are on a real time basis. You have thought about the different
ways that this data could be used and one example is if you know people are driving
the same way you could set up car pools and limit the number of people using roads.
You could flag dangerous left turns. You know where and when there are more crashes
and you could navigate people away from more dangerous intersection at different times.
There is all kinds of things you can do with this aggregate data, how much are you thinking
about ways you can use that data? >> There is a team at Waze called the connected
citizens program ccp. And they work with city governments and organization to help
use Waze data. Can we detect where dangerous areas are in terms of crashes, I wouldn't
be surprised if we do something like that. I don't know much about that. And then what
was the other part? >> Car pooling. So have you heard of Waze
car pool? There is a program called Waze car pool. I used to work on that too. Now
I'm on these new projects. Waze has a car pooling system. It connects Waze is heavy
on community. This connects Waze users who want to share a ride to work together there.
Is an app called Waze car pool and you can download. Hopefully in New York soon. In
one weekbe here in New York. >> This may already exist or not, Waze is
very good about showing you on your route where the cops are in front of you which I
love. Does feature exist or is there a plan for the feature to exist where it can show
the cops who are advancing from behind? >> I like the idea. I think now there is.
I think now there might be some plan. >> The problem so the reports we do are for
more static nonmoving things like potholes or road kill and police waiting for you on
the side of the road F. they are moving I don't know if the reporting system would work
but it's an interesting idea. >> Thank you.
>> How do you and your product team tackle feature creep.
>> Good question. We implement all the features. >> We my strategy which is what I would
say is we can't do all of , this just prioritize them, put them in order and we'll do what
we can. We'll have an estimate. I think it's reasonable to get these done
in the next few weeks. The answer is just like pushing back, we can
only do so much so we have to decide what is the most important.
>> How do you do you actively reevaluate your app and remove certain features that
just aren't panning out? >> That's a good question. Do we ever remove
features? I can't think of any specific examples. So car pool, I mentioned car pool is a feature
in Waze to share rides. There is a money exchange to share gas and wear and tear on
the car. You could set your own price used to. You could be like I want to get a ride
and I'm willing to spend $12 oint. Now the system tells you what the price is. It was
not work when people set their own. >> Could you talk about the process of collaborating
with a team based in Tel Aviv and maybe some of the challenges of doing that engineering
and if there are any cultural differences with regards to engineering you've had to
bridge had. >> I think in terms of like time zone and
location, you have to stay organized and know who is doing what and also if I have a question
about something someone else wrote, an easy way for me to find who that is so I can ask
them and learn from them. On the other side maybe you can give insight about the culture
difference. >> Yeah, the culture difference, well, Waze
started as a very small company where everyone was in the same room and working together.
Which meant less documentation maybe than is necessary for a big global operation. And
one of the ways that was described to me is that Israelis are high context communication
and we are low context communication. Which means their manuals are short and assume you
understand what they are talking about. And Americans write long emails.
So little communication style differences that took getting used to. Code is code
wherever. For me the biggest issue is time zone. Their weekend is different. They take
off Friday Saturday. If it's like if they come in on Sunday morning and they have a
question for us they won't hear about it until end of day on Monday and this is who two whole
days. That's a challenge. It takes planning. >> Lots of communication, take advantage of
the few hours we overlap for four days a week. Lots of flights back and forth.
Working face to face with people is huge. If I know someone face to face it's easier
to communicate with email when I get back so that helps a lot too. It is challenging
and I think knowing each other well and trusting each other and having independent projects
helps. >> If you guys had a month where you weren't
being told by the product managers what to do, are there any features you'd want to develop?
>> Any ideas? >> I haven't had time to think about the features
I want to make. I would make the mode where Waze makes you go in a straight line and don't
take crazy routes. >> Itches wondering how you determine reports
of an event reflecting the real state of an event whether that is just the base or strategy
Cal testing. Curious if that track as cross regions with less user density if Waze doesn't
function as well in rural Utah or something as opposed to New York city.
>> That's a great question. Waze does work better in dense environments for that reason
but it works wherever. In terms of the allegory kittles , this goes back to a previous question
where I'm not the expert on that and don't know. I imagine they use strategies like
you mentioned but I don't know the answer to that.
>> I'm not sure either. I've head read they lot of people are trying different things.
So it might be statistics now. Someone might be experimenting with something new in the
future. >> We'll take these last two.
>> Do you have any plans to integrate? >> With autonomous vehicles? I know that
people who have Waze have talked to people. I don't know what the plans are. I'm excited
for it. Whatever it ends up being. >> Thanks for the talk. Do you target the
lowest common denominator. How does that work with your testing. I guess the pixel
it was last phone I had that was Android. It's a cool feature that will populate and
work in Don junction. Any plans running that to ios.?
>> Not familiar with that feature. What was the second feature?
>> 60k is that target for all cars. >> Waze if you have a reasonably new phone
will render the map at 60p. What's on the unit is dependant on the technology. Some
of them run at a lower frame rate that is still usable. A lot of it depends on the
technology for the unit itself and less on Waze.
>> Most of the car units are at 20 or 30. There is a few high end ones like in Mercedes.
I think they run at 60. Those are really nice displays.
>> Any plans to move code to swift? >> There has been talk about it for sure.
I don't know if there is any plans yet. >> No specific plans.
>> And there was a second part to the question. >> Cards populating in the google now app.
Google maps cars and Waze would say check this out too. They would work hand in hand.
Get the best of both worlds in one ui versus going to independent apps.
>> Specifically with google now. >> It was google now on.
>> I carry an iPhone most of the time so I'm not familiar with it.
>> Thanks guys. Good luck. >> OK.
>> Thank you and I believe there is dessert outside. Thanks for coming. [applause]
Không có nhận xét nào:
Đăng nhận xét