Fix a memory leak in Flutter (

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 มิ.ย. 2024
  • We fix a memory leak in the Flutter framework. This work was brought to you by my GitHub sponsors. Please consider becoming a monthly sponsor, too! github.com/sponsors/matthew-c...
    ✪ Start a bounty 👉 flutterbountyhunters.com
    ✪ Say, Hi 👉 / flutterbounties

ความคิดเห็น • 53

  • @aytunch
    @aytunch หลายเดือนก่อน +8

    Perfect real time contribution from investigation to PR. You deserve to be sponsored by many more of us!

  • @Elguri-yk7rb
    @Elguri-yk7rb หลายเดือนก่อน +5

    I want to see more of this kind of educational videos

  • @mohamed-fatta
    @mohamed-fatta 19 วันที่ผ่านมา +1

    I don't even code in Flutter but i love your explanation of the Bug and the critical thinking, thank you

  • @abdushakoor0099
    @abdushakoor0099 หลายเดือนก่อน +10

    This was so cool to watch.

  • @patrickwitter4437
    @patrickwitter4437 หลายเดือนก่อน +5

    This is insane ! How have I not heard about this channel before. Keep it up

  • @abdullahalamodi5455
    @abdullahalamodi5455 หลายเดือนก่อน +4

    this is really next level of tutorials, keep it up, thank you .

  • @verticrow
    @verticrow หลายเดือนก่อน +1

    Really awesome to see the whole process! Thanks for all that you do.

  • @AkashSingh-cr7ly
    @AkashSingh-cr7ly หลายเดือนก่อน +4

    That's awesome work you are doing, lots of learning here, keep it up.

  • @mattlampe
    @mattlampe หลายเดือนก่อน

    This was very cool to watch, I've made some contributions to packages I've changed/fixed before and that always feels really cool, but this made fixing something in the flutter framework feel more approachable as it always seemed so daunting before. Thanks for making this video!

  • @mboyamichael7618
    @mboyamichael7618 หลายเดือนก่อน +4

    Great Work!

  • @nemrdev
    @nemrdev 12 วันที่ผ่านมา

    This is what I call an awesome precise and organized work, keep it up🔥, to be noted, I understand that we sometimes get mad at others mistakes but always remember we’re all humans

  • @seriouslyiknowhowtoread
    @seriouslyiknowhowtoread 24 วันที่ผ่านมา

    Dude, straight up I will be becoming a sponsor as soon as my project gets ready for Flutter development ( 2 months )

  • @mkc11267
    @mkc11267 หลายเดือนก่อน

    Learned a lot! I hope I which I could sponsor you but I currently have no work lol. But please continue publishing videos including in your other channel. Your contents are literally diamonds in flutter community.

  • @momshaddinury
    @momshaddinury 25 วันที่ผ่านมา

    This is the kind of video a lot of us need right now. Please keep this up. I am going to share this with my community.

    • @FlutterBountyHunters
      @FlutterBountyHunters  25 วันที่ผ่านมา

      Would love to do more. I'm currently waiting for 3 more people (20) to sponsor me monthly on GitHub. That's when I'll fix the next bug.

    • @momshaddinury
      @momshaddinury 23 วันที่ผ่านมา

      @@FlutterBountyHunters Would you kind enough address the fix for the following error?
      Target of URI doesn't exist: 'package:process_runner/process_runner.dart'.
      Try creating the file referenced by the URI, or try using a URI for a file that does exist.

    • @momshaddinury
      @momshaddinury 23 วันที่ผ่านมา

      Never mind, I just realised that test_private is another mini flutter project that has its own dependencies. I just ran pub get inside of it, now it's fixed.

  • @theGoldyMan
    @theGoldyMan หลายเดือนก่อน

    I felt like Mr Carroll was at the bring of saying some slurs. I was at least. That was a good experience watching this process. Decoding the source of some part of flutter is just madness, I feel we are missing a huge chunk of information about the context in which this feature was developed. Wasn't there a design doc? You have my respect since the times before you deleted your flutter challenges, I miss them so much. Keep up the good work. Thanks a lot for this video.

  • @iamvalenci4
    @iamvalenci4 25 วันที่ผ่านมา

    beautiful, really next level

  • @yurtemre7
    @yurtemre7 5 วันที่ผ่านมา

    Such a great video! ありがとうございます

  • @brethagen7776
    @brethagen7776 18 วันที่ผ่านมา

    I love that you fully setup your tests and didn't use global objects. It's really great to not abuse DRY in tests so the SETUP of the test is very explicit on the requirements. A little "setup" method is fine here or there. But these end up getting reused over and over where not all of the setup is really needed and tests are bloated.

    • @FlutterBountyHunters
      @FlutterBountyHunters  18 วันที่ผ่านมา

      Definitely. Centralization, including re-use of globals, is a (possible) performance improvement, and a (possible) typing reduction, at the cost of organizational communication. In most cases, communication between programmers is harder to maintain than performance and speed of typing.

  • @DominikRoszkowski
    @DominikRoszkowski 28 วันที่ผ่านมา

    That's been a cool journey :)

  • @aliounesakho8582
    @aliounesakho8582 20 วันที่ผ่านมา

    hi i'm new here and i wanna say i dont regret at all the time i spend here. it was an absolute pleasure to watch. +1 sub +1 like

  • @zawhtetnaing5035
    @zawhtetnaing5035 หลายเดือนก่อน +1

    Awsome video. Learned a lot from this. Will you be doing Live Streams in the future?

    • @FlutterBountyHunters
      @FlutterBountyHunters  29 วันที่ผ่านมา +1

      No plans for it, but it's always a possibility.

  • @user-cv6kf4bk1q
    @user-cv6kf4bk1q 28 วันที่ผ่านมา

    perfect video. subs!

  • @tomjerry5772
    @tomjerry5772 21 วันที่ผ่านมา

    bro i heard it today.. damn yoo. keep it

  • @ShawnBlais
    @ShawnBlais หลายเดือนก่อน +1

    Seems like you just didn't register that value is a `ValueNotifier` and it's updated in `onTriggered`. So it's totally expected that you couldn't find anywhere where it updates the value internally. By design it defers to `onTriggered` to set the value, and the widget uses `notifier.addListener` to act on those changes.

  • @BrendansReasons
    @BrendansReasons 20 วันที่ผ่านมา

    Who is this, there're no sunglasses

  • @maurice9826
    @maurice9826 13 วันที่ผ่านมา

    could you record a video showing the settings of your IDE?
    i would like to leave vscode, intelijj seems to be better for working with android and java

  • @ferdynandkiepski5026
    @ferdynandkiepski5026 20 วันที่ผ่านมา

    You have auto in C++, but many codebases forbid it. The same with the lint to specify the type. LLVM style makes the most sense to me, with allowing auto when it improves readability. Do you think that devs don't think as much about the lifetimes of objects and freeing them at the end of it, in a GC language like Dart? Also how is the performance of Dart compared to Go? Regarding the UX of observatory, even though I have never touched it, it is way easier to pick up than a cli debugger like gdb or lldb. Just by looking at it for a bit it made sense.

    • @FlutterBountyHunters
      @FlutterBountyHunters  18 วันที่ผ่านมา

      I'm not familiar with Dart or Go's performance characteristics. The UX for observatory is certainly preferable to a CLI system. But it could also certainly be a lot better - especially for people like me who aren't familiar with standard visualizations of memory usage and other performance analytics.

  • @SlNightFury422
    @SlNightFury422 หลายเดือนก่อน +1

    Respect. 🎈🎈🎈🎈💓💓💓💓

  • @maherov1930
    @maherov1930 หลายเดือนก่อน +1

    I don't believe that you need to remove the history of undo redo if the widget lost focus
    , but only if it is disposed.....if we write in text field some texts and then jumped to another one, in your case we can not redo anything right?
    I hope you got my points cuz English is my second language

    • @FlutterBountyHunters
      @FlutterBountyHunters  หลายเดือนก่อน

      That point relates more to Flutter's undo/redo feature, rather than this bug fix. Regardless of how undo/redo works across multiple focus nodes, there was a memory leak that needed to be fixed.

  • @britannio
    @britannio หลายเดือนก่อน

    Could you use git interactive staging (git add -p) to avoid committing the formatting changes?

    • @britannio
      @britannio หลายเดือนก่อน

      Or just the IntelliJ git diff UI.

    • @FlutterBountyHunters
      @FlutterBountyHunters  หลายเดือนก่อน

      Yeah both of those would probably have worked. But I never use those tools so I'd have to deal with the learning curve there first.

  • @philcazella7521
    @philcazella7521 3 วันที่ผ่านมา

    So I searched the flutter Issues like with the following "is:open label:P3 memory leak " and second on that list #144871 - [Android] focus_manager _TypeError Null check operator used on a null value
    What are the chances that iOS specific conditional you found at time 33:05 in this video is the cause?
    (comment edited because the referenced timestamp was incorrect)

    • @FlutterBountyHunters
      @FlutterBountyHunters  3 วันที่ผ่านมา

      The timestamp you linked to is at the end of the video.

    • @philcazella7521
      @philcazella7521 3 วันที่ผ่านมา

      @@FlutterBountyHunters Opps, my bad.... try 33:05 (it was the part where you were laughing about (defaultTargetPlatform != TargetPlatform.iOS) { )

  • @sudipraaz
    @sudipraaz 21 วันที่ผ่านมา

    flutter USSD background processing plugin need for single and multi-session with dynamic sim 1 or sim 2 choosing function plugin needed. help anyone

  • @kishandhankecha
    @kishandhankecha หลายเดือนก่อน +2

    #136245 Could this be the second fix?

    • @FlutterBountyHunters
      @FlutterBountyHunters  หลายเดือนก่อน

      Maybe. Navigator is a big mess. It has lots of problems and they touch a lot of places. Is this a problem that's holding you back?

  • @ulmasbekrakhmatullaev8808
    @ulmasbekrakhmatullaev8808 24 วันที่ผ่านมา

    Poor P3s

  • @ferekfrankburt
    @ferekfrankburt หลายเดือนก่อน

    Выглядит вроде как не сложно

  • @HenryIkoh
    @HenryIkoh 21 วันที่ผ่านมา

    The camera not a big deal. The code is more important.

  • @StingSting844
    @StingSting844 หลายเดือนก่อน +1

    Good stuff🎉. I think it would be great if talking about the person who contributed to the bug was avoided. Doesn't help the content in anyway

    • @joe5head
      @joe5head หลายเดือนก่อน +3

      When did this happen? Unless I missed it the feeling I got was talking about the code !== Talking about the person who wrote the code. Saying why a certain line should not exist or is bad !== Saying the same about the person who wrote the line
      I think the critical parts of the video have the most potential for insight but can also see that frustrations/rants can be easily misinterpreted

    • @FlutterBountyHunters
      @FlutterBountyHunters  หลายเดือนก่อน +2

      As you say, no names were named. Except I said that Taha and Justin are usually helpful with PR reviews.
      When it comes to the code, if we don't acknowledge problems and poor decisions then no one will ever think to change their approach. And if I don't tell the audience that something is a problem, then the audience might start contributing to Flutter and do more of it!