SIr without your courses, i wouldnt know how I could really become a developer... I am from a typical village inNigeria that Power and internet is a little challenging... your courses is precise and purposeful... God Bless You Sir
For those getting an error at 04:23:20 saying "The argument type 'Function' can't be assigned to the parameter type 'void Function()?'" Change "final Function selectHandler;" on line 4 of answer.dart to "final VoidCallback selectHandler".
Thanks for the tutorial. Just for information, there are one or two areas that are not up to date, such as RaisedButton having been deprecated and replaced by ElevatedButton, and the way the button's own style theme overrides its default properties. It would be very helpful if the video were updated to reflect these changes - I'm new to Flutter and having to find this out myself has been a bit of a hindrance. More importantly, the 'selectHandler' function cannot be assigned to 'onPressed' - you get this exception: The argument type 'Function' can't be assigned to the parameter type 'void Function()?'.dart(argument_type_not_assignable) [at around 4:23:00] The answer was to change final Function selectHandler to final VoidCallback selectHandler. This is also the case elsewhere, such as VoidCallback answerQuestion in quiz.dart (5:19:15).
I love how the lecture is structured. Thoroughly and well-explained fundamentals. Very easily understood and followed but it's just the preliminary of the full course which is offered for a price. To get a glimpse of how good is the instructor would entice someone to take up the course. I for one would be willing to take this. Thanks for sharing a sample of your course, Max. This a smart way to advertise.
@@academind hei, I know it mights be too late, but on 1:00:20, I can't do that, they keep saying that it's not recognized and the system cannot find the drive specified, and "this command should be run from the root of your flutter project, anyone can help please?
57:44 If you don't have a "tools" folder inside your SKD installation, do the following: 1) Go to Android Studio 2) click on Tools -> SDK Manager 3) On the right you'll see 3 tabs, click on SDK Tools 4) Uncheck "Hide Obsolete Packages" on the botoom right 5) Select "Android SDK Tools (Obsolete)" on the list. Click OK and install. I've been programming for a few years now and I still find setting up a new envoriment a pain in the ass!
Max, thanks for being the incredible teacher that you are and sharing this with the world. For every person that comments, I'm sure there are 100 people who are grateful and just don't write it down. The impact that a great course like this has on people can't be overstated!
Please can you remember if the course covers authentication? And use of database? If yes, what database platform does it use? I want to know before I go ahead and purchase the course and end up regretting like all my other udemy courses
First of all, thanks a lot for a nice tutorial. After watching the Flutter tutorial Flutter: easy to catch. Dart: again easy to follow. All because, they almost follows the C++ rhythm, and I am a C++ Developer, jumping into App developments.
I am an automation test engineer..Very nice and a great video to learn how to make an app with dart..your way of presentation is very good any one can learn easily..Thanks for sharing knowledge..I am from india
Some questions: How do you know all the mobile application development language and framework? How do you get time to learn all of them?? How many hours your day have (ours are 24 hours)?? And why do you keep giving all tutorial for free?? You are the best.
@@marianbucuresteanu1085 Incepe cu ceva care sa te invete conceptele programarii. Altfel nu o sa intelegi ce se intampla cu adevarat, si doar o sa reproduci mecanic.
@@marianbucuresteanu1085 Din flutter nu o sa poti intelege obiectele. Pentru ca nu sunt expuse mecanismele din spate si de-asta nici nu poate fii evident cum functioneaza. Daca vrei cu adevarat sa inveti trebuie sa iti asumi faptul trebuie sa te dai ocazional cu capul de pereti. Daca iti place ideea, eu iti recomand foarte mult sa cauti pe net un curs/guide/tutorial pe C++. Si aici in mod special Pointerii (ce sunt, ce fac) si structuri de date(linked list, heap, trees). In alte limbaje, precum Java, nu o sa folosesti pointeri, dar e foarte important sa intelegi ca in spatele codului, toate programele se bazeaza pe pointer. Daca intelegi programare cat de cat si nu vrei sa te chinui cu pointeri si structuri de date, poti sa cauti tutoriale despre clase si obiecte in Java(pentru ca e mai evident). Daca e ceva neclar sau ai dubii, poti sa ma intrebi. Daca iti doresti doar sa faci o simpla aplicatie pentru android si atat, poti sa continui cu Flutter. Este ok.
Just finished this, I will purchase the rest of the course. You are so good at explaining things and this is probably the first lecture where I saw someone clearly explain things for beginners without making it too boring for people who already have more experience in other programming languages. Thanks for the great content!
i want to thank you. on april 2020 i watched this video and on august the same year i got a flutter job so thank you. altho i learned from multiple sources this video of yours is the one who really kick starts my journey.
Good course. Actual coding starts at 2:20:15 for non-rookies that already have everything set up for development and wants to learn the development process.
Hi sir! RaisedButton is now deprecated and replaced by EvelatedButton, which uses EvelatedButtonTheme instead of ButtonTheme. But thanks for posting this video, it helps a lot.
4:18:31 Error: The named parameter 'color' isn't defined. Solution: assuming you are using ElevatedButton instead of RaisedButton (which is deprecated), 'color is not a valid function for it. instead use something like >>> style: ButtonStyle( backgroundColor: MaterialStateProperty.resolveWith( (Set states) { if (states.contains(MaterialState.pressed)) return Colors.green; return Colors.blue; }, ), ), >>> 4:23:20 Error: The argument type 'Function' can't be assigned to the parameter type 'void Function()? Solution: change "final Function selectHandler to "final VoidCallback selectHandler" >>> final VoidCallback selectHandler; >>> 4:31:27 Error: The argument type 'Object?' can't be assigned to the parameter type 'String' Solution: add 'as string' to the back. >>> Question(questions[_questionIndex]['questionText'] as String) >>> 5:20:34 Error: The parameter 'questions' can't have a value of 'null' because of its type, but the implicit default value is 'null'. Try adding either an explicit non-'null' default value or the 'required' Solution: add a 'required' before each of the this.questions, this.answerQuestion etc. if you are at that part of the video, remove the @ from @required >>> Quiz({required this.questions, required this.answerQuestion, required this.questionIndex}); >>>
How can i pass that score in Quiz widget could you please write the code? ...(questions[questionIndex]['answers'] as List ).map((answers) => AnswerButton( handler:()=> selectedAnswer(), answerText: answers)),
I finished this tutorial for 2 days! Your delivery of words is so clear and the content is just amazing! I'm truly thankful for you to share your knowledge :)
Credits :- Bryan Leow Reposted for easy access. 4:18:31 Error: The named parameter 'color' isn't defined. Solution: assuming you are using ElevatedButton instead of RaisedButton (which is deprecated), 'color is not a valid function for it. instead use something like >>> style: ButtonStyle( backgroundColor: MaterialStateProperty.resolveWith( (Set states) { if (states.contains(MaterialState.pressed)) return Colors.green; return Colors.blue; }, ), ), >>> 4:23:20 Error: The argument type 'Function' can't be assigned to the parameter type 'void Function()? Solution: change "final Function selectHandler to "final VoidCallback selectHandler" >>> final VoidCallback selectHandler; >>> 4:31:27 Error: The argument type 'Object?' can't be assigned to the parameter type 'String' Solution: add 'as string' to the back. >>> Question(questions[_questionIndex]['questionText'] as String) >>> 5:20:34 Error: The parameter 'questions' can't have a value of 'null' because of its type, but the implicit default value is 'null'. Try adding either an explicit non-'null' default value or the 'required' Solution: add a 'required' before each of the this.questions, this.answerQuestion etc. if you are at that part of the video, remove the @ from @required >>> Quiz({required this.questions, required this.answerQuestion, required this.questionIndex}); >>>
Thanks for this course, it's a all in one package for beginner's like me, it has everything which we need : return Column( children : [ Text( 'Dart') , Text( 'Flutter') , Text( 'Data Structure') , Text( 'Object Oriented Programming') , Text( 'and of course \'FUN\' ') ] );
4:20:52 The function "selecthandler" is not being recogized as a valid argument in case of ElevatedButtons. However, if I use "var selectHandler" instead of "Function selectHandler", it works fine.
Just to piggyback on this since it may help others: The onPressed property for the old buttons had a VoidCallback type, which no longer exists in the docs. The new button types take a void Function() type for the onPressed property. Instead of passing the function pointer like "onPressed: selectHandler", you must pass an anonymous function, like "onPressed: () => selectHandler()" or "onPressed: (){selectHandler()}"
Thanks for posting this. I love how you share the beginning of your course for everyone for free. I bought the course because of it. That way I can see what I am actually going to get. Very well done!
Sir I can't thank you enough for what your flutter course is. Its best course in the world and maybe even on the different planets 😁. I gave my one interview for android development with flutter and iwas able to answer to them even i haven't really completed my course yet. You're not less than a god for me ❤️ Thanks so much !!!!!
Great course, I love it. Thanks a million! I am at 3:06:06 and I had to replace RaisedButton with ElevatedButton (RaisedButton is now deprecated and replaced by ElevatedButton). Thanks again for the course!!!
for anyone at 5:26:14 who gets an error, try: return Answer(answerQuestion, answer['text'] as String); instead of: return Answer(answerQuestion, answer['text']);
Am a beginner when it comes to Android. Just doing my research online and saw your video. I really wanna say thanks for making it available to us all. I believe at the end of the video I would have gained what it takes to start building Android apps, iOS and web
I have experience in java and used to write android apps in java for a while, despite that this was confusing at quite a handful of points.😂 if it is your first time learning programming, just take it slow, there is no prize at the end for the first person that learns it, but a prize for the person that truly understands it and executes it properly, quality is much better.
delivery of words is so clear and the content is just amazing , always good to have clear fundamentals of any framework to be export/gain depth , Great work.
Anyone having errors at 5:30:12 can fix errors by changing the return line as: return Answer(() => _answerQuestion(answer['score'] as int), answer['text'] as String); We have to do this in new versions of the Dart to tell that 'score' is an integer and 'text' here is a String. Have a nice day! :)
but I am still getting the error...even after writing as int.. it gives me the following error Too many positional arguments: 0 expected, but 1 found. Try removing the extra arguments.
@@md.sifatibnawlad6193 Your error means that your constructor of the Answer is not expecting any arguments! and you're giving it. You can try this: Please check your constructor of Answer(in asnwer.dart) and make sure that it takes 2 positional arguments e.g, Answer(this.selector/ your final Function, this.asnswerText/your string), now in main.dart, you should do as: ...(questionList[_questionIndex]['answers'] as List).map((answer) { return Answer(() => _answerQuestion(answer['score'] as int), answer['text'] as String); }).toList(), Hava a nice day!
@@ZainAli-lk7pi in my main dart I am doing like this Quiz( answerQuestion: _answerQuestion as VoidCallback, questionIndex: _questionIndex, questions: _questions ) And my answer constructor already had two agrguments final VoidCallback selectHandler; final String questionText; Answer(this.selectHandler, this.questionText); also in the quiz.dart file i am getting the error for _answerQuestion(answer['score'] as int) this part only..removing (answer['score'] as int) this part gives me no error
@@md.sifatibnawlad6193 You're doing wrong in main.dart file, use anonymous function while calling Quiz as i did, and in Answer.dart file.. use final Function( ) then name! Hope your issue gets resolved! :)
3hours 30 min in, brilliant course so far and no one explained the Stateless vs Stateful widget better with the entire step. No one . Definitely beginner friendly.
I had spent the entire afternoon looking for a comprehensive flutter+dart tutorial online, until I stumbled on this video, then I saw your face, and immediately my mind was settled. I loved your PWA tutorial on Udemy and others too. I appreciate the work you do, helps us developers alot!!
This course is amazing. You are amazing. “Give a man fish, you will feed him for a day. Teach a man how to fish, you will feed him forever.” Thank you Sir.
(questions[questionIndex]['answers'] as List) should be (questions[questionIndex]['answers'] as List) instead if you are passing a string and an integer. Latest version of flutter will give error if you try it the way in the video. This was a great learning opportunity, thank you Academind!
I did that but it gives "Expected a value of type 'List', but got one of type 'List' The relevant error-causing widget was: Quiz" when I press an answer at the first question. any suggestion?
Absolutely loved this tutorial. I really appreciated the walk through of setting up the dev environment! However, since recording, raised buttons have been deprecated for elevated buttons, and the syntax is different enough to cause problems, frustrations, and having to dig through stackoverflow for answers
@@rohith2714 if you correctly put a comma after the the ending parenthesis ')' then when you save the file, vs code will automatically format the code for you, but if you are talking about the refactoring then on windows it is Ctrl+Shift+R or it was at least on mine. :)
This is the first tutorial on YouTub that I have finished in 2 days. I'm thankful to you to share your knowledge with us. This tutorial will really helpful for a flutter developer.
I have already done a diploma online on android app development and code in few languages but your course has improved my understanding and ability to code better. I highly appreciate your commitment and effort. danke schön. Enrolled for full course on Udemy
That was really helpful and the codes were explained thoroughly, I appreciate all the hard work you put into these videos. I would have purchased the whole course but I live somewhere where getting credit cards are a pain in the a**.
Udemy doesn't allow to ask questions before signing up, so hope you can answer here: 1. With Flutter do we create truly platform-independent code? Will my app work in both iOS and Android without any additional effort? Does it get "compiled" into native iOS code and for Android Java? 2. Will the course cover how to test an app on my Mac, so that I can see how it will work in both iOS and Android phones? Can a simulator help test how it'll function on various devices? These days the screensizes are so many. 3. Will this course teach us how to use additional advanced UI plugins/tools such as Gskinner? 4. Will we learn only in-app code, or also server-side communication in case our app needs to store something on server? Thanks!
Great tutorial for Flutter. Thank you max, Love you 3000 times ❤️❤️❤️ The way of you explaining each functionality is awesome. I've watched more than 3 tutorials from other channels, none of them explained this much clear. I didn't like the syntax when started learning flutter, but now After watching this tutorial I got confidence that I can easily develop flutter apps. Thank you very much Max❤️❤️❤️🙏🙏🙏
When I tried to access the questions list with "questions[_questionIndex]['questionText']," I got an error. If you get the same one, the fix is to change "var questions =" into "List questions ="
Let's take a moment to appreciate his Hardwork and his efforts to make students understand Flutter in a very easy and interactive way 🔥🔥🔥🔥🔥.............Hats off to u man ! Lot's of Love from India 🇮🇳❤️🙏
It's a great crash course for beginners programmers that need to understand the grounds of coding. Thank you for the contribution, just one correction, around 3:24:00 you said using the keyword var for variable declaration is a good practice, and it's actually the opposite. Good practice is to declare variables with explicit type for readability porpuses.
Content: What is Flutter 00:00 Flutter's Architecture 05:54 How Flutter & Dart Code Gets Compiled To Native Apps 10:40 Understanding Flutter Versions 13:54 Flutter macOS Setup 16:44 macOS Development Environment 35:34 Flutter Windows Setup 39:42 Windows Development Environment 58:58 Flutter & Material Design 01:02:44 Flutter Alternatives 01:04:00 Course Outline 01:10:06 How To Get The Most Out Of The Course 01:16:46 Module Introduction 01:19:27 Creating a New Project 01:21:52 An Overview of the Generated Files & Folders 01:34:07 Analyzing the Default App 01:42:28 Dart Basics 01:48:00 More Dart Basics 02:05:18 Building an App From Scratch 02:18:25 Running the App on an Emulator 02:29:28 Class Constructors & Named Arguments 02:32:53 First Summary & Additional Syntax 02:41:23 Building a Widget Tree 02:49:34 Visible (Input / Output) & Invisible (Layout / Control) Widgets 02:57:14 Adding Layout Widgets 03:00:27 Connecting Functions & Buttons 03:07:19 Anonymous Functions 03:14:50 Updating Widget Data (Or: Using StatelessWidget Incorrectly) 03:18:11 Updating Correctly with Stateful Widgets 03:24:48 A Brief Look Under The Hood 03:36:46 Using Private Properties 03:39:14 Creating a New, Custom Widget 03:44:31 First Styling & Layouting Steps 03:56:21 Enums & Multiple Constructors 04:04:22 Official Docs & The Widget Catalog 04:08:29 Passing Callback Functions Around 04:11:09 Introducing Maps 04:21:47 Mapping Lists to Widgets 04:27:40 final vs const 04:38:04 Introducing "if" Statements 04:48:55 [DART DEEP DIVE] More on "if" Statements 04:55:46 [DART DEEP DIVE] The "null" Value 05:07:02 Outputting Widgets Conditionally 05:09:05 Splitting the App Into Widgets 05:11:26 Calculating a Total Score 05:21:23 Getters & "else-if" 05:29:09 Resetting the Quiz 05:35:44 Wrap Up 05:40:38
Hi, I purchased this course on Udemy, and I see that you made it available on RU-vid as well. Can you please tell me what is the difference between this and the udemy version?
extraordinary course, amazing details, fully neat and clear. i do thank you for such effort being put into helping people building careers! very good job! thank you.
This course is absolutely fantastic! Thank you so much for providing this awesome content. It is an absolute pleasure to follow this, applying the knowledge as it is presented. All is very clear and well explained. :)
if you guys are getting an error on Question(questions[_questionIndex]['questionText'], Change it too Question( questions[_questionIndex]['questionText']?.toString() ?? ' ', )
So, I didn't know this guy is on udemy and this course is not complete course until I watched the whole video. But till then I was pretty much convinced that I need him as my teacher. I had no background in programming and this video alone made me more curious to learn Flutter and Dart to the end. So, I just bought this course. Good work Max.
Just purchased the course after this very generous introduction. Needless to say but for anyone consider joining to the full course, just go for it! Thats my second course from Max and this is as great as the Angular course is. Thank you for the great content!
Man you're a mind-blowing tutor! I just purchased your Udemy course. I know it's older and there are a few things that have changed but it's too little to worry. This was probably the best tutorial I've come across on Flutter as a beginner!
Finished this free section of the course just now. Coincidentally, the premium course on Flutter that my friend gave me turned out to be the complete version of this. I am a happy man!
I would like an example with form and data hand in all the examples of youtube is almost the same an example of a form with data management would be the maximum Thank you
This is a well put together beginner course. It helps you navigate this complex development platform quite easily and yet effectively. Max is a great teacher.