Flutter Provider - State Management using PROVIDER ( A BLoC Alternative)

Поділитися
Вставка
  • Опубліковано 8 лют 2025
  • #flutter #provider #googleio
    Hey! In this tutorial i will be teaching you the very basics of implementing "Provider" for State management in your Flutter Applications. It is far less complex than the conventional BLoC Pattern and is much more efficient!
    Flutter Getting Started | Flutter Provider Package | Flutter Firebase State Management | Flutter Provider Modal | Flutter State Management | Flutter Advanced State Management | Flutter Data Management | Flutter Interact
    If you like this tutorial please hit LIKE and SUBSCRIBE to my channel for more upcoming tutorials!
    Instagram:
    / retroportalstudio

КОМЕНТАРІ • 137

  • @hammadulaziz1064
    @hammadulaziz1064 5 років тому +23

    ChangeNotifierProvider(
    builder:DownloadFile(),
    child: instaInterface(),
    ),

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому +5

      I've been meaning to put a comment myself! Thanks man! I'm gonna pin this one!

    • @hammadulaziz1064
      @hammadulaziz1064 5 років тому +2

      Thanks man appreciated 💚

    • @FaizanAhmad-bh5om
      @FaizanAhmad-bh5om 4 роки тому

      I spent an hour figuring out why this is not working. hahaha

  • @jliendostuardo
    @jliendostuardo 4 роки тому +1

    I am a complete newbie with Flutter, been reading about state management and for the life of me I could not get it...until I saw your video...thank you very very much for this...

    • @RetroPortalStudio
      @RetroPortalStudio  4 роки тому

      Glad i was of help ✌😁 Although there have been many breaking changes in implementation modal but the usecase and idea remains same

  • @webghost2009
    @webghost2009 5 років тому +23

    Finally, there is a state management pattern that someone can concentrate on and this officially supported by Flutter team, can you concentrate on Flutter's file architecture, and have a video for getting data from the RESTful API services. A complete example from Login screens to multiple pages for routing and preserving state in different screens.

    • @iamyogik
      @iamyogik 5 років тому

      Hey did you find any other useful resources. Please share if so.

    •  5 років тому +2

      But the Flutter team also support BLoC, in the announcement of Provider they said that is one alternative to BLoC. Provider is cool to small-medium projects and it’s easier than BLoC to beginners, but when app is getting complex you’ll need to use something more robust like BLoC, Redux or MobX. And again there’s no default way to state management for Flutter yet.

    • @tellecloudcompany8689
      @tellecloudcompany8689 5 років тому

      @ Why or how is Provider not "robust" enough?

    •  4 роки тому +2

      @@tellecloudcompany8689 Provider itself isn't a state management approach, so for you implement as state management you will need a Notifier, ChangeNotifier is cool but it has a complexity of O(n²), so if your project is getting bigger and you didnt use SOLID you gonna lose performance.
      But if you use ValueNotifier which is O(n) is okay, but you'll need knowledge about how to represent your unique value as a "state".
      Personally, I use MobX for medium/big projects and ChangeNotifier/ValueNotifier for small projects.

  • @ruchirrai
    @ruchirrai 5 років тому +11

    BIG THANKS @RetroPortalStudio
    Before watching this video I was kind of tensed and irritated with this utter confusing state management stuff.
    It literally had wasted my 2 days.
    I have become your fan. Hope you have more on flutter. I'd explore your channel regularly now on.

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому +1

      Glad i Could help you out ! Thank you for your support! Will keep it upto the mark! ✌😁

  • @milodude023
    @milodude023 4 роки тому +1

    Awesome tutorial about Providers! Quite nice to manage states! Thank you so much! Keep it up!

  • @fernando_her85
    @fernando_her85 5 років тому +3

    Thank you!, this is really helpful! This world needs more people like you man!

  • @garrrrrrrry6596
    @garrrrrrrry6596 5 років тому +1

    Awesome video !! We need more videos on PROVIDER! Like the architecture and other useful functions!

  • @AbdulRahmanShamair
    @AbdulRahmanShamair 5 років тому +3

    A great video explaining the very basics of the Provider Pattern. I was confused which to choose from Bloc and Provider, now I have my answer. Superb

  • @rohanlawande9134
    @rohanlawande9134 4 роки тому +1

    Nicely explained the concept man much appreciated!

  • @aravindc6946
    @aravindc6946 4 роки тому +2

    Perfect example and a good explanation, keep rocking!

  • @jerome_ee6522
    @jerome_ee6522 4 роки тому

    So to wrap it up. The provider will contain data. If there's a change of data, you may want to notify other widgets through notifyListener. This widgets that are listening to changes are called Consumers. This is the way I understood the video. I hope I'm correct. If yes, then it is probably the best video about provider state management in youtube.

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

    Great introduction to Provider. Read a lotabout it but this is concise and clear. One thing, I had to replace "builder" with "create" in:
    ...... return ChangeNotifierProvider(
    create: (context) => WeatherInfo(),
    child: Scaffold( ...

  • @ajaykotiyal427
    @ajaykotiyal427 5 років тому +1

    Nice Teaching. Thanks for sharing

  • @Grovermol
    @Grovermol 4 роки тому +1

    Thanks dude!! I 've finally understood provider, cheers

  • @198boblob
    @198boblob 5 років тому +1

    Very well done

  • @volodymyrrepetskyi8556
    @volodymyrrepetskyi8556 5 років тому +1

    that photoshop way of describing is very nice idea, thank you!

  • @j.almadhaji
    @j.almadhaji 5 років тому +2

    Thank you for this great video ..
    Reactive programming tutorials are what we need

  • @wesleybarnes5376
    @wesleybarnes5376 4 роки тому +2

    You explained this so nicely, thanks dude, appreciate it.

  • @aniltc
    @aniltc 5 років тому +1

    Thanks for this Video. I have a specific use case. For instance, we have many widgets ( text and textfield) in the screen and all quantities are textfield widgets.Reaming are text. I can say the headings are id, description, quantity, price. All data's are getting from REST API.
    let us say we have 5 rows. These are from API
    id,description,Quantity,Price
    ----------------------------------------------------------------------
    (1,testingFirst,0,2.32)
    (2,test,0,10.3)
    (3,PC,0,12.000)
    ------------------------ (second section)***********
    (50,cups,0,12.3)
    (60,testingLast,0,12.3)
    ********** Total: sum of all price**********
    when I change quantity, I need to update corresponding rows price and also last row. Which means if I enter 25 in first rows quantity, the last rows quantity also will be 25 and at the same time the price will be changed based on quantity. Why I need to update last row, since first and last row is related and others are not related. If no relation, no need to update .
    When I enter a quantity , I need to check is there any rows in second section related with first row. If related update those rows.

  • @themindstorm9947
    @themindstorm9947 5 років тому +6

    Thank you for explaining this clearly! Hope to see more tutorials like this! All the best for your channel!
    BTW, I don't know how to spell fahreniet either :)

  • @guilhermesantana5004
    @guilhermesantana5004 5 років тому

    Than you very much! Even I'm Brazilian guy, this video could help me a lot! I hope you can explain much more of flutter's pattern in the next videos.

  • @leithhobson
    @leithhobson 4 роки тому +2

    Thank you for a really solid video!

  • @carloseugeniotorres
    @carloseugeniotorres 5 років тому +13

    Great video! Congratz! Now could you do a video using the Provider state management pattern in a real-world application? Like an app with login, user management, user profile inside the app, data being loaded from a REST API and showed in a list. How the pattern works with data that we get online and how to persist the data locally for next uses of the app, keeping the provider pattern? Thank you.

    • @wassimkaouia3965
      @wassimkaouia3965 5 років тому +2

      i would like to see some of his videos on this kind of real word apps

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому +10

      Coming up with more detailed tutorials on such topics! And a good course soon :)

  • @TarekEZaki
    @TarekEZaki 5 років тому +1

    Thanx for the effort. This provider is MUCH easier than bloc.

    •  5 років тому

      Yes but for big apps it isn’t viable, unfortunately, but it’s a great alternative for beginners or small apps :D

  • @albaeeee
    @albaeeee 5 років тому +2

    i learned provider from google flutter videos. this is very helpful to understand. thank you. Also, you forget the ; at the end of the second notifyListeners.
    this looks better than bloc.

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому

      I noticed 😁 Keen Observation! Thank you ! Do suggest your choices for future videos!

    • @albaeeee
      @albaeeee 5 років тому +2

      @@RetroPortalStudio i am looking for login tutorial with provider :)

    • @fantabarack
      @fantabarack 4 роки тому

      @@albaeeee +1

  • @Sanjay54251
    @Sanjay54251 4 роки тому +1

    Again nice video od my type and need this a lot

  • @sadabwasim9850
    @sadabwasim9850 5 років тому +2

    Your teaching method is amazing, please make provider+ firestore tutorial video.

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

    At last a fantastic explanation on actual use of state management rather than showing pics of streams and rivers moving boats. Question - i am starting app thats “simple” but foresee could get more “complicated” features, can provider handle it or start now with bloc. Dont want to rewrite the codes later. Which state management is recommended by google?

  • @taetsu21
    @taetsu21 5 років тому +1

    This is great and pretty easy to comprehend. One thing i'm not sure though, how would you access a provider from inside another provider? Example, how would you call another provider from the inside of WeatherInfo class where you don't have access to the context?

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому

      As per my experience with providers, you should never consider direct dependencies in providers. This can lead to undetected problems

  • @red010182
    @red010182 4 роки тому +1

    which one of these 2 approaches (property based vs consumer based) has better performance? Will property based approach leads to whole stateless widget be re-constructed when notification arrives?

    • @RetroPortalStudio
      @RetroPortalStudio  4 роки тому

      Well in cases when you do not need to rebuild a complete widget you pass it as a child to Consumer and the tree that should rebuild is returned by the builder function. The child you passed to consumer is also available to builder in arguments ✌😁

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

    Best man

  • @benmukanirwa
    @benmukanirwa 4 роки тому +1

    Well explained. Thanks a lot

  • @fersmartsolutions5873
    @fersmartsolutions5873 5 років тому +1

    Thanks. Great clear tutorial.

  • @carmenperez250
    @carmenperez250 5 років тому +1

    this video is gold, thanks

  • @bartovmoti
    @bartovmoti 5 років тому +1

    Thanks, nice tutorial

  • @koustav2008
    @koustav2008 5 років тому +1

    EXCELLENT Tutorial !!!

  • @gonzaloivandossantosportal2363
    @gonzaloivandossantosportal2363 5 років тому

    So, the Provider its like a Singleton ? We have this instance that we will manipulate in diferents widgets of the application, and as we manipulate this instance it will reflects in all other parts of the app(that use this object), because its the same instance, i get it right?

  • @iamyogik
    @iamyogik 5 років тому +3

    Can you please make a video on the project structure for real world apps using provider approach. Or a tutorial where you build a complete real world app so we can learn how to use this approach efficiently as there are many videos of BLOC but not providers.
    PS: This is the most requested video as I can see in the comments.

  • @SagarSagar-ro3fj
    @SagarSagar-ro3fj 4 роки тому

    what will hapen if there is another class called Stockinfo along with weather info? how to use builder in this case?

  • @IncogTechBytes
    @IncogTechBytes 4 роки тому

    do i have to use bloc if i use provider? (newbie question)

  • @OppaMixes
    @OppaMixes 5 років тому +13

    Could you make a MultiProvider example?

    • @WikkiOnIlluminati
      @WikkiOnIlluminati 5 років тому

      Please make video on multi provider

    • @ayuschjain
      @ayuschjain 4 роки тому +1

      Here's an article which covers it: ayusch.com/flutter-provider-pattern-explained/
      Hope this helps you :)

    • @althafaralijaffarali1803
      @althafaralijaffarali1803 4 роки тому +1

      @@ayuschjain Thanks a lot man! . It helped me to understand the Multiprovider concept. Keep rocking

    • @ayuschjain
      @ayuschjain 4 роки тому

      @@althafaralijaffarali1803 Glad it helped:) I also have a YT Channel @DesiCoder. Do check it out :)

  • @vidy9754
    @vidy9754 4 роки тому +1

    what if i have multiple weatherinfo objects, how do you differentiate inside of the consuming widget? how do you declare multiple notifier objects?

    • @RetroPortalStudio
      @RetroPortalStudio  4 роки тому

      I think what you are looking for , is MultiProvider ✌😁

  • @Chris-te7to
    @Chris-te7to 5 років тому

    This might be a silly question or I might have an old fashioned mindset, but lets suppose we have a list of items. we want to listen to the state of that list. So when the user adds a new item, we`ll be notified. But here comes my problem in understanding: i want to handle the state of each new, per user generated, item (which is just a new instance of a class). Do I need to have a new (kind of dynamic) provider for each of the items? How can I accomplish that, or is that approach not even necessary? Thanks in advance. Chris

  • @jimmycanosa7496
    @jimmycanosa7496 5 років тому +1

    What vscode extension used to display the lines for the indentation guide?

  • @developmentflazhost2021
    @developmentflazhost2021 5 років тому

    Than you for your tutorial. But I'm curious about sustainability of this provider plugin? Is this possible implemented on big application? Do you mind to upload your code to github to be more clear with an example?

  • @Sawa421i
    @Sawa421i 5 років тому +3

    The thing i cannot understand, all widget tree is rebuilding (including the Scaffold?) or it rebuilds only our texts and FAB? Does it matter where to put ChangeNotifierProvider or the main task is to be UP of the tree to have opportunity get our widget. And, the last question is, so now basically all widgets in app are Stateless? I'd see how it works with more difficult screens (with animation for example). Thank you for video!

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому

      Thank you for your support! :) All the widgets which might need to access the state must be direct or indirect children of ChangeNotifierProvider. The reason to put it here as a parent of scaffold is so that the FAB could also have access to state... if i was to put CNP on Column or Center, only the text would have been able to access the state. For your Question regarding stateless.. it doesn't matter if it is stateless or stateful. If you have some special widget that needs to have its own state too.. then a stateful widget might also be useful. Hope this clears your doubt :)

  • @WikkiOnIlluminati
    @WikkiOnIlluminati 5 років тому +1

    Thanks
    Awesome 👍

  • @MozesPetraBios
    @MozesPetraBios 5 років тому +2

    Hi. nice video!
    btw, What plugins/extensions are you using for showing the lines of indentation in vs code? Thanks!

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому

      Hey! This is android studio 😁 I'll look for it if there is any extention for vs code also

    • @MozesPetraBios
      @MozesPetraBios 5 років тому

      @@RetroPortalStudio oh i thought that was vs code. Lol. Okay, thanks for the answer man. Keep up the good job 👍

  • @khaliljan4474
    @khaliljan4474 5 років тому

    Yeah ! this lecture is understandable. But sir can Tell which state Management mostly used in flutter?

  • @guidoc3518
    @guidoc3518 4 роки тому +1

    My provider is working fine on debug mode. But when I released the app to stores, the changes are not working. Do you know something? I will use bloc

    • @RetroPortalStudio
      @RetroPortalStudio  4 роки тому

      Please check the provider version. there have been a lot of updations since it first released!

  • @habeebmurtala7318
    @habeebmurtala7318 4 роки тому

    Mine didn’t work until I used the setState method to change the TemperatureType unlike you did in yours, is there a reason for that?

  • @darylwong4734
    @darylwong4734 5 років тому +1

    Will you be able to post the code to github?

  • @teensutra5585
    @teensutra5585 5 років тому +4

    Thank you for sharing your knowledge, to represent block diagrams you can use draw.io

  • @j.almadhaji
    @j.almadhaji 5 років тому

    What is ChangeNotifier
    Form docs
    A class that can be extended or mixed in that provides a change notification API using [VoidCallback] for notifications.
    [ChangeNotifier] is optimized for small numbers (one or two) of listeners. It is O(N) for adding and removing listeners and O(N²) for dispatching notifications (where N is the number of listeners)

  • @kojoprempeh
    @kojoprempeh 5 років тому +8

    Thank you for this video. Well explained. I didn’t have to watch the video 2-3 times to understand the concepts.
    Could the “decideColor” func be moved to the Provider class?

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому +3

      Not a good approach to move it to Provider class! But it can be a static method of some utility class!

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому +3

      Anyways thanks for the support 😁😁✌ Do suggest more content that you would like to see here on my channel!

    • @themindstorm9947
      @themindstorm9947 5 років тому +2

      @@RetroPortalStudio Why is it not a good approach to move it to the Provider class?

    • @paulhmason
      @paulhmason 5 років тому

      @@themindstorm9947 The state class should only contain state information and not be bound to UI concepts.

  • @hammiziezamri7858
    @hammiziezamri7858 5 років тому +1

    when navigate to new screen (navigator.push) , can i use 'provider.of' to access state from previous screen? or i must pass state through constructor?

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому +1

      As per my experimentation, Provider persists data for whole application cycle. No need to transfer data through navigator :)

    • @hammiziezamri7858
      @hammiziezamri7858 5 років тому +1

      @@RetroPortalStudio alright thanks

  • @MdYousuf-gw2dn
    @MdYousuf-gw2dn 3 роки тому

    make some tutorial about Overlay please

  • @barnamam
    @barnamam 5 років тому

    Hi and thank you,
    but please how to make this better,
    because here as you done, if myspecialheaders gets update, then the myspecialcontents gets update too, which I dont want, now to prevent to have a good performance and avoid unnecessary rendering, like in react-native we have shouldComponentUpdate which if dont need to update we prevent the rendering.

  • @d-apps2699
    @d-apps2699 5 років тому

    What's the difference between provider 3.0.0 and bloc? pros and cons when using each?

  • @vavadiyahiren
    @vavadiyahiren 5 років тому +1

    it was very useful thanks man :) i was confused with the provider it really helps to understand better. Do you have the same kind of video for bloc and redux and what is the pros and cons then it will blast.

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому +2

      I dont have any video on BLoC right now but as per your suggestion i'll try to make one ✌😁 Thanks for your support mate!

  • @midtowncomics3613
    @midtowncomics3613 4 роки тому

    For drawing diagrams and such you can use draw.io if you aren’t already by now.

  • @tusharbarman1924
    @tusharbarman1924 5 років тому

    Bro the tutorial was great. But can I get the code on github so that I refer it whenever needed?

  • @BibeshManandhar
    @BibeshManandhar 5 років тому +1

    What if we want to instantiate multiple models like WeatherInfo in MyHomePage ?

  • @MsSplashIt
    @MsSplashIt 5 років тому

    Hi what is your ugin called to get the tree view(the lines in your code). Thanks

  • @jayobinna4
    @jayobinna4 5 років тому

    hello, please what extension shows the widget structure?

  • @florianbrielmaier2135
    @florianbrielmaier2135 5 років тому +1

    good work thx :-)

  • @berosolo866
    @berosolo866 5 років тому +1

    nice tut

  • @hectoraguero5204
    @hectoraguero5204 5 років тому

    Basic Question... Is good aproach, put the same name to getter and setter?
    Example in this video in 16:52 : get temperatureType - set temperatureType(String newType)

  • @SiphoNgwenya
    @SiphoNgwenya 5 років тому +1

    What about Provider relative to InheritedModel/InheritedWidget? With respect state and passing data to deeply nested widgets.

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому

      Thank you for your support! If i understood your question right....The main advantage of provider is that you dont need to pass data in the conventional Inherited Widget way. Make the children that require access to state, direct or indirect child of ChangeNotifierProvider and they can access the state using Provider then. :)

  • @RiceCooker-hp5px
    @RiceCooker-hp5px 5 років тому +1

    what's the difference between with keyword and extend keyword ?

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому

      Can't explain in detail here! Found a article for ya! here it is! medium.com/flutter-community/dart-what-are-mixins-3a72344011f3 :) Hope it helps! :)

  • @hk20092009able
    @hk20092009able 4 роки тому

    It's better if we make public variable for this dynamic variable inplace of this big complycated circle

  • @belqisshida5345
    @belqisshida5345 5 років тому

    how to avoid unnecessary rebuilds? example:
    Widget A.
    Widget B.
    Widget C.
    Here when I update a state in Widget A with provider, the Widgets B and C rebuilds too.
    So how to avoid unnecessary rebuilds in B and C ?

  • @hamac4835
    @hamac4835 5 років тому

    thank you for the tutorial, I am building an app where users choose a task provider and chat with him, how can I implement that with the provider? Thank you again and May ALLAH bless you & reward for your efforts

  • @huangshufen2211
    @huangshufen2211 5 років тому

    good video, mate, thanks for sharing. can you leave the src code github address for your two different version of provider codes. tks

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому

      Sorry for videos uptill now! Future videos will have the code uploaded :D :D

  • @gauravthakkar802
    @gauravthakkar802 4 роки тому +1

    Provider is not a state management solution as said by Remi in his video
    It only seeks to provide values deep inside the widget tree

    • @RetroPortalStudio
      @RetroPortalStudio  4 роки тому

      Is knife a weapon or a tool? Even if the maker defines it as something, it depends on the way we use it. For complex UIs it can be used to manage the State of UI to provide a much smooth experience with easy to manage and concise code. That that essentially contains the definition you wrote. ✌😁

  • @khaledelsherbiny4203
    @khaledelsherbiny4203 5 років тому

    is this code available on github?

  • @HemangJoshi
    @HemangJoshi 5 років тому +1

    please sir, share source coode link if possible.

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому

      For the upcoming videos, i surely will upload the code alongside :)

  • @abraiyan7984
    @abraiyan7984 4 роки тому +1

    In a job interview ... (Almost nailed it but then)
    Recruiter: So, we use BLOC for all of our projects. You are familiar with it, right?
    Me: GG. Um out.
    (Just for fun no offense btw)

    • @RetroPortalStudio
      @RetroPortalStudio  4 роки тому

      Oh My! That's awful...... bdw never used bloc for a project myself. 😅

    • @abraiyan7984
      @abraiyan7984 4 роки тому

      @@RetroPortalStudio I tried to learn it. It gave me a hard time.

  • @raul286162
    @raul286162 5 років тому +1

    I love u :D

  • @임창수-c7c
    @임창수-c7c 5 років тому

    Very similar to scoped model.

  • @mecil9
    @mecil9 4 роки тому +1

    great video!!!! Activate Windows。。。。。。。hahha!

  • @avisekhagarwal5082
    @avisekhagarwal5082 4 роки тому

    Please explain in a way every one could get it the way you have explained only some extra smart students had got your point I couldn't get anything

  • @manishdhruw5237
    @manishdhruw5237 5 років тому +3

    Activate The Windows
    Just trolling

  • @creative-commons-videos
    @creative-commons-videos 5 років тому

    @override
    Widget build(BuildContext context) {
    final UserBloc userBloc = Provider.of(context);
    userBloc.getUser();
    }
    this send continuous request to server.. how can i get initial data from server as soon as screen load ???

    • @kokizzu
      @kokizzu 5 років тому +1

      i think you should create another function on UserBloc that flags something like this:
      if(!initialized) {
      getUser()
      initialized = true
      }

  • @vkhooda24
    @vkhooda24 5 років тому +1

    This vblog is really awesome and you have done a great job to put everything down in a simple way as much as you can. It is really helpful to understand state management using the provider. I am very new to flutter so curious to know how it would be different in case of the bloc. Could you please do a video when you get time with bloc for the same screen to understand the differences between these state management patterns. Again, thank you. Looking forward to watch more videos from your channel.
    Edit: I just found what I was looking for i.e bloc vs provider implementation diff. If someone is interested can find here: ua-cam.com/video/HrBiNHEqSYU/v-deo.html

    • @RetroPortalStudio
      @RetroPortalStudio  5 років тому

      I am glad to hear that i could help 😁Thank you very much for your support! and yes, as you suggested, the booring show is really great if you wish to learn basics of bloc. in their first few episodes.

  • @muhammadyusoffjamaluddin
    @muhammadyusoffjamaluddin 5 років тому

    Can you PLEASE EXPLAIN FIRST THEN RUN.
    The Basics:
    1) DO NOT BOTHER to RUN EXAMPLE half way of explaining the code unless you already explain everything you have written.
    2) Unless you STARTS WITH EXAMPLE and THEN explain the CODE.
    Do not do your work as teacher half way, explain code (half-way), run example, then continue explain code (where you left), it is annoying, seriously.

  • @marcelomagalhaes4508
    @marcelomagalhaes4508 5 років тому

    Great tutorial! Also, try this tool, it may help improve your diagrams: www.draw.io/