Transcript for:
Flutter Presentation on Upcoming Features and Tools

[Music] for those of you who haven't spent much time with flutter we're an open source portable UI toolkit designed to enable beautiful fast experiences on any platform with flood up we want to unleash you to build test and deploy beautiful mobile web desktop and embedded applications from a single code base so let's talk about the forward Parts what's coming next with this event we want to give you some sneak previews of a lot of different features that aren't yet stable quality but represent work in progress we're going to show you a number of different demos of things that we're working on for clutter and arts and they fall into four main categories breakthrough graphics performance delivering seamless integration with the underlying platform whether it's web mobile or desktop bringing support early to new and emerging architectures and continuing our focus on developer productivity foreign so one feature that we're super proud of is impeller which like we mentioned before is a major rewrite of our Graphics engine and you can see for yourself just how smooth impeller is by installing wondrous for iOS but in some edge cases like complex SVG clipping we can see impeller making a really huge performance difference one advantage that we have because we're building from the ground up is that this new architecture can support brand new use cases so what if we did want to do something totally new like maybe 3D so right now I have a pretty simple app it just has an image widget to display a 2d version of Dash that's created from this PNG file so nothing fancy she is looking cute but I really want to make her 3D so let me go ahead and switch out this widget over here and instead we're going to use a scene and scene accepts a node which can take an asset and in this case my asset is going to be a model file it's actually something called a glb file so I'll save that oops and reload and she's 3D but the thing is that we were just talking about performance so I think we need to turn it up a notch right instead of just showing a single Dash I think we want to show a whole bunch of Dash is so I have my helper function called many nodes and I'm going to wrap it around my node object press save again we'll hot reload and now we have a whole bunch of dashes it's actually a cube of dashes 7x7 Cube to be exact so that's 343 dashes walking around so that means more than 10 000 individual joints that are being evaluated at every frame without reload thank you impeller we're working on two new tools and what these will do is generate something called Bindings that allows us to communicate with iOS or Android apis directly from our Dart code so to automatically generate bindings for iOS we're going to use this tool called ffi gen and now that I have all the configurations set I can just automatically generate these bindings by copying this command into the terminal and this will just run ffi gen right so we can see that it's running and like I said this will Auto generate some code that basically just acts as the glue that allows us to call platform code directly from Dart so that was iOS and on the Android side things look really similar we use this tool called jni gen so this is Dart and I'm just taking advantage of those Bindings that we generated using jni gen I want to share a second thing uh which is uh called element embedding and this is another uh shift of work that we're doing another um piece that we're doing to improve the quality of the web experience with flutter something that we've been working on here enables you to take Dart and flutter and compile it and put it in a div as a web component so it can integrate deeply with the rest of the platform and because what you're looking at here is just a regular HTML div you can do other things with it or I could even switch it into a device mode and skew it [Applause] [Music] so let's look forward and we're going to start with webassembly and what I'm running here uh is the flutter counter app as you may recognize it from the past but this version of the flutter web app is not using javascripts in fact if I go into the dev tools and I make this a little bit bigger you can see that what we've got here is instead of the usual sort of main.js which is normally the big thing that contains everything we've got main.dark.wasm and this is the compiled version of this code to webassembly adding to the complexity of this webassembly has been around for a little while but the bit that is new is webassembly GC which is a new in development standard for garbage collected languages and flutter is one of the very first garbage collected languages to support this extension to the web assembly standard when it comes out so now we get all the benefits of webassembly from a loading perspective in terms of performance and we also get the ability to go and interoperate with other other languages that are compiled to webassembly so that's coming soon support for compiling to webassembly from flutter in the web [Music] our vision for darts is to enable you to create the highest quality apps with leading productivity on any platform your customers care about and to do just that I am happy to announce dark three Alpha over 700 000 apps have been launched to date using flutter from small apps from entrepreneurs to those with over a billion downloads and as GitHub noted in their recent octopus father is one of the top three open source projects by contributors every day we're inspired and honored by your support we build flutter with you and for you we want to close in recognition that our goal is to help you and we love seeing the ways that flutter helps to Build a Better World [Music] foreign