Lazy Flutter performance | Session

Поділитися
Вставка
  • Опубліковано 18 тра 2021
  • Learn the limits of performance with lazy-loaded content, and understand how Flutter can help build a smooth experience out of the box.
    Resources:
    Debug and profile your app with Flutter DevTools | Demo→ goo.gle/3ojoYLB
    Speaker: Justin McCandless
    Watch more:
    Flutter at Google I/O 2021 Playlist → goo.gle/io21-Flutter
    All Google I/O 2021 Technical Sessions → goo.gle/io21-technicalsessions
    All Google I/O 2021 Sessions → goo.gle/io21-allsessions
    Subscribe to Flutter! → goo.gle/FlutterYT
    #GoogleIO #Flutter
    product: Flutter - Troubleshooting and Performance; event: Google I/O 2021; fullname: Justin McCandless; re_ty: Premiere;
  • Наука та технологія

КОМЕНТАРІ • 78

  • @DebabrataAcharya93
    @DebabrataAcharya93 3 роки тому +20

    My man using vim with Flutter. Absolute madlad.

    • @kmp3e
      @kmp3e Рік тому

      It’s the only way I use it

  • @LucaFang
    @LucaFang 3 роки тому +10

    The procedural generation example is insane! Nice Work!

  • @BooleanDev
    @BooleanDev 3 роки тому +3

    that game was really cool, i never thought about creating a game with flutter

  • @MitchellWongHo
    @MitchellWongHo 3 роки тому +7

    Great demo! I really like the procedurally generated map demo 💯

  • @BlackSkyUploadTube
    @BlackSkyUploadTube 3 роки тому +1

    Truely and the only Cross-platform developing language!
    I use it when I make the dashboard for a project without I have learned UWP, and etc.

  • @danghaile5528
    @danghaile5528 3 роки тому +1

    Always exciting with Flutter!

  • @onetdev
    @onetdev 3 роки тому +1

    Wowzy, this tutorial outperformed my expectations.

  • @SethuSenthil
    @SethuSenthil 3 роки тому +23

    Yooo! That game example at the end was dope! I really wanna recreate Among Us now

    • @justinmccandless
      @justinmccandless 3 роки тому +1

      There was another Flutter game mentioned in the keynote today that looked really good, it was all 2d pixel art.

    • @doombois8170
      @doombois8170 3 роки тому

      @@justinmccandless may i know the link or timestamp? thankyou

    • @EdmanPAnjos
      @EdmanPAnjos 3 роки тому +2

      @@doombois8170 It was the bonfire engine, I think they didn't mention the name of the game bonfire-engine.github.io/#/examples

  • @korouiromcha8211
    @korouiromcha8211 3 роки тому

    These are the only videos without ads.

  • @nvrluki7608
    @nvrluki7608 3 роки тому +1

    Awesome, just what I needed

  • @ROWROLLIN
    @ROWROLLIN 2 роки тому +1

    Great idea and tips! I'm learning a lot with this video and others. Thank you! 😊
    By the way, as a Korean developer who love and use flutter I really thank to the flutter channel for the Korean subtitle!
    I love him/her who added that on this video. I clearly can understand what you are talking about! 😂 Hooray~!
    Also I've never heard of Flame! developing game with flutter? wow~ that's amazing! yay~!

  • @muhammedsibil8116
    @muhammedsibil8116 3 роки тому +62

    flutter is growing faster than speed of photons

    • @wdestroier
      @wdestroier 3 роки тому +3

      Isn't the speed of photons constant?

    • @muhammedsibil8116
      @muhammedsibil8116 3 роки тому

      @@wdestroier no it's not stable., it's like communist! 😜

  • @KhalidWar
    @KhalidWar 2 роки тому +1

    It's insane to see what Flutter is capable. Procedural generation makes me want to start making games in Flutter. Amazing!

    • @flutterdev
      @flutterdev  2 роки тому +1

      There's no better time to start making games in Flutter than now 😁🎮
      Check out the newly launched Casual Games Toolkit: flutter.dev/games?gclid=CjwKCAjwp7eUBhBeEiwAZbHwkRuPztRlKf1ygRt07z_vc_D1KnGdqd4Qz8AJrXz0493Tkamx3_aYGxoC8cgQAvD_BwE&gclsrc=aw.ds

    • @flutterdev
      @flutterdev  Рік тому

      Gaming and Flutter? Oh, yes we did! There are some great resources to help you learn how to build an amazing game. Check them out here: goo.gle/3DzLs42
      If you do make that game, share it! We would love to see what you create 🎨

  • @Kiriyaki65548
    @Kiriyaki65548 Рік тому

    Good job Justin! Nice.

  • @JigneshWorld
    @JigneshWorld 3 роки тому +1

    Great content, thanks 👍🏻

  • @mhadaily
    @mhadaily 3 роки тому +1

    Nice tips, thanks

  • @baraaaljabban9058
    @baraaaljabban9058 3 роки тому +1

    great topic, thanks

  • @Tonkuz
    @Tonkuz 2 роки тому +1

    Super useful ! thanks

  • @M37Shadow
    @M37Shadow 3 роки тому +4

    Good!

  • @cricgamerz2181
    @cricgamerz2181 3 роки тому +3

    A GOOD FLUTTER CHANNAEL

  • @LUKAS3675
    @LUKAS3675 3 роки тому +1

    using vim as ide is a nice tough

  • @ombhd1131
    @ombhd1131 3 роки тому

    this is going to be bigger and nicer

  • @glowiever
    @glowiever 2 роки тому

    the procedural generation is mind blowing!

  • @heshansandeepa9471
    @heshansandeepa9471 Рік тому +1

    Awesome

  • @thomasmabika7291
    @thomasmabika7291 3 роки тому +5

    do state restoration next please..

  • @JAICHANGPARK
    @JAICHANGPARK 3 роки тому

    awesome

  • @azackmatoff2570
    @azackmatoff2570 3 роки тому

    Haven't watched the video yet, but this is exactly what I need now.

  • @yohanweerasinghe5182
    @yohanweerasinghe5182 3 роки тому

    What is the Debug tool you are using? I think you are in Visual Studio code, but what's the debug tool to monitor the MB size and all?

  • @delmontee
    @delmontee 2 роки тому +1

    Great video - question...what's the reason for the existence of "singleChildScrollView", when "ListView.builder" always handles it better? Is there any time when singeChildScrollView would be a better option?

    • @audisatriaharyanto4609
      @audisatriaharyanto4609 2 роки тому

      I think it is exist if we want to do a simple scroll of a fixed set of menu, widget, etc. Not a (presumably) large set of data.

    • @soulwriter9655
      @soulwriter9655 Рік тому +1

      Just Imagine you have a simple screen with few text widgets and you want to be sure that it is readable on devices with small displays. That's when I use single child scroll view. Very fast to write, and you don"t need to worry about its performance because the small text widgets are very light.
      A good example would be FAQ screen in settings and such.

  • @AkashSingh-cr7ly
    @AkashSingh-cr7ly 3 роки тому +1

    the procedural generation is part is awesome(zoom in and out) where can i find the code of this part??

    • @justinmccandless
      @justinmccandless 3 роки тому +2

      Here you go. I had planned to show the code in the talk but I couldn't fit into 15 minutes. github.com/justinmc/flutter-lazy-performance

    • @AkashSingh-cr7ly
      @AkashSingh-cr7ly 3 роки тому +1

      @@justinmccandless thanks for the reply and share the code :)

  • @pianoman16
    @pianoman16 Рік тому

    I don't get the zooming thing at the end. Why doesn't Flutter just tell you what cells are visible when they zoom just as it does when they pan?

  • @Wilhelm_LAS
    @Wilhelm_LAS Рік тому

    There should be a way to block popping problem. Like instagram, it doesnt lags when i scroll down.

  • @tonytins
    @tonytins 3 роки тому +1

    13:08 Part UI Framework. Part 2D game engine.

  • @DominikRoszkowski
    @DominikRoszkowski 3 роки тому +3

    Is there any chance to get the demo source code?

  • @timothychng7747
    @timothychng7747 3 роки тому +6

    Please make a tutorial on how to use Vim with Flutter. Do you get auto complete or in-line docs using vim?

    • @ulbsualbrykya7141
      @ulbsualbrykya7141 3 роки тому

      you can use vscode vim plugin on vscode

    • @justinmccandless
      @justinmccandless 3 роки тому

      Here's my config, should be mostly up to date. I really should clean it up and make a tutorial, thanks for the idea. github.com/justinmc/dotfiles/blob/master/init.vim

  • @konfinoyair
    @konfinoyair 2 роки тому

    5:19 Justin Time

  • @JohnDoe-jc4xp
    @JohnDoe-jc4xp 3 роки тому +2

    so how do we prevent pop in?

    • @justinmccandless
      @justinmccandless 3 роки тому

      I think there's a tradeoff depending on how your app will be used. You could trade a bigger memory footprint for less pop in by loading more items in advance, for example. I probably would have gone into more depth about that in the talk, but I really wanted to include the procedural generation demo :)

    • @rvb6516
      @rvb6516 2 роки тому

      @@justinmccandless hi how can we load more items in advance ?

  • @the_fluffychan
    @the_fluffychan Рік тому

    any extension and tutorial for vim with flutter?

    • @flutterdev
      @flutterdev  Рік тому

      Hi there!
      We think you might find the following resources helpful:
      Full vim config here :
      goo.gle/3OZWtOT
      Dart-vim-plugin and coc-flutter:
      goo.gle/3zyYH1V
      goo.gle/3d6LhT2.
      Hope this helps 😎

  • @shulelite_ke
    @shulelite_ke 3 роки тому

    Improve dart at the same rate so that we can abandon python for intelligence services . Flutter forever

  • @32zim32
    @32zim32 3 роки тому +1

    I can not understand how it is possible that we can run games with a lot animations, sounds, networking and other stuff, but we can not scroll 100 items without frame drops

    • @ulbsualbrykya7141
      @ulbsualbrykya7141 3 роки тому

      because of JVM. it limits our app memory usage, the bigger the memory it consumes the laggier it becomes. so we need to implement lazy performance like the video demonstrated

  • @viditkhanna3721
    @viditkhanna3721 3 роки тому

    The scrolling problem with Flutter web is really serious.

  • @DigitalDesignET
    @DigitalDesignET 3 роки тому

    Why do I feel like flatter is made just for me?

  • @0x0blu
    @0x0blu 3 роки тому +4

    Imagine non-developers reading the title of the video 😂

  • @viniciusbarros9361
    @viniciusbarros9361 3 роки тому

    I would like a paid internship opportunity for a startup in the US. if you can point me to any opportunities. i'm from brazil and i'm studying flutter for a while and i have experience in other languages. I'm perfecting my English too. if you can help me. thanks

  • @viditkhanna3721
    @viditkhanna3721 3 роки тому +1

    We need a widget like recycler builder from native Android.

    • @ulbsualbrykya7141
      @ulbsualbrykya7141 3 роки тому +1

      using SliverList/ListView or SliverGrid/GridView on Flutter is equivalent of using RecylerView/RecyclerBuilder on Android. They give us those recycling feature a.k.a. caching the only needed items.

    • @viditkhanna3721
      @viditkhanna3721 3 роки тому

      @ulbsu albrykya but, if I am not wrong, the recycler builder also recycles and reuses the already made widgets while scrolling, which improves the performance.
      Does listview do that?

    • @ulbsualbrykya7141
      @ulbsualbrykya7141 3 роки тому

      @@viditkhanna3721 from my experience, yes it does. I set automaticKeepAlives to false though, so it doesn't keep unnecessary items on screen. you can read it more on flutter's doc about ListView

  • @maksimryabovol4592
    @maksimryabovol4592 3 роки тому

    But InteractiveViewer don't have a builder constructor :(

    • @justinmccandless
      @justinmccandless 3 роки тому +1

      Not in stable yet, but here it is in the master docs: master-api.flutter.dev/flutter/widgets/InteractiveViewer/InteractiveViewer.builder.html

  • @user-tx4rq5sy1t
    @user-tx4rq5sy1t 3 роки тому

    ScrollView vs. RecyclerView