Testing, JSON serialization, and immutables (The Boring Flutter Development Show, Ep. 2)

Поделиться
HTML-код
  • Опубликовано: 5 авг 2024
  • In this episode, Andrew and Filip address a bug from the last episode that a user mentioned in the comments.
    Then, they continue to develop with Flutter and cover parsing Json, using built_value (Dart’s open source package for immutable object models), and widget testing in an emulator.
    Let us know your thoughts and requests for future episodes in the comments below or on Twitter using #BoringShow.
    Watch more episodes of the boring show here → bit.ly/BoringShow
    Get started with Flutter → flutter.io
    Try a Flutter codelab → goo.gl/d3fHPo
    Join the conversation → goo.gl/68oUnb
    Subscribe to the Google Developers channel → goo.gl/mQyv5L
  • НаукаНаука

Комментарии • 126

  • @kushtra24
    @kushtra24 5 лет назад +11

    Loved how Filip did the noise, and then said "it's not part of flutter, Yet" at 12:38

  • @sudhanshusiddh9303
    @sudhanshusiddh9303 6 лет назад +51

    Loving the show! Eagerly waiting for the next episode! The pace of the video is perfect and the way you guys are working is exactly how a normal developer works in day to day life, breaking things and learning while fixing those things. Excited to see you complete the built_value portion and move on to fetching data from network. I hope you guys will cover widget testing when a server call is involved and how to use HttpOverrides. Thanks again for doing this show, it is really helpful for new flutter developers!

  • @philosophia5577
    @philosophia5577 Год назад +1

    Its been 5-6 months from the last Boring show. Please release at least 20-30 every year or more, if you are generous, but anyways, great work by the Flutter Team

  • @dibaliba
    @dibaliba 6 лет назад +17

    I like the scene that Andrew introduce the event loop model that flutter use and they write code start with a test, it is just a great thing to see how top coder code .

  • @tomrakey
    @tomrakey 6 лет назад +4

    Was checking the channel constantly waiting for the episode, love the show and love the channel in general, great help for a new dev like me. Thanks guys! Can't wait for episode 3!

  • @mokhosh
    @mokhosh 6 лет назад +32

    Thank you guys, it's great that you're hearing comments, moving towards more advanced topics and not trying to make tutorials.
    The only thing that remains is, please do it more often!

    • @redbrogdon
      @redbrogdon 6 лет назад +10

      We're planning to. The first was just a test to see if the format was useful for people, but we're geared up to make these a regular thing now. :)

    • @mokhosh
      @mokhosh 6 лет назад +4

      It is, actually now that you mention the format, I love the interaction between you two and how it is fun but not over the top like a lot of other videos on this channel.

  • @nobodys2358
    @nobodys2358 5 лет назад +1

    They call it boring, but for me that's the most exciting thing I ever watched on youtube! The moment with debugging the weird test 47:30 was just utterly absorbing! And you know, this whisper "what are we missing?" around that timecode, I can imagine that to be in a movie trailer for "The Boring Show" with dramatic music and building up atmosphere!

  • @mihaimanole2643
    @mihaimanole2643 6 лет назад +30

    I had forgotten about this show when you appeared in my subscription list. Took me by surprise to hear my name as a student is asked suddenly by the teacher as the class starts. Luckily I had no homework to do. I am satisfied with the answer but still my mind is unsettled because I don't know how the rendering engine is working in Flutter. It is reacting but how reacts?
    I like to see you both in all kinds of problems and how you react : confused debugger, conflicts in the package manager, in reading the prospect of built_values. It's fun.

  • @ReubenTurnerMusic42
    @ReubenTurnerMusic42 6 лет назад +7

    Thank you so much for doing this show! Please keep on going!

  • @guixiangcao4478
    @guixiangcao4478 5 лет назад +2

    Loving the show! Loving you guys! Loving the taking style and the coding - debugging content, it was so real.

  • @prashantmaharana3467
    @prashantmaharana3467 3 года назад

    Great job Team, it's really enjoyable and the pace is perfect, got to learn a lot from this and the previous episode.

  • @hariv846
    @hariv846 5 лет назад +1

    Little late to the show. Loved the show. Enjoyed and grasping concepts of Flutter... Kudos to the team :) :)

  • @charleskinniburgh7206
    @charleskinniburgh7206 6 лет назад

    I think the format is really great and as a beginner in Flutter/Dart programming I like the detail you get into. If anything, I would appreciate more explanation but understand that there may be others who want less. Personally, I would also appreciate a few more words up front on what you are trying to do and why you have adopted the approach you have. Having said that, I could watch you two all day and I am sure my programming skills would improve markedly - not to mention my coffee drinking capacity!

  • @satisfakshin
    @satisfakshin 6 лет назад +1

    Guys, these are awesome! Please do some serious state management with Built Value + Built Redux! You can give us a 2-hour show if you want. I'm certain most people who follow you have done a lot of basic leg-work in Flutter already. Keep breaking things and coding the way you do!

  • @santoshmainali153
    @santoshmainali153 3 года назад

    Watching this after the null safety. You guys are fun to watch and informative.

  • @danvilela
    @danvilela 5 лет назад

    Hahah i wasnt watching it because of the “boring” title but now i gave it a chance and it is actually pretty good! Cool keep it going!

  • @dimayurchenko4859
    @dimayurchenko4859 2 года назад

    Thank you! It wasn't boring at all! I was chilling with you and learning something new!

  • @witnessmanyange4885
    @witnessmanyange4885 5 лет назад

    Keep the episode going guys, we are loving the Boooring show..... If you can add

  • @r9ckless
    @r9ckless 5 лет назад

    Awesome show! Please upload more like this.

  • @BipinOli90
    @BipinOli90 6 лет назад +1

    thank you for doing this. Love to know more about flutter's inner architecture.

  • @AggieNC
    @AggieNC 5 лет назад +6

    Greetings from the Future, folks! With Dart 2, you can decode that json String with one line!
    List parseTopStories(String json) => (jsonDecode(json) as List).cast();

    • @ernstpierre4068
      @ernstpierre4068 5 лет назад +2

      how is that more efficient? if it is the case. Written human-readable code is really important. From the original code a small improvement could be, to not copy the "parsed list" to a new "list of ID" but instead just return a spread like this `return [...parsed]`

  • @BotanAbdullah
    @BotanAbdullah 5 лет назад +2

    We need more of these videos.

  • @AvinashSingh-nq5ud
    @AvinashSingh-nq5ud 6 лет назад +1

    I Love this Series. Please make more videos.

  • @franklinoladipo2343
    @franklinoladipo2343 3 года назад

    These video series are really helpful!

  • @amugofjava
    @amugofjava 6 лет назад +1

    Another great episode, though I did find myself shouting at my screen at about 50mins, "You're trying to watch parsed before that line has been executed! Step over it!" 😂

  • @guillegarciaperez
    @guillegarciaperez 6 лет назад +1

    Thanks for this videos! They are really helpful to start in the flutter world :)

  • @MohFared-hp1jx
    @MohFared-hp1jx 4 года назад +1

    i Love it really thank you guys, i am learning Flutter and i find this very useful for me

  • @ritvijsaxena7201
    @ritvijsaxena7201 4 года назад

    Loved it! Examples for (de-) serialization for Lists and a List of objects would also be great! :D

  • @ctykaya
    @ctykaya 4 года назад

    I think this is hilarious show. You guys doing great. I learn a lot from this show.

  • @benjaminli21
    @benjaminli21 2 года назад

    Start watching the whole show from the very beginning in 2022... anyone? And the stuff covered in the show still relatable 4 years later.

    • @benjaminli21
      @benjaminli21 2 года назад

      And I think my new year's resolution is to binge-watch this show more instead of the soap opera😅

    • @2asdfdas
      @2asdfdas 2 года назад

      Yea. Kinda weird though seeing this not being null safe. 46:05 The factory is nullable, yet the Article object (l. 38) is not

  • @anuragpola
    @anuragpola 3 года назад

    Watching it very late but loving it and getting to know things which I cannot through a course or tutorials.

  • @rtech8779
    @rtech8779 4 года назад +1

    You guys are awesome 😁

  • @davidkanai6944
    @davidkanai6944 6 лет назад +13

    i was waiting for part 2
    thank you!

    • @flyercow
      @flyercow 6 лет назад

      Which one is part 1?

    • @ibrahimshaglil1141
      @ibrahimshaglil1141 6 лет назад +4

      ruclips.net/video/yr8F2S3Amas/видео.html

    • @flyercow
      @flyercow 6 лет назад

      Ibrahim Shaglil Thanks

  • @xeno7828
    @xeno7828 2 года назад

    Very helpful
    keep going :)

  • @ColonelloJune
    @ColonelloJune 3 года назад

    Didn't know I love boring stuff like this!

  • @codycrank3465
    @codycrank3465 6 лет назад +3

    More of this plz🐱

  • @semicognitive
    @semicognitive 6 лет назад +33

    Can you guys do some more explanation about Futures and async and await type things in Flutter?

    • @redbrogdon
      @redbrogdon 6 лет назад +18

      Yes! We're thinking of finishing up built_value and then starting on networking in the next one.

  • @andriidamm3538
    @andriidamm3538 5 лет назад +1

    49:00 My suggestion is that you added a breakpoint while debug mode was running.

  • @ra3eddy
    @ra3eddy 6 лет назад

    White label product.
    Currently have native iOS and android apps.
    For each of our clients, we have an iOS scheme, and an android module.
    The architecture is very simple, and the only differences from client to client are some configurations (colour scheme, icon, app name, bundle identifiers) and the firebase project config file. The modules and schemes all have a common code base that has all the pages, business logic etc.
    Was wondering if achieving this kind of architecture would be simple in Flutter
    Great show!

    • @kushtra24
      @kushtra24 5 лет назад

      Very simple to do this with flutter, you can actually make an app and add theme functionality to it, for scheme, and make seperate directions for icons, or add icons based on the client/user, let the client choose their app name atc..

  • @caetzar
    @caetzar 5 лет назад

    Props for making beeps.

  • @sanukumar4845
    @sanukumar4845 5 лет назад +4

    0:00 Bug fix
    5:30 Testing
    16:40 JSON Parsing
    24:45 Deserialising a list
    37:00 Deserialising an object
    50:00 Source generation
    53:44 Built value
    59:53: Solving flutter dependency issues like a pro

  • @mohamedamir2931
    @mohamedamir2931 4 года назад

    Nice video

  • @kalinkareis6065
    @kalinkareis6065 3 года назад

    PLEEEASE Keep doing it!

  • @roshanjungkunwar8440
    @roshanjungkunwar8440 4 года назад +1

    It's great show.

  • @codehubng4865
    @codehubng4865 5 лет назад

    Nice one

  • @wiaamkareem6186
    @wiaamkareem6186 4 года назад +1

    Thank you for this lecture ,i have a a question and i searched about it and i didn’t get an answer the question is how to make json encode/decode for datatype like timeofday

  • @constChg
    @constChg 2 года назад

    #theBoringShow
    really love the show

  • @user-uz9fw2ln8p
    @user-uz9fw2ln8p 5 лет назад +1

    so where can i find the source code of this show ?

  • @neginaryapour2062
    @neginaryapour2062 5 лет назад

    i have a problem .i did exactly what you did in this video but i got an Error: Not found: 'dart:ui' why did it happen?and how can i fix it?

  • @berosolo866
    @berosolo866 5 лет назад

    hilarious and decent tutorial

  • @anooptj9730
    @anooptj9730 4 года назад

    please continue your videos

  • @AlexandreDelBigio
    @AlexandreDelBigio 6 лет назад +2

    I love Dart !
    For json de/serialization json_serializable package is a must have !
    Would be nice to have tips and tricks and good practice on how to share codebase between AngularDart(5) & Flutter.
    Thank

    • @murkyglasses
      @murkyglasses 6 лет назад

      Hey I am hoping to know the advantages of using json_serializable vs built_value? I tried a lazy google search and found no real good explanation and am currently too lazy to try both. Hope you can give light. Thanks in advance!

    • @AlexandreDelBigio
      @AlexandreDelBigio 6 лет назад +1

      I have never used built_value so my answer may not be accurate, but in my understanding is that built_value is a full serialization library, json_serializable is meant only for json serialization/deserialisation (ie restful api). Also, it (looks) simpler to implement, you just need to define your class and add the annotation @JsonSerializable() to it.

  • @bhoomikaharkhani8678
    @bhoomikaharkhani8678 5 лет назад

    Well I am newbie in flutter. I created json_parsing.g.dart class with build_runner but on it doesn't update with change in json_parsing.dart. What could be the reason?

  • @ajinpanthayil
    @ajinpanthayil 6 лет назад +3

    Flutter does tree shaking to remove unused code parts from project and libraries. Which is against reflection because it expects everything in the code to be there at runtime. I read this somewhere as the reason to exclude mirror library from flutter.
    And these episodes are nice. I would like to hear about architecturing a really huge app. I couldn't find any proper way of doing this. There were couple of articles but they are not practical and had too much boilerplate code. So I designed one architecture by myself. I wrote couple of source generators for that. It works but feels a bit hacky. I wonder if you guys have any thoughts about this?

    • @truongsinhtran-nguyen7129
      @truongsinhtran-nguyen7129 5 лет назад

      (limited) reflection in flutter is now available via github.com/dart-lang/reflectable

  • @nooralamshaikh3878
    @nooralamshaikh3878 3 года назад

    it slowly grows on you :)

  • @michelfeinstein
    @michelfeinstein 5 лет назад

    There's no reflection in Flutter because of the 60fps goal of the Framework. Reflection can be done AFAIK in any platform, even c++ does it in native code.

  • @philosophia5577
    @philosophia5577 Год назад

    I got completely lost from source gen and built value, Although I have opened bunch of channels to help me out but as it might have matured a lot, would love to see a Boring show video on it.

  • @kerolossliman7679
    @kerolossliman7679 5 лет назад

    it is nice to test on the device

  • @chaitanyadokara6654
    @chaitanyadokara6654 5 лет назад +1

    I am getting Error: Method not found: 'BuiltValueSerializer'

  • @DavidAnaya
    @DavidAnaya 5 лет назад

    What is the point of having a factory constructor if we also have a regular constructor? is that sort of like a static class method? Loving the show, btw

    • @MsStarbugs
      @MsStarbugs 5 лет назад

      David Anaya ,I think it can return null,regular can not

  • @russgeller2517
    @russgeller2517 6 лет назад

    Please test on Android One (1st Gen) devices. Those are low end/budget phones but quite powerful (Quad core/1G ram). On Shrine, scrolling is jerky (it has images), but scrolling on Contact Profile is fine (text only). On Studies> Animation, it really is laggy. Everything else is quite performant though. Btw, tested on Flutter Gallery from Play Store and release buld from /example from master.

  • @SchusterRainer
    @SchusterRainer 6 лет назад

    At the point in time you hit break point the code has not run yet. Just afterwards. That's why you just see the watcher value after the debug step.

  • @viratshukla7822
    @viratshukla7822 6 лет назад

    How to handle a case where sometimes I can get a field in json and sometimes not. Like this -
    {"id":"89", "name":"Flutter"} and sometimes like -
    {"id":"89", "name":"Flutter","address":"earth"}
    It might also be in form like completely missing or receiving null value (in case its a nested object)
    I am using plain dart convert library.

  • @dipujames5044
    @dipujames5044 5 лет назад

    can i integrate outlook api using flutter?

  • @vaynakhguitar
    @vaynakhguitar 3 года назад

    what mac do they use

  • @vigneshsrinivasan9692
    @vigneshsrinivasan9692 3 года назад

    whats dynamic and strongly typed?

  • @yudhisthirsingh8401
    @yudhisthirsingh8401 4 года назад

    Can I think of factory constructors as Static methods?

  • @ChasedByPenguins
    @ChasedByPenguins 3 года назад

    Guys, you know these keyboard shortcuts Mac / Win that show up on the screen when you press them. Is this an Android Studio plugin or is it a post production labelling?

    • @andrewbrogdon558
      @andrewbrogdon558 3 года назад +1

      I use this plugin, which advises about keyboard shortcuts: plugins.jetbrains.com/plugin/9792-key-promoter-x

  • @HuongNguyen-mt1uk
    @HuongNguyen-mt1uk 2 года назад

    Character In the video It's great, I like it a lot $$

  • @kasimak8204
    @kasimak8204 2 года назад

    wonder how to take a screenshot for failed flutter integration tests?

  • @yolo-mb4cy
    @yolo-mb4cy 4 года назад

    why use package:project syntax instead of just importing the dart file?

  • @duncan3534
    @duncan3534 5 лет назад

    liked for the epic switch

  • @emmanuelogbewe2334
    @emmanuelogbewe2334 5 лет назад

    Anywhere we can get a Flutter shirt ?

  • @cemxwekta358
    @cemxwekta358 6 лет назад +6

    The problem with flutter is Its performance on low end devices. It doesn't have that swiftness.

    • @redbrogdon
      @redbrogdon 6 лет назад +6

      What devices are you using? The team definitely wants a good experience everywhere, so if you're seeing poor framerates, we'd love to hear about it.

    • @cemxwekta358
      @cemxwekta358 6 лет назад +1

      Andrew Brogdon Turkcell T-60 which is mock up of ZTE Blade S6

    • @trinitynightclub1
      @trinitynightclub1 5 лет назад +5

      @@redbrogdon I love this response. True class. Much respect my friend. You guys are doing a good thing here and many of us appreciate and are grateful for Flutter and all of you. I am building a real production app for my business and am totally happy with the performance on all the devices I have tested so far. And my time saved to build is of infinite value to me and my family.

  • @saudiftekhar7845
    @saudiftekhar7845 6 лет назад

    Why iphone? Why not pixel?

  • @andresrestrepo823
    @andresrestrepo823 5 лет назад

    The Json examples are now available in this URL: github.com/HackerNews/API/blob/master/README.md

  • @raveeshdotme
    @raveeshdotme 6 лет назад

    My solution to the dependency conflicts which still exist when you search for individual plugins in the pub directory and install the latest, is to just use the vesions in this file:
    github.com/google/built_value.dart/blob/master/example/pubspec.yaml

  • @UsamaKarim
    @UsamaKarim 3 года назад

    factory constructor 35:51

  • @KozakBabai
    @KozakBabai 3 года назад +1

    The last 25 minutes were too hard for a newbie in Flutter

  • @mehmetedex
    @mehmetedex 3 года назад

    flutter come along way I am afraid to watch the pre 2020 videos because of the probability of a better way to write the same code now

  • @AlexanderMazuruk
    @AlexanderMazuruk 3 года назад

    This library github.com/k-paxian/dart-json-mapper has less boilerplate and more features

  • @naderelarnaouty521
    @naderelarnaouty521 6 лет назад

    Can i build a social network app using flutter I mean a complex one

    • @redbrogdon
      @redbrogdon 6 лет назад

      Nader Elarnaouty I don't see why not.

    • @sadabwasim9850
      @sadabwasim9850 6 лет назад

      There is a social network app totally written in Flutter you can Google it

  • @ArchanPaul
    @ArchanPaul 5 лет назад

    I wonder why Dart/Flutter does not have easy to use JSON serialization like GoLang. built_value brings unnecessary complexity and quite a lot of boilerplate code. ref : github.com/dart-lang/sdk/issues/36066

  • @ianldgs
    @ianldgs 6 лет назад

    Don't you guys think that json_serializable is simpler than built_value? I personally didn't like built_value

    • @murkyglasses
      @murkyglasses 6 лет назад

      I'm curious as well, it seems built_value has more to offer? as immutable perhaps?

    • @ianldgs
      @ianldgs 6 лет назад

      Allan Dale Ho yes, built_value has more to offer. But its so complicated to use! And json_serializable supports immutability too, but in the dart's regular way, not using getters to declare the properties

    • @murkyglasses
      @murkyglasses 6 лет назад

      Naph thanks! Will check both out! :)

  • @PavanMuppala
    @PavanMuppala 4 года назад

    Yeah! we love doing taxes, lets party.

  • @ianoliveiradev
    @ianoliveiradev 3 года назад

    #BoringShow

  • @saiaravind186
    @saiaravind186 6 лет назад

    Hey! 😅

  • @AlvarLagerlof
    @AlvarLagerlof 6 лет назад

    Someone likes Elon Musk

  • @habibullah-bj5zw
    @habibullah-bj5zw 6 лет назад

    faltu

  • @pedromassango
    @pedromassango 6 лет назад

    Or someone explain wy they do not add it

  • @lavanyakalmegh6459
    @lavanyakalmegh6459 3 года назад

    why is everything white, It's killing me

  • @kenjikurizon
    @kenjikurizon 10 месяцев назад

    It is super boring. :(
    I am feeling that I would learn more from reading than watching this. Sorry, man.

  • @pedromassango
    @pedromassango 6 лет назад +1

    I will always vote down videos about Flutter until google add XML support

    • @semicognitive
      @semicognitive 6 лет назад +4

      Pedro Massango Why do you care about XML? It's really old and everyone hates it

    • @pedromassango
      @pedromassango 6 лет назад

      Design on Flutter is very confuse and hard

    • @pedromassango
      @pedromassango 6 лет назад +2

      I like the separation of code and design of android

    • @SchusterRainer
      @SchusterRainer 6 лет назад +5

      Actually I think flutter is the first non confusing mobile dev environment

    • @cemxwekta358
      @cemxwekta358 6 лет назад

      Me too but not for design for the Localization strings.xml makes everything just easier.