TIMOTHY JORDAN: Hello, and welcome
to "The Developer Show."
Let's start with the TLDR.
Zooshi!
Is a new open source cross-platform game written
in C++ that demonstrates how to build games using a suite
of newly released and updated open source game technologies
from Google.
Click the link below in the description
to check out the six recently updated open source
tools you can use in your game.
Jason Sanmiya is the TL for Zooshi! and is on the show
today to tell us more.
JASON SANMIYA: Great to be here, Timothy.
TIMOTHY JORDAN: Happy birthday, Go.
[PARTY HORN]
[LAUGHTER] You've just turned six,
and you have over 780 contributors with 30,000
commits in 22 repositories.
Thank you to everyone in the open source community who've
made Go what it is today.
Create virtual machines with exactly the amount
of power and memory you need, using custom machine types
on the Google Cloud platform.
No more rounding up to a power of two
and wasting money on unused resources.
A bunch of network performance and flexibility improvements
have recently come to the Google Cloud platform,
including the general availability of HTTPS load
balancing, segmenting your IP space
with sub-networks, dynamic routing
on Cloud Router for seamless connectivity with no traffic
disruption, and the ability to use Akamai
as a CDN interconnect provider.
30% of all smartphone sales worldwide
happen in the last three months of the year,
and ad impressions spike by nearly 30%
between October and January.
This makes January an excellent time to promote your app.
Check out the infographic linked below in the description
for more.
So this next part isn't exactly developer related.
But if you love "Star Wars," check out google.com/starwars
to add a little light side or a little dark side to your Google
experience.
Find out how Fablic improved sign-ups by 30%
and increased retention by 20% using Material
Design in Android Studio.
The video is linked in the description below.
App builds and deployment are both faster with Android Studio
2.0.
The new version features instant run,
a feature that will dramatically improve your development
workflow.
More on this later in the show as I
get the inside scoop from product manager Stephanie
Cuthbertson.
Speaking of Android, the Android Dev Summit has wrapped.
We had a great time meeting developers and talking
about all things Android, and we've got a few more clips
to play from the event as well as Joanna Smith on the show
today to share more about what went down
at the Computer History Museum in Mountain View, California.
JOANNA SMITH: Hi.
TIMOTHY JORDAN: All that and more today
on "The Developer Show."
OK, so the Android Dev Summit has wrapped.
Let's actually start with a clip to see
what it was like on the ground.
[VIDEO PLAYBACK]
Hey, everybody, I'm here with Chet Haase,
who leads the Android UI Toolkit team.
CHET HAASE: We talked about some of the overview information,
and then a deep dive on memory.
So what we wanted to do this time was talk about some
of the higher level concepts that you need to keep in mind
so that you understand the context that you're
developing in.
MALE SPEAKER: I think what developers
don't think about is that notifications
are the first place often the users come into their phone.
And that's your opportunity to build trust,
to deliver information that they need and they can act upon.
[END PLAYBACK]
TIMOTHY JORDAN: So that's what it
felt like to be on the ground at Android Dev Summit this year
at the Computer History Museum here
in Mountain View, California.
One of the things that I realized about conferences,
and I think we share this philosophy,
is that these sessions are great.
And, by the way, you can see all the sessions-- play list linked
below with all the links.
However, another thing happens at conferences,
which is the conversation in the hallways between sessions.
I was hoping that-- I mean, you were there
for the entire conference.
JOANNA SMITH: I was.
TIMOTHY JORDAN: --you'd give us a little bit inside about maybe
what were the three top conversations happening
between developers at the event?
JOANNA SMITH: So obviously, the one
I noticed the most were all the questions about Doze and App
Standby because that's what people like to ask me about,
which is great.
Ask me questions on Twitter.
It's fine.
JASON SANMIYA: I love Doze mode.
JOANNA SMITH: It's the hero of Marshmallows, you know that?
TIMOTHY JORDAN: It really is the hero of Marshmallow.
JASON SANMIYA: I never plug my phone in anymore at night.
I just let it doze.
JOANNA SMITH: You doze with Doze?
JASON SANMIYA: With me, yeah.
JOANNA SMITH: I like that.
So Doze mode's clearly a really big topic, and a lot of people
have a lot of feelings about it.
And I'm happy to hear your feelings,
but you're probably wrong to worry.
So that's a great conversation.
And then, of course, Android Studio 2.0
was a huge moment because everyone's
excited about being able to actually develop
without having to wait every five seconds to see, like,
what did that change to my layout look like.
What did that change look like?
If we can enable developers to develop faster,
then I think they'll be able to build better
apps at a much better pace.
So I'm excited about that.
But the other thing that made me really happy
was people haven't stopped talking about Material Design.
Like it's still a core part of their development
thought now now.
And we've managed to take something
that people used to hate doing, unless you had a higher
designer, and make it a core part of their considerations.
Like people want beautiful apps that flow really well,
and I love seeing that.
TIMOTHY JORDAN: Great.
And the conversations that happen in the hallway, those
can continue online.
We have a developer community.
JOANNA SMITH: We do.
We have an Android developer community.
We have a lot of specialized communities for things
like performance or design.
And, you know, we're all on Twitter.
So our engineers and our Android framework team,
they look at the questions on G+.
They look at the community.
Give us a shout out.
Let us know what your questions are.
And then holler at us at Twitter, too.
TIMOTHY JORDAN: Great, and we'll put all those links down
in the show notes.
JOANNA SMITH: Tons of links in the description.
TIMOTHY JORDAN: Tons of links.
All right, let's go to an interview
I was able to do Stephanie Cuthbertson just after she
gave the keynote about Android Studio 2.0.
[VIDEO PLAYBACK]
Hi there.
I'm here with Stephanie Cuthbertson.
She's a Group Product Manager for Android and, of course,
one of the captains of Android Studio.
Android Studio, up until now, has been about a really strong
foundation.
But with 2.0, there's a whole bunch of speed improvements
across the board.
STEPHANIE CUTHBERTSON: When you look at 2.0,
you'll find the emulators changed dramatically.
The ADB speeds have improved massively.
It's now five times faster to push.
If you look closely, it's actually
34 times faster than it was in the last build
of Android Studio.
And we worked really closely with the search team
on deep linking.
And this is one of my favorite speed improvements.
Because if you think about it, as a developer,
you really want to make your app discoverable.
TIMOTHY JORDAN: Yeah.
STEPHANIE CUTHBERTSON: But it sometimes takes a long time
to read through all the documentation
and figure out how to do that.
And so one of the things that's magical about IntelliJ
is it prompts you in line for how to do things.
And with deep linking, Android Studio 2.0
will do exactly that.
I think you probably know what I'm
going to say what my favorite feature is.
TIMOTHY JORDAN: I think I do.
STEPHANIE CUTHBERTSON: Which is Instant Run.
TIMOTHY JORDAN: Yes.
STEPHANIE CUTHBERTSON: It's just amazing.
TIMOTHY JORDAN: It is so cool.
STEPHANIE CUTHBERTSON: Yeah, really
what's cool about it is it really
changes mobile development so it's much more like web style
development.
So now you can just make a change
and see it refresh, more or less,
instantly, which is very much like doing development in HTML.
TIMOTHY JORDAN: It's like refreshing the page.
STEPHANIE CUTHBERTSON: Yeah, yeah.
When we look at profiling Android apps,
we found around 80% of Android apps
will build in a minute or less.
And so an app that used to take a minute to build
is now going to take about one to two seconds
to push incremental changes, so that's quite a big change.
TIMOTHY JORDAN: Yes, that's incredible.
STEPHANIE CUTHBERTSON: Yeah.
TIMOTHY JORDAN: And we were talking a bit earlier,
and I thought it was really fascinating.
I was hoping we could share it with everybody out there,
about how you've landed upon sort of this direction,
like this feature, and the early days of building for it.
STEPHANIE CUTHBERTSON: We got together
with a crack group of engineers, some
of the most talented engineers in Android Studio,
which is a very talented team.
And our engineering director, Arno Weber, said, look,
we're going to make the build 10 times faster.
And the team went off over the weekend
and came back in and showed us a running demo of Instant Run,
complete with hot swapping for code changes
and instant run for resources.
And I remember it was my modeling at the time.
TIMOTHY JORDAN: Well, now we can do this.
STEPHANIE CUTHBERTSON: Yes, I remember
thinking to myself, that's not exactly what I had in mind.
That's about 10 times better.
So, in fact, if you look closely,
the build is not 10 times faster.
It's roughly 55 times faster.
We cannot say enough how grateful we are
to our community.
And Android, it's open source.
It's free.
And I'd say a lot of, if not all of the most significant
improvements that we've made have
come from us using the product ourselves,
and especially listening to the community's feedback.
So we're very dependent on the community.
We're very grateful to the community.
And so I I think with 2.0 coming out
probably one of the biggest things we want to say
is just thank you so much to that whole group of developers.
TIMOTHY JORDAN: Thank you.
STEPHANIE CUTHBERTSON: Yep.
TIMOTHY JORDAN: And keep the feedback coming.
And check out the keynote.
It's awesome.
Thank you, Steph.
[END PLAYBACK]
TIMOTHY JORDAN: And that's all you need
to know about Android Studio.
OK, let's talk about the Zooshi!
Jason, welcome to the show.
JASON SANMIYA: Thanks.
TIMOTHY JORDAN: So first, tell us
what is Zooshi! in, I don't know, 20 words or less.
JASON SANMIYA: Well, Zooshi! is a mobile and VR game
where you float down a mystic river feeding
sushi to animal patrons.
TIMOTHY JORDAN: That's 18-ish.
That was great.
So why do we make the game, and people may have heard of FPL.
What is FPL?
JASON SANMIYA: Fun Promotion Labs, that's my team,
is a team here at Google that makes open source
cross-platform C++ libraries for game developers.
So we found that there's a lot of developers out there,
the majority, in fact, who would prefer to roll their own C++
libraries or use open source libraries,
rather than lock into a third party game engine.
TIMOTHY JORDAN: So you make games so people can make games.
JASON SANMIYA: That's right.
It's a pretty tough job.
TIMOTHY JORDAN: It's a pretty great job.
For Zooshi! in particular, can you
tell us maybe some of your favorite features,
like for example, VR.
You can play the Cardboard version
or you can play the Mobile version.
It's the same game.
JASON SANMIYA: Yeah, that's right.
We talked to developers, and the big question that they have is,
is VR a big enough market?
And so our solution was well, hey,
maybe you can develop for both VR
and mobile at the same time, the same way
that you would develop, say, a PC game and a console game--
same game, different input schemes.
But you can basically develop them both at the same time,
and they're a little bit different experiences.
But game-wise they're the same.
JOANNA SMITH: So what I like about this whole thing
is that you've made the entire game open source.
So developers can actually see how you did that development
side by side and what you're able to reuse and everything.
But even cooler is you built this game,
and then you took the APIs out of the game, right?
Like you didn't build an engine and then build
a game for your engine.
You did it the way a developer would do it, right?
JASON SANMIYA: Yeah, we think the best game tech is
tech that comes out of a game.
So everything that we package up as an individual library
on GitHub was originally part of one of our games
that we generalized and made independent of everything
else and then posted on GitHub for people to use.
TIMOTHY JORDAN: And the whole game is open source as well.
So you can see the whole game, how everything works together.
And you can use any of the individual libraries.
JASON SANMIYA: That's right.
You don't have to grab the whole game.
You don't have to use it as one monolithic thing.
You can grab each individual piece and put it in your game.
JOANNA SMITH: It's like they love their developers.
TIMOTHY JORDAN: Let's move on to the next clip,
and this is Joanna's favorite topic,
JOANNA SMITH: Doze Mode.
TIMOTHY JORDAN: [INAUDIBLE] joins us
for this week's "Who's Doing What Now?"
[VIDEO PLAYBACK]
MALE SPEAKER: I've actually never seen that show.
MALE SPEAKER: You--
MALE SPEAKER: But I did read up on dynamic permissions
last night.
That's basically the only thing I need to think about
for Android 6, right?
MALE SPEAKER: Yeah, that's all.
Well, except for Doze mode.
MALE SPEAKER: Wait, who's doing what now?
MALE SPEAKER: Don't let this happen to you.
I'm right [INAUDIBLE] and this "Who's Doing What Now?"
Now, we all hate being interrupted
in the middle of a good nap.
(WHISPERING) When you're asleep, it's more important
that your device have battery when you wake up then
for every app to be continuously updated.
So if the device is unplugged, stationary, and with the screen
off for a significant period of time, it enters Doze mode.
Doze mode conserves battery by restricting network access
and deferring jobs, syncs, and standard alarms
to fall within periodic maintenance windows,
or until the user wakes the device by plugging it in,
turning on the screen, or picking it up.
Until that time, network access will be disabled for all apps.
Wake locks are ignored, standard alarm managers are deferred,
as are Wi-Fi scans, sync adapters, and the job
scheduler.
The goal is to optimize battery life by limiting
power intensive operations.
So, in many cases, you won't have to change anything.
But, if your app needs to update regularly or more frequently,
there are ways to handle that.
You can fire alarms while in Doze mode using the new Set
and Allow While Idle or Set Exact
and Allow While Idle methods.
An alarm set with Set Alarm Clock
continues to fire normally, causing the system
to exit Doze mode shortly before those alarms fire.
Now, if your app needs persistent connection
to the network to receive messages,
you should consider using Google Cloud Messaging, or GCM.
It lets you support real time downstream
messaging between back-end services and apps
on Android devices, using a single shared
persistent connection to the cloud,
significantly improving battery performance.
GCM is optimized to work with Doze
through the use of high priority GCM messages
that let you wake your app to access the network.
The Android team optimizing battery life
using Doze mode, that's "Who's Doing What Now?"
[END PLAYBACK]
TIMOTHY JORDAN: And that's our show for the day.
Let's end with our final question.
Panel, if you could add Doze mode to something else
in your life, what would it be?
JOANNA SMITH: Could I just doze through the work day
and still get my paycheck?
TIMOTHY JORDAN: Nope.
Jason?
JASON SANMIYA: How about my boss?
Because that guy's always plugged in.
He's really high energy.
JOANNA SMITH: They don't need to doze
if they're plugged in, right?
Like, you're only worried when they're unplugged.
JASON SANMIYA: I'm going to have to check the links afterwards
and read more about Doze.
TIMOTHY JORDAN: OK, and that's our show for the day.
Thank you for joining us here on "The Developer Show."
I'm Timothy Jordan, and I'll see you next week.
[MUSIC PLAYING]