Build Your Own Custom Code Generator in Flutter | Flutter Code Generation
HTML-код
- Опубликовано: 27 дек 2022
- Have you ever heard of packages like Freezer, Retrofit, Riverpod Generator? They're all Code Generator built using Flutter! In this video, we are going to learn to build Code Generators like these packages by building one! This Code Generator generates constructor, fromMap, toMap, copyWith functions for a model class. All we need to do is write it once in our code (sort of like creating a template), run a command and it will generate code for all the classes we have annotated. Don't know what 'annotated' means? Watch this tutorial to know more about it.
This is my personal favourite video made on this channel till now. If you have any questions/constructive criticism about this video, let me know. I'll make sure to help you out/improve on this video.
Discord: / discord
Source Code: github.com/RivaanRanawat/code...
Helpful Resources:
More About build.yaml: github.com/dart-lang/build/bl...
Riverpod Code Generator Code: github.com/rrousselGit/riverp...
Riverpod Annotation Code: github.com/rrousselGit/riverp...
Connect With Me Here:
Twitter: / ranawatrivaan
Linkedin: / rivaan-ranawat
GitHub: github.com/rivaanranawat
Mail: namanrivaan@gmail.com
Medium: / namanrivaan
Instagram: / optimalcoding
Facebook: / rivaan.ranawat
It was an amazing tutorial and this may seem redundant to most but having this on your CV can give it a huge boost and make you stand out among thousands of CVs. As Rivaan mentioned, there aren't many resources where you can learn this so it's a huge contribution to the Flutter community as well.
My only issue with video is that there is an error in the model class even after running code gen which shouldn't be there and commenting a model class used in codegen is a bad practice. No one is going to remember why they did it after a few weeks. If some GDE or expert can point out the issue and the fix, it would be really helpful and Rivaan can pin it in the comment section.
Thanks Maruf! Yeah, this is an issue. If someone knows how to solve it, do comment. I'll pin it for sure!
Pinning Maruf's comment as of now so that it's easier to see his comment and answer if it's known🙂
what error
@@RivaanRanawat as you only want to build a Json Generator, i think all you need to do is an Extention on Person class and add the toMap and From Map Methods in there ?
Riivan there is no one like you in this world, all your content are pretty valuable
Thank you so much Dabely, appreciate it!
And it is so easy to follow you much better than anyone. My best wishes for you in 2023. Reach millions of suscribers
Every time you drop a new content, I'm eager to watch coz I know it's going to be benefiting ❤
Thank you Sammy! Better content on the way🙂
Really great explanation good job man.
Thanks Ismail!
great channel and great tut, well done.
Thanks Siddhant! Glad you like it
Super video bro.... Thanks a lot for info !!!🤟
Happy you found it helpful🙂
really your channel is a treasure cave👌👌👌
Honoured you feel that way! More to come🙂
You have a unique of teaching.
I appreciate your efforts and time for us.
I would request you to provide us a short video on bloc pattern in flutter.
That have main key points of bloc pattern.
Thanks 💌
Sure, Bloc pattern and Bloc state management tutorials coming out soon!!
Thank you God for sending Rivaan.
Thank you so much Prashant, really appreciate it🙂
DAMN!!!!!!!!!!!!!!!! cannut wait to see how far rivan will go in 2023
Haha, thank you!!
starting watching this right awwayyyyyyyyy
Let me know if it was well understood! Would love to get some feedback on this!
this channel is amazing
Thank you, glad you like them!
Nice one bro ❤️🙏
Thanks man!
I just discovered your channel, and I’m literally amused of the knowledge you covered in your videos, i have a question pls, do you have any idea about how the apps gen services (drag and drop) such as flutterflow works behind the scenes.
thanks, it's realy helpfull
Glad it helped Kalifa!
Superb bro
Thank you!
Hey man. I love your vids.
I know your're a busy man but if you can i'd love to see a vid on intergrating flutter with openai or gtp3
Hey Raphael, thanks for the request. I tried to build a little something with the API. The problem is there is no official chatgpt api. The unofficial one is not working because of the constant changes in chatgpt. I've commented on that issue in their package. Once it gets resolved, I'll upload the tutorial I've planned. Till then, stay tuned for something big that's coming in early jan.
@@RivaanRanawat I'm always tuned. You're just the best.
Hi Rivan , thanks for the video , i have one question , how to use it in another app?
How would I access the generic type of the annotation ex.: @MyAnnotation how do I get the Model classname. And how should I do imports in the generated code? Like how would I import the Model class?
Nice video thanks, although india english is a battle field hahaha, anyway you have a new subscriber
Amazing video rivaan
I was able to create simple generator that makes extension for class to create copyWith method without error
But unfortunately it turns out that this code doesn't work with latest plugin update i wasn't able to generate any code untill I've used your pubspec.lock file to lock to your versions 😅
I really appreciate your work if you got any new info please let us know on brief or new video for it will always be treat for eyes 🎉
I solved the same problem by adding graphs: 2.2.0 to the generator's dependency system.
at one point your command line has "flutter pub run build_runner build watch " ... not sure but I think it should be "build" or "watch" ... not both?
Alright, now I understand why everybody hates code generation in Dart.
At 25 minutes, you could have used `for (final entry in visitor.fields.entries)` and then referenced entry.key and entry.value without needing to reference the original structure. Much easier to avoid an off-by-1 problem as well..
Oh right! I keep forgetting to use the for-in loop, this makes the syntax easier to use. Thanks! Also, if it's possible, can you help us with the issue mentioned in the pinned comment by Maruf? Would be of great help. As always, appreciate you taking the time and watching the vid!
Bro please make a home services app with backend..
Love from Bangladesh 🇧🇩
create a series on awesome notification and local notification
Noted!
Can You make the crowdfunding app in flutter
Without using The blockchain
I'll try to see if I can put this in Beginners Flutter tutorial.
Hi, I did the same steps as you did but my code isn't generating .g files. However the build is successful.
example % flutter pub run build_runner build watch --delete-conflicting-outputs
Deprecated. Use `dart run` instead.
Resolving dependencies...
Got dependencies.
Building package executable... (3.4s)
Built build_runner:build_runner.
[INFO] Generating build script completed, took 163ms
[WARNING] Throwing away cached asset graph because the language version of some package(s) changed. This would most commonly happen when updating dependencies or changing your min sdk constraint.
[INFO] Cleaning up outputs from previous builds. completed, took 2ms
[INFO] Generating build script completed, took 29ms
[WARNING] Invalidated precompiled build script due to missing asset graph.
[INFO] Precompiling build script... completed, took 450ms
[INFO] Building new asset graph completed, took 621ms
[INFO] Checking for unexpected pre-existing outputs. completed, took 0ms
[INFO] Generating SDK summary completed, took 2.3s
[INFO] Running build completed, took 2.5s
[INFO] Caching finalized dependency graph completed, took 28ms
[INFO] Succeeded after 2.5s with 2 outputs (6 actions)
Can you guide me i'm very new to this
I have the exact same issue
I got something similar to this error which I solved by downgrading the flutter sdk to 3.0.0. As build_runner works on flutter 3.0.0 or lower versions