[MUSIC PLAYING]
LAURENCE MORONEY: So Eric, welcome to "Coffee
With a Googler."
Tell us all about yourself.
ERIC SEIDEL: Yeah.
So I've been at Google for--
wow, like a decade now, mostly working on the web
until about three years ago when I
helped start the Flutter project, which
is now what I work on.
And I've been writing code most of that time.
Although a couple of years into Flutter,
I switched from coding all day to now
I lead the engineering team.
LAURENCE MORONEY: So what's it like changing
from coding all day to being an engineering manager?
Remembering that our audience are primarily developers, so--
ERIC SEIDEL: It's been a wild ride, mostly
because Flutter has been exploding,
usage inside and now outside Google.
And that's been fun.
And it's fun to just help people get stuff done.
LAURENCE MORONEY: Now, you've had a background
in a lot of web and particularly in rendering.
And how has that helped you with building Flutter?
ERIC SEIDEL: Yeah.
So I've worked on rendering systems for 10, 15 years now--
again, mostly on the web.
And that's how we ended up starting Flutter, is that we--
I feel like that's where my leverage is.
LAURENCE MORONEY: I like that expression--
where my leverage is.
I have to remember that one.
ERIC SEIDEL: Yeah.
We just wanted to do something better for Mobile.
LAURENCE MORONEY: How did Flutter start?
ERIC SEIDEL: Well, that's a bit of a story.
LAURENCE MORONEY: My favorite kind.
ERIC SEIDEL: So I used to work on Chrome.
And I was on the Chrome team at the time.
And we were working with some hard problems trying
to get certain parts of the web to really be nice and smooth.
And for whatever reason, we did this experiment
for a couple of weeks where we decided
it was going to be OK to break compatibility with the web.
And we--
LAURENCE MORONEY: Thankfully it was only an experiment.
ERIC SEIDEL: Oh, just an experiment.
But with that restriction removed,
we started removing things, all these old compatibility
supports for all these obscure websites
that the vast majority of us never go to.
LAURENCE MORONEY: Or maybe they don't even exist anymore,
because it evolves rapidly.
ERIC SEIDEL: And we just kept removing
and removing and removing.
And at the end of a couple weeks,
we ran our benchmarks again.
And obviously, this wasn't quite the web anymore.
It couldn't render all the web.
But it was 20 times faster on some of the benchmarks
we cared about.
And we were like, there's something here.
And so we kept digging.
And from that, we started.
And it probably took us about another year of digging
before we realized we just need to write a whole new thing.
LAURENCE MORONEY: So it's like now-- tell me what Flutter is.
What is it all about?
There's a lot of misunderstandings
and misconceptions, and I know I've had many of them.
So assume I know nothing, which is a pretty safe assumption.
So tell me about Flutter.
What is it?
ERIC SEIDEL: Flutter is a way to write for iOS and Android
from a single codebase.
And we try to make that fast and easy.
And we make a bunch of choices in that space to try and do
some awesome things there.
For example, we--
Flutter is a full stack.
We talk all the way down to the GPU and CPU.
We talk straight to the hardware.
We made a bunch of choices early on around making
custom very easy.
So we have a very layered approach.
You can take as little or as much as you want.
And then finally, the third thing,
we have a bunch of investment in tooling.
So that's part of how we make development fast.
We have things like a developer cycle
that's less than a second.
LAURENCE MORONEY: Tell me about that.
Less than a second from--
so when I save my code to actually running it?
ERIC SEIDEL: Yeah, running on the device.
LAURENCE MORONEY: How does that work?
ERIC SEIDEL: Well, so obviously, we
have to use the iOS and Android tools
to get the code onto the device in the first place.
But once it's there, then you just edit your code,
and you hit Save.
And we have this thing called Hot Reload
where we inject the new code into the running Flutter
system.
And it just updates.
You don't restart your app.
You don't change your place in the app.
The code just changes.
LAURENCE MORONEY: Nice.
I've been a mobile developer for a while,
so building on various mobile platforms.
And it's always like, compile, deploy, wait
for it to boot up, wait for it to execute,
wait for the debugger to start only to find out I
left out a semicolon or something like that.
So that can be minutes in some cases with some images.
So by cutting that to a second, what kind of things
are you seeing, the impact that has on developers?
ERIC SEIDEL: Oh, it's totally changed the way
we see people develop inside Google, those who use Flutter.
Some teams we've seen just literally
sit with our designers.
And they talk about painting their app to life.
We have-- one of our founding principles--
LAURENCE MORONEY: I see Bob Ross as you say that.
ERIC SEIDEL: Totally.
Lots of little treats.
But you watch these teams, and again,
they just hot reload, hot reload, hot reload,
and their app comes to life.
LAURENCE MORONEY: Wow.
That kind of iteration is made possible by the fact
that you have Dart as the programming language?
Is that right?
ERIC SEIDEL: That's right.
We do use a programming language that
hasn't seen a lot of usage outside Google yet
but actually gets quite a bit of usage inside Google,
and that's called Dart.
And we're the first mobile adaptation of Dart.
And Dart gives us things like this hot reload.
LAURENCE MORONEY: one of the confusions
that I often hear, particularly when we say, hey,
we have a platform for building for multiple devices,
is that it's a thin veneer over a web platform.
But Flutter is something very different, right?
ERIC SEIDEL: Not at all.
That's right.
So Flutter, again, we go straight to the metal.
We have a custom runtime that we've built from the ground up.
And we use some best in breed technologies
from the rest of Google.
We use Skia, which is this rendering technology that's
used in Chrome and Android and a few other places.
And we use the text rendering system, or parts of the text
rendering system, from Android.
And then we also use, of course, Dart, the start runtime.
LAURENCE MORONEY: So what does a Flutter application look like?
I assume I'm not compiling a .app or a .apk.
So what will it look like if I'm going to iOS
or going to Android?
ERIC SEIDEL: So actually, you are.
So a flutter application is just an iOS app or just
an Android app.
Flutter provides, actually, a view, a Flutter view.
And most people use those full screen.
And then we paint every single pixel you see on the screen.
But you can use Flutter view alongside all the rest
of your Android views or your iOS views.
So yeah, you retain full control.
And you can write as much Java, or as much Kotlin,
or as much Swift, or as much Objective C
in the rest of your application and then share as much
as you want between with Flutter.
LAURENCE MORONEY: So even if I have an existing app,
I can start then improving that using Flutter?
So it doesn't have to be--
ERIC SEIDEL: You don't have to start Greenfield.
LAURENCE MORONEY: Nice.
And one of the things I noticed when I was browsing the Flutter
website is that there's a whole bunch of controls as well.
So these look-- and I was wondering
if that leads to maybe some web confusion because they're
very web-like controls that you can have as add-ons to Flutter.
ERIC SEIDEL: So some of that comes from the inspiration
from the web.
So a lot of my team started on the web.
I used to work on the web for many years.
Our current tech lead, for example, wrote the HTML5 spec.
LAURENCE MORONEY: Your tech lead wrote the HTML script?
OK.
ERIC SEIDEL: There's some deep roots in the web.
LAURENCE MORONEY: Definitely.
ERIC SEIDEL: But yeah, so we do share some of the same nouns
and verbs, as the web does.
We have something called flexbox.
And so it should feel very familiar to people
coming from the web, but it is not the web.
The technology core is not the web.
LAURENCE MORONEY: So it really feels like a best of both.
ERIC SEIDEL: We hope so.
LAURENCE MORONEY: So say I'm a developer,
and I'm either a mobile web developer building native apps
in iOS, Objective-C, Swift, or in Android in Java [INAUDIBLE],,
or maybe I'm a mobile web developer--
what advice would you give me in how to get started
and how to get productive really quickly with Flutter?
ERIC SEIDEL: Sure.
So obviously, all our docs start at flutter.io.
That's our domain.
But there's also a ton of YouTube content out there,
people doing tutorials.
LAURENCE MORONEY: One of the other things
was I know you've just released the beta.
ERIC SEIDEL: That's right.
Just this last week, we announced beta
at Mobile World Congress.
We're now starting to ship regular betas
that we've vetted further so they're
nice and stable for your usage.
LAURENCE MORONEY: Cool.
And even though you've been an alpha and just gone into beta,
I know lots of people have been using Flutter, and lots of apps
have been built with Flutter.
Do you have any particular favorites?
ERIC SEIDEL: So the biggest name that folks
know is the Hamilton for the "Hamilton" musical.
That app was written in Flutter last year.
LAURENCE MORONEY: I'm a total fan of that musical.
I'm going to start singing it in a moment
now that you've mentioned it.
I have songs going around in my head.
ERIC SEIDEL: And Google has released a few apps,
and there's a few more on the way.
And the community, again, is just starting to explode.
We've seen hundreds of apps already launched
at the Play Store, and again, lots more [INAUDIBLE]..
LAURENCE MORONEY: Now, I know you've
had some really fun scenarios of things
that people have done with Flutter.
I've heard of-- what was it, some designers
taking a look at award-winning designs and then redoing them?
ERIC SEIDEL: So I know the story you're talking about.
But yeah, one of the fun things that we see with Flutter
is that we have, as a founding principle,
that you should never have to say no to your designer.
You should be able to do anything the phone can do,
anything your designer might want to envision.
And so we see people testing this.
And they go to these design websites,
and they find the winning design of that day
or the winning design of that month.
And they're like, can I do that in Flutter.
And most of these designs have never been done before-- never
been implented for iOS, never been for Android,
and they do it on Flutter.
And one person in particular in Spain--
Serge, Serge [INAUDIBLE].
LAURENCE MORONEY: Not our Serge?
ERIC SEIDEL: Not our Serge.
And did a tutorial series where he took one of these,
and he built it up.
And it's just neat to see people doing that kind of thing.
LAURENCE MORONEY: Cool.
So again, if I want to get started, it's flutter.io?
ERIC SEIDEL: That's right.
LAURENCE MORONEY: And the beta is now available.
So even if you're a developer who's
played with Flutter before, and maybe it
wasn't for me because it was in an alpha,
you get to try the beta.
ERIC SEIDEL: That's right.
LAURENCE MORONEY: So flutter.io, download the tools,
and get started.
Cool.
Well, thank you, Eric.
It's been a lot of fun.
And thanks, everybody, for watching this episode
of "Coffee With a Googler."
If you have any questions for me,
or if you have any questions for Eric,
and if you want to know more about Flutter, please just
leave them in the comments below.
Thank you so much.