[MUSIC PLAYING]
TIM SNEATH: Thank you so much.
Welcome to Flutter Live.
Thank you all for coming.
This is a global event.
We have hundreds of thousands of people watching this
all over the world, whether via livestream
or at the over 150 viewing parties around the world.
Whether you're watching us over a morning cup of coffee
in Seattle, or whether you're attending a meeting after work
in Berlin or joining a pajama party in Bangkok, welcome.
I want to start by paying credit to the many software
engineers who contributed to this project
and without whom we wouldn't all be here today.
With Flutter, we assembled the best engineering talent
from across the industry, all of whom
shared a dream of reinventing how user interfaces are built.
Our team includes leaders with pedigrees from web, desktop,
and mobile UI toolkits.
It includes the former editor of the HTML standard,
leading developers who have worked on WebKit and Blink,
and architects who created the first version of V8,
the JavaScript engine that powers Chrome.
And then beyond our own team, we also
have hundreds of contributors from the community
who have identified issues, contributed to patches,
and even introduced new features.
And all of that has brought us to this moment today.
This isn't just our product, but it's your product,
and we're so proud to be part of the journey with you.
So let's talk about Flutter.
Our vision for Flutter is something that many of us
have been dreaming of for years--
a powerful, general purpose, open UI toolkit
for building stunning experiences on any device--
embedded, mobile, desktop, or beyond.
While we're still in the early stages of this journey,
we're already depending on Flutter ourselves
at Google to power many different apps and services.
We know from direct experience that it's
ready for beautiful production apps,
and now we're delighted to share it with you also.
Our immediate focus is the mobile phone.
Developers today are forced to compromise
between either building the same app multiple times
on multiple operating systems or accepting a lowest
common denominator solution that trades native speed
and accuracy for portability.
With Flutter, the days of compromise are finally over.
There are four characteristics of Flutter
that we think make it a unique platform for you
to build native mobile application experiences.
Firstly, Flutter enables you to build beautiful apps.
As you'll hear later, Flutter provides a rich palette
of tools that give you control over every pixel on the screen.
Designers will never again have to compromise on their vision.
Flutter includes a full set of widgets
that deliver pixel-perfect experiences on both iOS
and Android.
And it enables the ultimate realization of material design.
So whether you're building a highly tailored, branded
experience or a native iPhone or Android app,
you should find that Flutter provides
everything you need to build a beautiful, award-winning
interface.
Secondly, Flutter is fast.
I'ts powered by the blazing speed Skia 2D graphics engine
which enables hardware-accelerated graphics.
From the start, we architected Flutter
to be able to support glitch-free, jank-free graphics
at the native speed of your display.
Flutter code is compiled.
It's not interpreted.
It doesn't go through a virtual machine.
When your application is finished,
it's compiled to native machine code.
Thirdly, Flutter is productive.
Flutter introduces a revolutionary new capability
for developers and designers to iterate on their apps
in real time, and we call this stateful hot reload.
And it enables you to change the code of your app
and see the changes in real time without having
to restart the app or get back to the screen you are on.
And we think stateful hot reload transforms
the way you build an app.
And developers who use it-- some of you may be here in the room
today--
say it makes them up to three times more productive.
And lastly, Flutter is open.
Flutter itself is open source--
open for contributions, open for extensibility.
Every line of code is available for you
to read, fork, extend, amend.
You don't have to buy a developer tool to use Flutter
or to use its tools.
Everything is licensed freely under a BSD-style license.
And of course, that openness extends to the community.
There are already thousands of Flutter plug-ins out there.
And of course anything that the underlying operating system
exposes is available to Flutter, whether it's
written in Kotlin or Java on Android or Swift
or Objective C on iOS.
So put all this together, combine it with best in class
tooling for Visual Studio Code or Android Studio, IntelliJ,
or the programming editor of your choice,
and you have Flutter--
a framework for building beautiful native experiences
for iOS or Android from a single code base.
So what does this mean for you?
Well, as a business, you no longer need to fund two teams.
You can put all your resources towards crafting
one beautiful native experience that's available everywhere
you need to be.
But today, we're not just here to talk about Flutter.
We want to show you some examples of Flutter in action.
And to do that, here's Filip Hracek.
Over to you, Filip.
[APPLAUSE]
FILIP HRACEK: Thank you.
Thank you.
So Tim told you about the four tenets of Flutter--
beautiful, fast, productive, and open.
And it was OK.
It was a little bit theoretical.
But fortunately, I'm here now.
And I'm going to show you how that
translates to practical stuff.
So we built an app for this event.
It's called The History of Everything.
And I'm going to give you a little tour of the app,
and I'm going to show you how different things about Flutter
made things possible or at least easier.
So I'll start with the basics.
The app starts immediately.
This is because Flutter compiles ahead of time to arm code.
So there's no Jit to warm up.
There are no scripts to parse.
It just starts executing-- fast.
Second, this is an Android device, and this is an iPhone.
And as you can see, the basic interaction
is completely natural.
If you go to a different screen, everything
works as you would expect.
So these are the basics.
And this is how Flutter makes you
productive by letting you focus on the custom stuff
while doing the basics itself.
We're going to get rid of one of the phones
just because it's distracting to have two.
And I'm just going to focus on this one.
So let's take this a little further.
It's nice to have scrolling, but how can we turn this up to 11?
So in this view, we have this very interactive, very animated
timeline where you can go from--
all the way from Big Bang to today.
And if you see that red dot, that's all of human history.
We'll get back to that.
But what I'm going to show you now is actually--
so the scroll behavior is still completely natural
to the platform, but we added this really--
I think it's fun bouncy effect, just
to make it more interesting to interact with the app.
And this is actually a testament to the openness of Flutter,
because we were able to use Flutter physics,
scroll physics, and add a custom layer on top.
So Flutter is not just open as in open source,
as you can read the code, of course.
But also, it gives you, as a developer,
access to all these classes and functionality that you can then
build on top of.
But let's take this a little further.
So it's nice to scroll, but let's zoom.
So I'm going to zoom right past dinosaurs, because it turns out
nobody likes dinosaurs.
Humans.
This is the red dot that we saw earlier.
And now, as you can see, at any moment, at any scroll position,
at any zoom level, we show what makes the most sense.
And that is possible, again, because Flutter is fast.
We can actually recompute what you show on every frame.
And this is basically a requirement for any very custom
UI where you want to be able to rebuild things and be
interactive, 60 frames per second.
OK.
Well, let's take this a little bit further.
So you might be thinking, oh, these are cool.
I like these little animations.
And you might also be thinking that these are actually
pre-computed, a GIF or maybe a video.
But these are actually vector animations
that we're building on every frame with Flutter.
So for example, this one, I can sway the tree above of Newton.
And I like how the apple still falls on Newton's head.
It's because life is hard.
And this is possible because, again, Flutter is fast,
but also, because Flutter, at its deepest level,
uses Skia engine.
Skia is hardware accelerated.
It paints directly to your graphics card,
and you own all the pixels.
So whatever beautiful design your designer designs, whatever
artwork your art person does, you can do it.
And you can do it, again, for 60 frames per second.
And that's really cool.
Now you might be thinking, this is all cool,
but you're showing Pixel 3.
That's a very modern phone.
How about older phones?
And I'm glad you asked.
Because by chance, I have other phones with me today.
So this is an Android phone from 2014, Samsung.
And it's running, I think, Android Kit Kat.
And as you can see, it works just fine.
And here, if I can make it go away--
and here we have an iPhone from 2013, so five years ago.
And again, it runs just fine.
So it's not just the modern phones.
If we go to the computer screen, what magic is this?
I'm not going to do any live coding,
but I just wanted you to see that it's just Flutter code.
The app itself is all Flutter.
There is no magic behind it.
It's all the Flutter that you all probably-- or at least many
of you know and love.
So it just compiles to APK for Android and IPA for iOS,
and then it gets published to the stores.
This is actually published maybe two hours ago.
This is the app store, and this is the Play Store.
If we get back to the phone--
so yeah, we were able--
in maybe something like 6,000 lines of code,
were able to build a very custom app in three months
with three people who were busy doing other stuff as well.
So that's the productive part.
But there are things that you won't
find in the released version of the app.
Why?
Because I believe that just because you can do something
with Flutter doesn't mean you should.
For example, can you add 150 little animated hearts
to the timeline?
Let's scroll with it and get bigger and smaller
and all that.
Sure.
Should you do that?
No.
Maybe yes, but no.
Second that we didn't add to the production app
is the last event in the timeline.
And that is obviously Flutter Live,
because the history of everything
ends with Flutter Live.
No, think about it.
Everything that ever happened since the history of time
has led us to this moment.
It's true.
[APPLAUSE]
Yeah.
A little bit of philosophy.
Anyway, what I wanted to show here
is that Flutter is all widgets.
It's open, and it's composable.
So if we want to have a video playing in our very custom
timeline, and being included by all these things,
we can, because it's just another way to--
it's Flutter, so sure.
The last thing I want to show you is basically this.
But can we take it a little further?
So that's the blue dot just above here,
and that is actually a very substantial event
in the history of everything.
This is me trying to find this venue earlier today.
I got lost in London, and I was very sad.
But I had a device with me connected to the internet.
And there's this service by Google
that you use if you have a phone with you and you're lost.
And as you can see in this little animation--
wait, what is this?
Can you see that?
Let me zoom in.
Oh, is this an actual Google map running
inside my Flutter application while it's being swayed around?
Sure.
[APPLAUSE]
Because this is Flutter, so it's another widget.
OK.
So to summarize, we've seen an application
that I think is beautiful, that was built in three months
by three people, that is fast on a wide range of devices,
and that, because of the openness of Flutter,
can do cool things like this.
Thank you for attention.
[APPLAUSE]
TIM SNEATH: Thanks, Filip.
What do you think?
[APPLAUSE]
So to me, that's a great example of Flutter.
It's a beautiful experience that does things that even
a traditional native platform solution might struggle to do.
So you've seen a little of what Flutter can do.
And today, it gives me great pleasure
to announce the general availability of Flutter 1.0.
[APPLAUSE]
Thank you.
So today's release marks a key milestone
for the product where we declare it's not
just ready for early adopters.
It's ready for everyone.
We released the first beta of Flutter
back at Mobile World Congress in February of this year.
And looking back over the last nine months,
it's been really quite humbling from our point of view
to see how people have adopted and responded to Flutter.
Since February, well over a quarter of a million developers
have used Flutter.
Companies large and small, including the likes
of Alibaba, Groupon, Tencent, Capital
One, Philips Hue, and of course Google,
are developing with Flutter.
And even in this pre-release stage
up till now, we've seen over 3,000 apps published
on the Play Store alone reaching hundreds of millions of users.
To show you some of the momentum that already exists
for Flutter, we thought it would be fun
to put together a quick video that shows the great work
that many of you have done with Flutter so far.
[MUSIC PLAYING]