#FlutterInProduction

#FlutterInProduction

Show Video

[Music] wow [Music] hey everybody I'm Andrew from the flutter team and I'm here to talk with you about the past present and future of flutter how it's gone from an experimental rendering project to a tool used around the world to reduce the time and money required to unlock designers creativity help businesses ship fantastic apps and Empower developers to put great experiences into users hands what what just happened hi uh I'm not sure what's going on but we're shooting content for the flood commun I'm sorry are you Rivers Cuomo yeah like lead singer songwriter for the band Weezer Rivers Cuomo tour the world for decades millions of Records reinterpreted Aaron Copeland for Jaded modern audience like that Rivers Cuomo yeah pretty much okay um well I I I don't know if you meant to beam yourself I guess into a different Studio but we're actually doing a tech live stream for Tech folks you know software developers I am a software developer you are yeah I've shipped two applications to support my life and work as an artist oh uh okay well this stream is specifically about flutter though so I build with flutter you do of course my users are on more than one platform so I need to be too flutters seem like the safe Choice there are more than a million published flutter apps with hundreds of millions of users and billions of dollars moving through them am I asleep right now what is plus I like using it the crossplatform thing is incredible I like that I can make a web app first before going on to the difficult deployment to Android or iOS part and hot reload amazing yeah um O Okay uh so we're a twers intro now um all right in the next couple minutes uh I need to share some numbers about flutter and then set the stage for the rest of the content you want to help oh yeah you're doing great by the way thanks supportive Community um okay so I asked our analytics team to crunch some stats to reflect where flutters at these days and now I guess rivers and I are going to run some numbers by you we go all right those are for you awesome all right so uh first number how old do you think the flutter project is in years uh well I started using it four or five years ago and it had been around for a while before that so I'm going to say seven years take a look 10 years 10 years wow yeah it wasn't called flutter back then it was technically called Sky when it was first started uh but then they changed the name and the first commit was a little over 10 years ago wow yeah all right next card um so we say in flutter everything's a widget you may have heard seen that phrase how many widgets are publicly available out of the flutter SDK like how many are sort of built in oh gez uh I'm gonna say more than a hundred I would guess less than 200 I'm going to say 200 take a look oh my God 528 yes I got to learn some widgets there you go um search the code this morning um yeah 528 widgets publicly available and flutter everything from size box to multi-child render object widget all right next one uh since the start of this year how many people have contributed code to flutter H I've been to the GitHub and there's a lot of people on there I'm going to say a thousand take a look 475 yeah so not quite a th but 475 and that runs from the beginning of the year up until about Halloween okay wow little follow on I don't have a card for this one how many of those folks do you think uh were googlers folks that actually worked at Google uh 150 119 that's pretty close right on all right cool okay uh we have a a network of meetups called the flutter Meetup Network there's local meetups all over the world in different languages how many countries would you guess are covered by the network of flutter meetups I think it's a lot because I see so many people from different countries online talking about flutter I'm going to say 123 all right we're not that we're not quite there yet we have 64 64 about 92,000 people though are part of the network in 64 different countries all right here's a here's a heavyweight stat now how many people do you think use flutter every month as developers so this is we measure we have analytics that the flutter tool itself generates you know if youve ever run flutter run or flutter create that sends uses Google analytics how many people invoke the flutter tool do you think every month uh a million take a look over a million over a million yeah we we measure it in a couple different ways and we don't know how much over a million it is but it's definitely over a million now nice yeah all right last one uh according to the app analytics firm apptopia what percentage of new apps being uploaded to the IOS app store do you think are built with flutter uh there's a lot of ways to make apps uh I'm going to say .5% .5% 28% 28% oh my so more than one in four new iOS apps going up to the App Store are built with flutter mind blown yeah well that was that was fun thank you for agreeing to take a pop quiz in front of several hundred thousand people my pleasure all right um time to get this party going since you're part of the flutter Community now uh do you want to introduce the rest of our content that would be awesome let's see over the last decade flutter has gone through a few eras at the start was the experimental era the whole project was just a few Engineers seeing if they could make the web run faster culminating in the launch of 1.0 in 2018 when flutter became stable SDK in its growth era flutter added more supported platforms with new Engineers like Mah picking it up the flutter Community welcoming so many new faces new packages being published every week and the ecosystem exploding with new code now we're in flutter production era thanks to its thousands of contributors and millions of developers flutter has grown to be something people rely on and Engineering the SDK and tools is more about delivering on flutters existing promises and continually improving its awesome developer experience during this event we'll talk a bit about all these things including info about the last couple releases and where things are headed plus a live Q&A with folks from the team first up is Tech lead and musician Kate love it to talk about how flutter empowers developers to craft incredible user experiences widgets rendering Cupertino and a lot of other Imports that end up at the top of all my Dart files that was great thanks uh do you mind if I share this selfie with like 30 people I went to school with uh thanks Rivers I thought he'd look more like Buddy Holly but that aside he hit the nail right on the head part of the reason why so many large companies choose to use flutter when they need to support users on more than one platform is flutters track record of helping developers ship millions of apps with hundreds of millions of users that same record speaks to a framework that not only helps teams maintain table Stakes app functionality over time but also enables developers to build higher quality and more imaginative app experiences while simultaneously enabling companies to expend fewer resources to build test and launch the app everywhere it needs to be that's why so many teams that adopt flutter see an increase in both their App Store rating and key business metrics like ad Impressions and inapp purchases flutter also frees teams from platform constraints empowering them to deliver user experiences in line with their strategy and users needs whether that's native entirely custom or something in between so how did a few Engineers go from trying to make the web faster to introducing a framework for building beautiful apps across multiple platforms well experimentation that's why we call flutters early days the experimental era like Rivers so accurately put it that experimentation culminated in the release of flutter 1.0 which featured the copertino and material widget libraries so that apps could look and feel right at home on flutters debut platforms IOS and Android for the folks who weren't quite ready to fully rewrite an existing application 1.0 also

introduced the option of sprinkling flutter into an existing native app what we call add to app development orgs all over the world have been leveraging add to app to introduce new features for years including the business and consumer app teams at WeChat one of the world's most popular messaging apps with over 1 billion monthly active users but that was just the first step in our larger Vision to deliver production grad support for Android iOS Mac OS Windows Linux and the web delivering on that vision would come to Define flutters growth era a period of time which made clear that our approach and ambition resonated far beyond the flutter team at Google like River said the ecosystem around flutter exploded with new faces and code we expanded support from Mobile to web and desktop the sizes and types of teams willing to bet on on an upstart framework with lofty goals Grew From individual hobbyist developers and small teams willing to take big bets to startups and small to medium-sized businesses new design libraries were popping up in the flutter Community to support high quality uis for all those users and across all of these platforms like fluent design inspired fluent UI Mac OS inspired Mac UI and the iunu inspired yaru widgets we also added support for new user input methods like focus and shortcuts for desktop users scribble support for apple pencil users and local off via fingerprint Touch ID and face ID just to name a few the bar for quality and Fidelity kept Rising even higher as did the number of companies that were choosing to adopt flutter so we made it easier to write and use custom fragment shaders to create graphical effects like the animation that bring human computer interactions to life we also upgraded internationalization and worked hard on improving accessibility especially on the web ensuring that canvas rendered elements were understandable and interactive for users of assistive Technologies right out of the box the team working on sncf connect France's public transit app told us they were able to share 90% of their flun code across platforms reduced their release Cadence to just one one per week with no delay between IOS and Android and spent less time monitoring multiple Stacks to hear that kind of feedback from the team working on an app with over 15 million downloads we figured we were on the right track as with anything in technology the platforms themselves evolve at a lightning pace so we've made it a priority to evolve with them by supporting the latest and greatest features as fast as possible over time that is meant doing things like upgrading the material library to support material 3 unlocking more expressive power and customizability exploring new slivers and two-dimensional scrolling widgets to reach new levels of UI complexity and building out code generation tools to support seamless Integrations with any native API or feature on any platform now flutter is in its production era where large Enterprises are relying on flutter to help them deliver on business critical functions for example Scandinavian Airlines who are filling up their trophy case with Design Awards while transporting almost 24 million passengers per year and teams here at Google like Google Earth who are relying on flutter to help users explore our beautiful planet on iOS Android and the web all from a single code base for the next step in supporting the mission critical flutter apps that developers are building and users are relying on we've shifted our Focus to feature completeness and polish across each of our six Target platforms iOS Android web Windows Mac OS and Linux our goal is for flutter apps to be virtually indistinguishable from their native counterparts in the last year we' focused on platform Fidelity we've released a combination of new and refined material widgets improved Cupertino widget Fidelity to match the latest IOS design system added support for Android's predictive back navigation and expanded embedding capabilities on the web to include multi-element embedding allowing you to embed as many flutter views as you'd like within another web application our latest release to the stable Channel flutter 3.27 Builds on top of that work we're making updates to the material widgets to keep Pace with its evolving spec enabling more Dynamic layouts to follow modern app design Trends and implementing the latest features from Android 15 including free form and edgo Edge mode by default in iOS we're adding support for store kit 2 in the inapp purchase plugin and continuing to improve our library of Cupertino components it seems a few developers have already noticed and on the web you'll see even more improvements to accessibility and visual Fidelity we're Landing fixes for headings dialogues p passwords the iOS keyboard links and scroll bles development teams working at supercell and Universal Studios both coincidentally reduced their codebase size by 45% after using flutter more specifically the supercell ID team was able to reduce their core code size by 45% even with the addition of support for desktop that means both teams manag to cut the lines of code that needs to be reviewed and maintained by nearly half so instead of spending their Cycles maintaining their code base both teams can focus their time energy and resources on the real goal creating fun and immersive experiences that form lasting memories oh and they may have mentioned that they're fans of flutters performance improvements too which is a great segue because con will be telling you more about flutters performance in the next segment but before I pass to her let's take a moment to hear from a team of developers experiencing the benefits of crafting amazing user experiences with flutter hey everyone I'm Marcus Ing and I'm a Staff software engineer at headspace over the past decade headspace has maintained separate code bases across native iOS Android and web and while this approach has allowed us to provide highquality experiences across platforms it has also come at the cost of managing fragmented workflows and duplic efforts we began using flutter back in 2021 and we were very impressed with its performance we recently decided to take the leap and officially migrate our frontend text STS to flutter starting with our native IOS and Android apps and eventually our web app as well currently several of our features built with flutter are live in the App Stores one of these features is EB which is our AI mental health companion and another is our direct to Consumer therapy service that connects users with mental health therapists we're also leaning heavily into server driven UI to quickly deliver Dynamic and personalized experiences to our users by defining the structure and behavior of our UI server side we can iterate faster AB test more and update our apps in real time combined with flutter this enables us to seamlessly deliver these experiences across all platforms using a single code base built around a unified design system this transition to flutter marks an exciting new chapter for headspace we're incredibly grateful for the Innovation and the community behind flutter which empowers us to bring mental health support to millions of people all around the world more efficiently than ever before imagine this you're at the movie theater but the app is taking a little while to load your ticket so you hold up the line for the movie that everyone's been waiting months to see we've all been there it's frustrating end users don't care too much about the technology that you use but a beautiful and elegant app that is slow janky and constantly crashing is kind of like putting lipstick on a pig that beautiful UI is overshadowed and Wasted by poor performance performance is everything because bad performance doesn't just hurt your bottom line short term as users get fed up and leave your app but it also hurts your brand longterm when people are sharing negative reviews like this one ouch flutter has been built to help you deliver apps that not only look and feel good but also performant and reliable so reliable in fact that Universal Studios saw their apps crash rate drop to less than 0.1% when they switched to flutter it's built to go beyond the performance capabilities of what's expected of traditional crossplatform Frameworks ensuring that you never have to worry about your app stability or speed here's how flutter has and continues to deliver the very best performance on every platform right out of the box I like this erys thing that we've got going on so let's start there in flutter experimental era we made two foundational choices related to Performance first we bet on Dart which came with an ahead of time compiler enabling flutter apps to compile to Native arm or x64 machine code the result consistently fast app startup times second we bypassed native UI kits and brought our own rendering layer leveraging the power of device Hardware by talking directly to the GPU the that result fast rendering and smooth animations across our two stable platforms at the time IOS and Android but as with all technical decisions there were trade-offs which became all the more apparent as flutter grew in popularity for example how different platforms handle Shader compilation some defer more work to runtime which can cause performance issues leading to drop frames in the first few seconds of launching an app so we began to experiment with a number of potential Solutions some showed promise others were dead ends eventually we landed on an approach that would keep our original ethos using our own rendering engine but this time leaning on the power of modern Graphics apis like metal on iOS and Vulcan on Android for smoother and more predictable graphics performance we called it impeller and introduced it to developers back in 2022 for over a year now impeller has been the default renderer for flutter apps running on iOS flutter 327 marks the next step in our imp Journey impeller is now also the default renderer on all Vulcan enabled Android devices and don't worry Android devices without Vulcan support will continue to use flutter original rendering engine skia we've run a number of benchmarks and we're really excited about the improvements using impeller we saw as much as a 97% decrease in Max rendering times and a 100 megabyte reduction in memory usage while running the animation heavy wondrous app who doesn't love a Snappy and smooth user experience even more exciting than those numbers are the new possibilities that impeller unlocks earlier in the show Kate shouted out a flutter developer who built a cool demo to Showcase a significant increase in fluts Fidelity on iOS that Fidelity will only further improve given the added support for the display P3 color space in flutter 327 meaning that you get to take full advantage of highdef iOS displays this work was made possible at least in part by the updates we've made to impeller another exciting addition driven by our impeller work is flutter GP a new low-level Graphics API we announced as a preview in early 2024 flutter GPU gives you access to the machine's GPU from dark code and enables you to build custom renderers for the most complex Graphics including 3D this development is particularly exciting because it pushes the envelope of what a crossplatform framework is able to do it empowers teams to craft breathtaking visuals the kinds that separate your app and brand from the competition it also streamlines the entire development workflow for your team because they only have one code base to create and maintain thanks to a single unified Graphics API that delivers consistent performance across all devices next let's hop on over to the web we announced flutter on the web as a technical preview in 2018 with flutter 1.0 compiling flutter web apps to JavaScript and using HTML based rendering once flutter web joined Mobile in our collection of stable support platforms we transitioned from HTML to webgl by using canvas kit a web assembly powered engine leading to performance improvements and consistency across flutter web and mobile apps canvas kit uses the skia rendering engine which flutter mobile also used at the time giving both web and mobile the same Fidelity and rendering behavior and as flutters moved into its production era we're starting to see some other big bets pay off earlier this year we announced that all code in a flutter web app can now be compiled to WM making flut web apps faster than ever as an experiment we took the wonderous app which is built to demonstrate the richness and performance potential of flutter on Native devices and ran it on the web at the 95th percentile how fast were the slowest frames compiling to JavaScript and running it in the browser was nearly five times slower but that was just our first experiment we then compiled the app using web assembly which cut the difference between web and Native in half as a result we've stopped asking ourselves how much faster is wasm than JavaScript and started asking how close can we get to Native speeds which is really perfect timing because as of mid 2024 all plugins developed by the flutter team are now wasm compatible as the saying goes It's always good to eat your own dog food so we've been using it to power Dart pad and flutters API docks the 327 release also introduces an experimental setting to run Dart and flutter Dev tools as a fully wasm compiled web app I happen to get my hands on some bench marks for this new wasm compiled version of Dev tools average total frame times are 27% faster while the outlier averages were significantly reduced as well all of this brings us to flutter support for desktop apps on Mac OS windows and Linux in November 2022 we removed openg from the Mac OS EMB better moving 100% to metal a win both for Speed and simplicity of the code base fast forward to today flutter is delivering the performance users expect from native applications on Mac OS Linux and windows it's no surprise that there are millions of users who are depending on experiences powered by flutter desktop one of those experiences was brought to life by RVE they needed a tool that could handle heavy Graphics rendering across multiple browsers and platforms so they rewrote their R editor an animation tool entirely in flutter to enable developers to create beautiful multi-platform illustrations on web Mac OS and windows as for upcoming improvements we're really excited to bring impeller support to Mac OS windows and Linux it's not quite ready yet but we'll let you know when it lands so to recap on mobile flutter investment in impeller is improving rendering speeds and opening the door to True 3D Graphics flutter web apps achieve benchmarks usually only possible on Flagship phones and flutter desktop apps are as performant as their native counterparts we're excited to see how flutter can help you on the journey to delivering apps that perform as beautifully as they look regardless of where you choose to deploy them up next Ander will talk a bit more about flutters robust developer experience and thriving ecosystem but before we get to that here's another Enterprise team that was really excited about the performance improvements that they saw after moving to flutter hi my name is t i work on flutter on L TV on your as each name suggest most STS are weab or Webb is very efficient to develop but not very efficient when it runs it's slower to launch and uses a lot more memory than a native b a native B is the opposite efficient to run difficult to develop so we always wanted on technology that was efficient both for development and execution back in 2021 we noticed flutter was a very promising new technology we ported the FL to us TV and wrote a sample application each performance was beyond our expectation after experimenting it for a real application TV Guide app for Japan we de decided to ship it in products now our customers in Japan are using the flutter app every day with success of the first step we are expanding flutter usage in Reverse tbs in 2025 flutter will be used for key applications in your TV globally adapting flutter on your version as simple as developing a flutter application for a smartphone we had to P the platter engine right plugins to show TV broadcast uh to play video and so on to use PL on our platform internationalization was another big are where we put our efforts and we still need to put more however we feel that it was a great decision to other flutter efficiency in terms of CPU and memory usage is a key factor for the success of our business another benefit you are expecting is you can port a floter based smartphone app to WE TV without too much effort we are glad to join the flutter ecosystem and hope we will contribute to make the wonderful technology even more wonderful thank you flutter has evolved to a thriving ecosystem that powers a host of apps across Industries this Evolution has been driven by people and the tools that Empower them from day one we've been obsessed with crafting an unparalleled developer experience and fostering a vibrant developer Community flutter development is fully supported in vs code Android studio and intellig idea providing development teams with a choice of idees for a productive workflow stateful hot reload is a signature flutter development experience feature it does away with the tedious development cycle of saving changes to code waiting for the app to recompile navigating back to your place on the app and finally seeing a change changes with stateful hot reload you instantly see a change the moment you save it transforms minutes long development Loops into subsecond iterations this seemingly simple feature has a profound impact not just on development speed but on the developer morale too flutter Dev tools built with the power of web assembly offers Rich debugging profiling and inspection capabilities the new flutter inspector in Dev tools makes UI debugging of even large complex apps a breeze and let's not forget Dart the language that powers flutter its coevolution with the flutter framework is a huge Advantage allowing us to deliver features like sound null safety Advanced concurrency we believe in sweating the small details too which all add up to significantly improved developer experience and more robust reliable and readable code the tooling and language features have enabled teams like Universal to see 44% faster release cycle since migrating to flutter and xiaomi auto an electric Vehicle Manufacturer to deliver their new car companion app with a team of four to five people let's look at pub. deev our package repository it now hosts over 50,000 packages connecting developers with pre-built production grade Solutions including front-end solutions for data visualization and multimedia playback monetization Solutions like video ad and integration with interactive media ads and payment processing with Google's inapp payments brain tree and stripe and even back in Solutions like Cloud compute integration with Firebase and app performance monitoring with Sentry any developer or organization can contribute to either new packages or to existing packages on P.D this open ecosystem Fosters

community-driven quality and Longevity flutters community-driven Spirit also extends to the framework itself since flutter 1.0 we've had over 1,400 open-source contributors to the main flutter repo that's more than 1,400 passionate developers shaping the future of flutter beyond the framework package ecosystem and tooling a rich ecosystem of production grade Solutions and services has emerged around flutter flutter flow for example offers a low code approach to building flutter apps accelerating development Cycles sure code Push Service allows flutter developers to push app updates directly to user devices server pod provides a robust and scalable solution for writing server side code in Dart and code MX cicd solution streamlines your flutter build test and release pipeline of course flutter also works with other common cicd Solutions like Jenkins this breadth of support ensures that you have the resources you need to succeed with flutter no matter your a project size or complexity we've also invested in building open- source toolkits that bring together project templates customizable widgets packages and documentation for building with flutter including our casual games tool kits to accelerate building 2D games with flutter such as card games or Platformers and our AI toolkit which helps you build and integrate AI features into your flutter app by providing customizable AI integration components for those looking for expert guidance a Global Network of flutter Consultants listed on flutterdev provides tailored support wherever you are in the world this vibrant ecosystem coupled with seamless integration with services like Firebase makes flut a Top Choice for building production ready apps for any screen at scale it's the reason why so many developers and companies are choosing flutter in production hi I'm Theo Garcia a senior s engineer at Super formula and we par with mg resource to support the NG Rewards app today I want to show you some insights on how flutter has supported or Enterprise level development we maintain an ambitious schedule of 24 releases per year dreamed by a team of 40 flutter developers across 7even front end teams we be using flutter seon initial launch in August 2020 one standard feature is how easily we integrate native code both with Community plugins or custom made enabling us to develop complex functionalities like digital roomies without any limitations flter documentation has also improved greatly over the last few years which we notice while recruiting and un booring new developers this have made it easy for new team members to find a single source of Truth get up to speed quickly and contribute effectively our core values in development are Community speed to Market and stability FL single codb support this by enabling rapid Development Across multiple platforms beyond the mobile app we've been able to use much of our codebase for web based tools for employees and kios cap for tablets and dark UniFi language has also inspired us to explore writing some server s side code in dark potentially reusing some data layers further streamil liing our architecture flutter has been a powerful tool for building and scaling the mg rewards up helping us deliver consistent and effective efficient experiences if you're considering flutter for your projects I hope this Insight help you IDE your decision happy coding so far we've shared how flutter has grown from an experiment to a production grade app framework we enable development teams behind some of the world's biggest apps and brands with a first class developer experience and help them Focus the resources they have on delivering amazing user experiences across all platforms with great performance but there's one more thing or actually a number of things as we move forward in F's production era it's essential that we continue to make developers more productive in delivering even higher quality apps each year we publish a road map that defines where the framework is headed so here's three things that I'm especially enthusiastic about in fl's future uh but first and note uh just like a band we do a lot of jamming on new ideas in the f team you know throwing rfts around uh building up drum beats testing out lyrics and while some of that hits tape and maybe even ins up on an album it's an inherent part of the ideation process that some ideas fail so as it teas some of these items from the lab please keep in mind that some of this will probably turn out to not really work and some of it will end up looking quite different by the time it hits the radio waves or in our case the stable Channel Kate talked about helping teams craft Innovative apps across the broad ecosystem of devices out there Andrew and rivers shared in the opening that more than one in four apps in Apple's App Store use flutter quite impressive I think let's look at our plans for supporting developers who are shipping apps to iOS we're giving our catino widgets which match Apple's design language and specifications a massive overhaul with new features and functionality so that users on iOS will feel right at home we're also upgrading the framework to recent Apple ecosystem standards such as replacing Coco pods with swift package manager it's our vision that flut enables everything you can do in Swift UI but while still allowing you to deploy your app to all the platforms and devices that your customers use we're also investing in tooling improvements to enable teams to iterate even faster we're designing a live widget previewer this lifts right in the IDE and can render individual widgets without needing to run the whole app we're also investigating support for visual editing of widget properties again directly from the previewer we believe this improves productivity makes UI development even more approachable and will blur the lines between developers designers and product managers of course interesting apps do a lot more than just painting pixels they need to take advantage of the apis and services available on the host platform today this either means finding a readymade package on our pup repository or writing cumbersome host bridging code using platform channels we're investing a lot in a new approach for this which we call Direct native interop our vision is to enable a simple and seamless mechanism for calling into platform lative apis directly from Dart whether the apis are in C Swift or cotlin uh say for example you want to prompt a user on Android to authenticate with a biometric such as face or fingerprint recognition with direct native interop you can write Dart code that calls directly into the Android X apis all the underlying Dart classes from mapping the host biometric apis to Dart would be handled automatically the local o plugin already supports biometric authentication but say this is a new API that's being introduced and we haven't yet done the work to build up these plugins with direct native interop you can write this direct code from day one by calling directly into the apis there is still a lot of work to validate that this approach will work end to end but we're making progress and are actively testing it by porting some of our own plugins we're hopeful that this can deliver a step change in productivity when it comes to platform interop we're also dedicated to maximizing developer productivity so we're exploring a few new ideas to make F code quicker to write and easier to read first up we're prototyping what we call decorators these are API short hands for styling your widgets for example to specify alignment or colors the code example shows three concise method calls that that decorated button by adding some padding a blue border and centered alignment we're also exploring a number of other dot features these include enom shorthands which abbreviate a bunch of common flutter code patterns where enom types are repeated in the API calls such as when setting alignment and primary Constructors which drastically reduce the overhead of defining smaller classes for example a point data class as I mentioned these are just a few examples we're exploring dozens of other potential improvements in the space it's been a long and exciting Journey for the Flor project we continue to do our best through revolutionize multiplatform app development to making developers and teams an order of magnitude more productive and to disprove theories that multiplatform Frameworks imply lower app quality we've now reached flutter production era and we have a deep and nuanced focus on supporting the millions of developers and teams that deliver Mission critical apps to users across the globe we've seen a tremendous ecosystem growing around flutter and I'd like to personally express my gratitude and appreciation for all the members and contributors of this vibrant ecosystem we could not have done this without you if you're not already using flutter we'd love to see you join us too and we could not be more excited about the future now back to our wonderful hosts rivers and Andrew all right time for some Q&A in a few minutes we'll be taking your questions live and directing them to leadership on the flutter and dart teams in the meantime though since Rivers has been nice enough to join us I thought we'd do a little Q&A right here excellent all right um so I know you noticed the the little boom box earlier when we were uh taking a break very cool brings me back yeah uh has got a kind of Grandmaster Flash look to it um and so that's actually running flutter right now on Raspberry Pi I believe and then a little LCD screen yeah mindblowing yeah and so yeah I there's a a bunch of community folk you know flutter supports six platforms officially but there are folks in our community who do experiments all the time to see what they can get flutter running on I saw somebody that was doing an alarm clock yesterday they posted a blue sky about it oh man I got to get into this yeah so um Roman Jaz uh he seems to get more work done as a side project and I do despite working for the flutter team uh full-time but yeah there's I mean there's it's one of the fun Parts about the SDK like we're all surrounded by a bunch of glowing rectangles and so why can't you run flutter on whatever glowing rectangle you want yeah so what does it do it streams music it streams music it streams music and so yeah we were listening to a riverse Cuomo solo track earlier and so we have it termed off because licensing music is no joke this is this is one of my questions I was planning on on slipping this in later but I was curious about how you interact with the community I I know like is there a GitHub account called goat punishment that you use to kind of hydr your identity a little bit no uh actually yeah when I started in 2015 just programming in general I started take with an online CS course oh cool and at the time I was just I had no habit for like being part of an online community and I was very private and I didn't take advantage of like the online Tutors or Discord or uh Facebook groups any of that I was just totally on my own and I I really suffered then I discovered stack overflow and I went that and that that place was a little bit intimidating and you know sometimes people are rough in there if if if you're a newbie like me but eventually I've I've come to feel like oh this is pretty safe and I just like I have the the literal picture of myself on the cover of the blue album as my GitHub picture and wow count name rivers comoo and okay it nothing bad has happened everyone's been really cool and if anything I've gotten some extra help from who come on like you know experienced programmers oh wow yeah it's it's been great that's really cool I'm glad to hear it um the community is the best part of developing with flutter we're very lucky to have the the folks again around the world that we get to work with um and it's very motivating for me yeah and uh Felix Angelov is flutter block right and very good Ventures yeah he's actually moved on from vgb by the way he's in another company called shorebird right now oh yes actually I've seen that name too um I didn't quite understand what they're doing but uh he's he was always like so helpful and nice U with flutter block and like why is this guy being so nice what's in it for him I don't quite quite understand it coming from a musician background where there's this there's sense of community between all the different bands and stuff but you wouldn't be like open sourcing your song like here come take this part of my song and use it and your good luck have it's just all public domain enjoy do people sample your stuff by the way um yeah I mean I mean not so much artists from our generation but new artists like sampling is a big thing or interpolating where oh I like that chorus let me use that chorus in my song I'll cut you in that kind of thing I'm at the age where people are now remaking things uh from when I was a kid uh and those people can all get off my lawn um so you you mentioned when you sort of got started learning do you are you a learn by doing person are you somebody that would like read docs or do you like videos or or those sorts of things like how did you sort of approach the task of learning what flutter was uh definitely learn by doing yeah I just dive in try to make something and back then it was Googling and stack overflowing now it's lming or whatever the I don't know what the Gemini is what we would say ask Gemini live yeah if you don't mind what are you working on right now like if you opened your Ide at home like what would be the on the number one on the recent projects list so to speak well I have I have my big projects and then my recent projects like my biggest project is called wefi and it's the the inter the interface is like a it's like a Spotify like uh music play streamer this is a Mr River neighborhood you can get to it online right with a through a web browser yeah it's a web app and IOS and Android it's called wefi now and but it it has just my demos thousands of them like 4,000 of them and yeah accumulated over like 30 years I demo yeah uh so the fans can stream my demos through this flutter app it's really cool oh cool and I'm also now like the lead developer maintainer of a meditation app called dma.org which I think is used by over a million people worldwide and I didn't build it but uh I'm you know fix bugs try to fix bugs without introducing new bugs and uh introducing new features like I just added a dark dark mode awesome yeah I mean it always starts with a web app for me mhm um in Firebase that's you guys right oh yeah they're sort of a sibling team for us yeah it's just so quick to get things up and running and it looks pretty Pro and I I just I can impress myself if no one else and and and then I go into my Discord server and see how the fans are reacting and keep evolving it and eventually and things can can go to the uh mobile apps too okay you mentioned Discord so fire fire base I was I was kind of curious you you had talked about Felix and and how much you enjoy using block I was curious are there any other sort of um libraries in the ecosystem that you you know like wefi you have to be using some kind of audio library yeah so many of my apps use just audio which is incredible how have you seen flutter change in the time that you've been using it or seen the flutter Community change if you've been around for 5 years you're kind of an old hat at this point well I came in right right around the the changed to null safety oh wow that would have been an interesting time to show up yeah I just feel like bit by bit things have gotten uh more like cooler and more professional and like things W widgets are a little Slicker and flashier just more fun stuff to play with I I think that might be a a a common reaction just because we you know we sort flutter his original Vision was to go to Six platforms and this was the part you know so you have uh web iOS Android Linux Mac OS and windows and when we got to that point it was like well what do we do now right you know and so a lot of everything cooler right yeah a lot of the work now is like how do we just make it make everything to the point that it just works yeah you don't have to mess with it that it's it's sort of uh just works out of the box so to speak oh my goodness so awesome thank you so much for being a part of this and for answering some questions with us uh I hope it's been fun for you it's been amazing all right and thank you again for being part of our developer Community woo all right that does it for our Q&A here I'm going to turn it over to our live Q&A featuring leadership from the dart and flutter team answering your questions hello everyone and welcome to the live Q&A dark and flutter leadership answering your question my name is Craig from the flutter developer relations team and I'm joined today by Todd vulker the director of engineering for flutter by Michael Thompson the group product manager for Dart and flutter and John McCutchen who we on the flutter team at Google affectionately referred to as the Uber Tech weed of flutter Todd Michael John thanks for joining me all right great so we asked on socials a few days ago for folks to submit their questions we've pulled a few Depending on time we may or may not be able to get into some additional live questions that have come in through the stream today but let's just kick it off and get into those questions we pulled over the last few days sounds great all right first one could you share some of flutters roadmap for the next two to five years so I can sleep good at night that's a great question uh who wants to take this one I would love to speak to this uh I don't know that I have recommendations on sleep but in terms of the road map we are investing a lot in making flut a great fit for building apps for the iOS platform we are adding even more kutino widgets which are our widgets that use sort of a apple inspired sign language uh we are working on a few tooling features for this area and then um integrating with standards like the Swift packet manager uh then there's another huge initiative which is interoperability so the ability to from that code directly to call into other programming languages whether it's something like cotlin or Swift or C uh and I think this is an area we're going to see a lot of advancements in over the next year or two something I'm very happy about myself uh and then lastly uh we're pushing a lot on sort of the the very low levels of improving flutter UI code itself uh making it easier to read easier to write uh this involves a bunch of work across the dark language team looking at potential new language features for investigating things like the Constructor syntax and removing some of the duplication and how you invoke some functions uh we're also looking at some of the apis themselves in the flutter framework uh so just a general push on making it really Pleasant to read and write code great yeah of those the ones I'm most excited about definitely direct native interop I think that'll also just free up a lot more time for sleep so it should help all of us okay question number two can we expect flutter WM soon working on Safari now that Apple has announced support for WM GC on Safari 18.2 I could probably take this one uh so yeah we our goal is to get to WM on the web 100% throughout U right now the we're working with apple and the webkit folks there are a couple bugs that we've been monitoring that uh allow us to to to run in a performant way whereas right now it's too flow um so we're experimenting with the newest version Safari and checking it out and as soon as it's all ready to go we are certainly going to turn that on okay great yeah definitely great to have full coverage of all browsers all right next question are there any plans for releasing a flutter specific IDE spicy oh good question uh so we do a lot of work in tools today uh we have a CLI that you can combine with any ID of choice uh we provide these integrated experiences with our plugins across editors like um Android studio and vs code and we've quite aggressively build out our Diagnostics and debuging Suite in flut def tools uh so I don't know that we're about to go build a full IDE uh but we're quite interested in partnering with anyone that might be interested in working with us yeah makes sense to me okay next question when are you going to add call span and row span to the table component all right I I love this one very specific uh one thing whoever asked this I would direct you to the two-dimensional scrollable package there's a lot of different table widgets out there in the framework in different packages the two-dimensional scrollable package is maintained by the flutter team has a bunch of great table widgets and includes the uh call span and Rose span attributes which of course extremely valuable and important anyone else have anything on that or are we good all right we'll move on to the next question all right after impeller what is flutters next big swing feature I'll take that one Craig um Michael's already uh sort of talked about it a bit but we are investing heavily in making it really easy to call native apis so if you want to use say an Android API that was released yesterday in some new Android SDK you'll be able to do that directly from Dart um and and that should dramatically simplify uh how you access native code in flutter and then the latency that it in time to access new native features yeah and to be clear you can always access a day one API today this will just make it a lot smoother for the developer you'll basically just have an import at the top of your Dart file there's no method Channel no code generation step you're just up and running immediately yeah we're removing a lot of cognitive complexity from uh you know that a flutter developer has to consider when they access native features and it's going to feel a lot simpler nice I'll just add that one of the one of the things parts that goes with that is also running on the same thread uh as the the native code as well so traditionally not only there been platform channels but you have to do a thread hop and that makes it a little bit more tricky um and we're we're removing that thread hop and making them all run on the same thread too should be good for performance too yeah once we stop the thread Hops and passing messages in string form back and forth uh will definitely save some Cycles right okay great well that continues to be one of the features that I'm personally most excited about so get back to work John all right next question can we expect to see flutter web using web GPU uh I could speak to that one um so our goal here is to expand the use of impeller so we've got impeller running on iOS as we now talked about it's Now the default on and Android working on on desktop we're experimenting with uh impeller on the web as well uh no promises here it's in the early days but the plan there is to deliver impeller everywhere and then whether or not we use web GPU or webg as kind of the backing layer to impeller on the web is just an implementation detail the point is we'll get to impeller all right next question how is the process on 3D rendering without out web view but with impeller I I can answer that one um so with impeller we are starting to preview the package flutter GPU which is a low-level API that will allow you to render any 3D scene that you'd want you could build a first-person shooter you could build something that displays a a product that you want to sell um but the API is lowlevel it's comparable but not exactly the same to like openg GL or Vulcan or web GPU as we were just discussing um on top of that though uh we also have an experimental package called flutter scene which allows you to take a a standard model that was modeled in say like a blender and display that as a widget inside of your flutter app um and so lots of work is happening there and this all sits on top of impeller which is another reason why we need to get impeller everywhere uh so that we can get flutter GPU and flutter scene everywhere okay yeah that's going to be a Brave New World when full 3d stuff comes to flutter I saw a lot of flutter GPU comments in the chat so that's great okay I think that is the last of the pre-selected questions so now we're venturing into the great unknown of questions that you have asked during the stream okay let's see here what is the best way for engaging animations in flutter I think probably many of us could comment on this is anyone particularly interested I certainly can go for it Craig all right I'll take it yeah so engaging animations in flutter I think is you know obviously implicit animations are there animation controllers are there implicit animations are not necessarily terribly engaging so the flutter animate package is a place where I personally love to go for tightly scripted you can you can nicely stagger animations with the flutter animate package and you can just perform you can put a lot of really nice polish on transitions in your app using that package of course if you want even the next tier of engaging animations a thing I often think of is like when you launch the Discord app that little way the the logo of of the Discord logo kind of spins around and kind of flashes in and out of existence I would reach to RVE for something like that of course L and others are also gr candidates but those are my personal go-to tools for engaging animations and flutter yeah I would just add just building on that I think it Rhymes a lot of what you just said uh hero animations in my experience a really good way to build engaging experiences where you have the same widget persists across different screens and has a a nice animated transition I think it really makes for better user experiences yeah and that's been in since flutter 1.0 that was there when I started in flutter a long time ago and and it's one of the kind of few design patterns in in mobile apps that hasn't really gone out of style so I think a hero animation is still you know classy in in an app so yeah okay next question oh boy that's small font okay I'm gonna do my best when did you get the oh where did you get the one quarter of apps uh Apple Store apps are coming from flutter what is the stat for react native this really small text guys and can you expand on that stat this is a really surprising stat and I'm very curious okay that that is a great question and do anyone uh have anything to say about that yeah I'm I'm happy to uh this is a number we got from App intelligence company apptopia uh they have a data platform where they analyze all the new apps that are being published to both the App Store and Google play uh and then they go and they find those apps and they analyze G sdks that are being used inside and we work with them to get understanding of how much followup is being used and that's where the number is coming from uh and we'll have a few more details about this the block post going out on our blog sh yeah think one thing about that too is that uh there's an assumption as you saw on the Rivers Cuomo you know Q&A that the number is much lower not just for flutter but kind of across the spectrum of different options um and I think one of the things we're highlighting in this event is flutter has incredible moment momentum in the industry and it's gotten to the point now where we will frequently hear of large companies come to us having already evaluated decided and close to launch in flutter whereas in the early days of flutter you know we would be working with them kind of hand inand they would nowadays blog about it sometimes before we've even you know heard that they're using flutter so there's a great number of companies that are out there using flutter and I think the apptopia data just uh you know shines a spotlight on that yeah I I stumble into new FL apps almost every week just in the apps that I use myself and that's a great feeling yeah absolutely all right next question okay ask flutter will the new decorators be the new approach to flutter or can we choose to use the approach we want that's a great question I think I can just very comfortably say we're not going to deprecate any widgets but Michael yeah so first of all uh anything we talk about in the road map section is as we mentioned uh somewhat EXP on right we always explore a bunch of different approaches we evaluate them we run user studies uh so we don't know exactly what this feature may look like when it ships yet because we are still experimenting uh but yes if we do it it'll be in an incremental way where you can choose to use it if you want and you can choose not to if you prefer the current syntax yeah one one of the benefits of flutter is that you can step into the code and really understand what's going on so we've made specific design choices over the life of the framework to not make anything kind of you know compiler magic or hidden away in a way you can't see what's going on so in the case of decorators uh they'll be optional and if you go look at what they're doing it'll be easy to understand code as to how they're using the existing apis yeah right they're going to be methods that add another widget or you know something like that and you're just going to realize oh this is exactly what I was doing before but I typed less you know something yeah yep okay next question are there any ch es when bringing widget preview I think I said I think I read that right yes are there any challenges when building out this widget preview uh feature how's it going again it's very experimental there's actually a bunch of challenges here and I think there are both technical challenges we would have to solve and

2024-12-18 22:55

Show Video

Other news