[MUSIC PLAYING]
TIM SNEATH: Hopefully, you've now
seen how Flutter is beautiful, fast, productive, and open.
You've seen how designers and developers can collaborate
to build native mobile apps.
You've seen how the ecosystem extends Flutter with plugins
from companies like Square.
And you've seen tools like 2Dimensions Flare and Nevercode
that amplify the power of Flutter.
But we're not quite done.
Flutter was not conceived as an SDK for iOS and Android.
Our vision for Flutter is to be a portable UI
toolkit that can go wherever you need to paint pixels.
The Flutter engine is inherently cross-platform,
and it can be embedded in all kinds of hardware.
Just last week, we shared an example
of porting Flutter to run on Raspberry Pi,
running directly on the Broadcom hardware
rather than using an intermediary layer
like Linux or X11.
We believe Flutter is a useful building block for these kinds
of embedded scenarios.
And perhaps in the future, we'll see Flutter powering things
like automotive displays or other IoT kinds of devices.
Another very practical example of how
we are already going beyond mobile
is Flutter Desktop Embedding.
This is an open source project that
enables Flutter apps to run on Mac, Linux, and Windows.
We've been working on Flutter Desktop Embedding
in the open for a few months now,
and we're pretty happy with how it's coming on together.
This lets you do things like take
your basic starter application that you
get when you create a Flutter project and run it on a Mac.
So here's the usual app here, and you can imagine, you know,
you can [? plus ?] and see how the number increments.
And in fact, when we were putting this presentation
together, we were thinking, how could we
make our slides as beautiful as possible?
So we built the entire presentation in Flutter.
[APPLAUSE]
Everything you've seen so far has
been run on the Mac implementation of Flutter.
The app has been built by a company called Very Good
Ventures, who are a New York-based mobile studio who
exclusively focus on developing beautiful Flutter experiences.
We plan to open source this software soon.
But that's not all.
There is one other place we'd like
to go with Flutter that really demonstrates the groundbreaking
potential of this technology.
And you know, before I get there,
I have to take a moment--
[LAUGHTER]
--to talk about Dart because as well as being a really
well-designed language, it's a versatile platform for Flutter.
Dart doesn't just compile to native ARM code,
but also compiles to tight, production-ready JavaScript
code.
So I want to give you an early glimpse of something
we're working on in the labs.
To be clear, this is a technology preview.
We're not shipping any code today.
We're calling this Hummingbird.
And it's a port of Flutter that runs
on the modern standards-based web.
[APPLAUSE]
I'm going to show you a little demo of Hummingbird now.
Here's a simple mobile app that we've been
running on an Android tablet.
It's an implementation of the 15-tile sliding puzzle
that I suspect we all know pretty well.
You know, I can move tiles around and I can auto-play it.
We've done the usual Flutter things.
We've added a little bit of styling
to it to make it look beautiful, and so on and so forth.
But I'm going to open Chrome and browse to this page.
And everything you're seeing here
is Flutter running on the desktop web browser.
Everything you're seeing here.
[APPLAUSE]
Everything you're seeing here is standards-based content.
HTML, DOM, Canvas, JavaScript-- there's
no black box here any more than any other web content.
Importantly, it's the same Flutter code
running in this browser as on the phone.
We haven't had to change the codes to get it to run here.
We've still got some optimization work to do,
but you can see that we're getting 60 frames per second
for this scenario across the current generation of devices.
And because this is the web, I can even turn it into a PWA
if I want to thanks to the great work from the Chrome team.
So that's Hummingbird.
What do you think?
[APPLAUSE]
Again, this is early days for this experimental product.
Our Hummingbird, you might say, is still learning to fly.
In the meantime, we are publishing right now
a blog article that describes more of the technical details
behind Hummingbird.
And we'll have a lot more to share at next year's Google I/O
conference.
So portable, high quality UI has been
the holy grail for front end developers for decades.
And over the course of the last hour or so, I
hope you've seen why we think Flutter has the potential
to transform how all manner of UIs are built.
This is not just about iOS and Android.
This is about building beautiful user experiences
on any platform.
We're excited about our mission, and we hope you are, too.
So to close, I want to introduce you
to someone who's played a pivotal role in the Flutter
project.
Eric Seidel is one of the co-founders of the Flutter
project and he's going to end this presentation
with a few final thoughts.
Eric, thank you so much.
ERIC SEIDEL: Thank you, Tim.
[APPLAUSE]
Couple of my colleagues and started this project at Google
over four years ago.
We just wanted to make development better.
We wanted to make user experiences better.
And these are themes that many of us
had worked on for years as part of the Chrome project.
But we felt that within the constraints of the web,
we couldn't get there fast enough.
So we started experiments to see if we could make something
radically better for both users and all the teams that
develop for them.
Those experiments became Flutter.
So how we got here was a bit interesting.
It took a little while.
But we felt a radical approach was required.
If we were going to break from existing systems
and build a whole new way to develop,
we knew that was going to take a long time.
But we saw this as an important long-term investment,
not just for my team, but also for Google.
So as we were starting, we talked to lots of developers.
We sat down and made many, many lists of problems
that we heard and wanted to solve.
I think it's worth looking back at at least the four big areas
that we set out to solve.
And you've heard some about these today.
So the first was that we wanted to make it
easy to build beautiful things.
And because, again, this was a long-term bet,
Flutter had to make it easy not just
to make the most beautiful things available today,
but also had to be flexible enough and powerful enough
to build the most beautiful things being
designed for tomorrow.
The second was that we wanted to make
it easy to boost consistent, reliable performance.
We saw developers struggle with this
consistently on other platforms and we
wanted to make it easy to deliver
a really smooth experience at 60 frames
a second, 120 frames a second, 240 frames a second,
whatever the underlying device could do.
Third, we really wanted to improve the developer
experience.
Develop productivity has-- you know, again,
if we're making a long-term bet, developer productivity
had to be at least as good as the best available that day.
And so far, honestly, we've far exceeded my expectations
with now sub-second, stateful hot reload.
And fourth, we needed to build a thing that could go wherever
Google needed it to go.
It had to be open.
It had to be extensible.
It had to be flexible to go to all the places and all
the devices.
Run on all the hardware, the software,
all the crazy things that Google was building then
and is building now.
We spent many, many months working with a few brave
early customers.
And many times in response to customer
needs we rewrote large swaths of the system.
But we always kept our eyes on these long-term goals.
In the end, it was a lot of effort.
Still is a lot of effort.
But I think the results speak for themselves.
The many apps that we've shipped--
or that we've seen shipped, rather--
the success stories we've heard continue
to tell me that we focused on the right areas
and are getting good results.
Which brings us all to today.
So this, today, our announcement of 1.0
is obviously a major milestone for the project,
and for the community, and for the many teams who have worked
for years to get us here.
You saw today how Flutter is already enabling developers
all over the world to deliver beautiful apps to hundreds
of millions of people throughout the globe.
But this is also just the beginning.
Flutter is Google's portable UI toolkit.
It is highly portable and already works on many form
factors beyond phones.
You saw it used today on desktops for our slides.
You may have seen some of the many articles floating
around the internet of people taking Flutter and running it
on gigantic things or little tiny things.
And you even saw today some of our experiments with running
Flutter on the web.
So if I look forward a few years,
I see Flutter running in a ton more places.
So finally, and really, the whole reason why I'm up here,
is to say a big thank you.
[APPLAUSE]
I want to say personally thank you to so many
for working with us for so long to get here,
particularly those who tried Flutter.
Some of you bet on Flutter very early
on before it even was called Flutter.
I also want to say thank you for all the hundreds of suggestions
and bug reports that this community receives every month
from those listening.
And finally, of course, thank you
to those tuning in, whether via one of our,
I think it's over 150 now, viewing parties
around the globe, via Twitter, via the livestream,
and of course, to all of you here in person.
So thank you for taking time out of your day
to celebrate with us.
And fittingly, we're going to close today's presentation
not with us, but with you.
Flutter has always been and always will
be a community effort, built together in the open.
No one company or one team can reach
all of the places we want Flutter to go.
So we close with our hats off to that community.
The stories like we're about to show you give us the motivation
to continue each day in this mission.
Thank you.
[APPLAUSE]
[MUSIC PLAYING]