{"id":81183,"date":"2023-03-13T10:26:18","date_gmt":"2023-03-13T10:26:18","guid":{"rendered":"https:\/\/siit.co\/guestposts\/?p=81183"},"modified":"2023-04-11T10:52:45","modified_gmt":"2023-04-11T10:52:45","slug":"how-to-auto-generate-your-providers-with-flutter-riverpod-generator","status":"publish","type":"post","link":"https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/","title":{"rendered":"How to Auto-Generate your Providers with Flutter Riverpod Generator?"},"content":{"rendered":"<h1>How to Auto-Generate your Providers with Flutter Riverpod Generator?<\/h1>\n<p>Learning the fundamental concept of the Flutter Riverpod repository is crucial. It will help you know the primary role of the Flutter Riverpod and how you can auto-generate your provider. Flutter Riverpod offers six different types of providers that the developers can use. But, writing several providers manually is an error-prone task. Therefore, selecting one provider is quite a challenging task.<\/p>\n<p>But now, you can easily annotate the code with Riverpod and allow the build_runner to generate each provider on the fly. However, you can <strong>consult with Flutter developers <\/strong>at <a href=\"https:\/\/flutteragency.com\/hire-flutter-developer\/\"><strong>www.flutteragency.com <\/strong><\/a>if you do not have expertise in this. Here, we will discuss how you can auto-generate the providers easily with the Flutter Riverpod generator.<\/p>\n<h2>An Introduction to the Flutter Riverpod<\/h2>\n<p>Riverpod is one of the agile data binding and reactive caching frameworks for Dart or Flutter. It takes care of the state management on its own. It is a unique framework that can fetch, combine, cache, and recompute network requests. So, it eliminates the chances of manual errors. It is mainly a reconstruction of the Provider package, further indicating that the Flutter Riverpod reduces the dependencies.<\/p>\n<p>The major advantages of using Riverpod over the providers are:<\/p>\n<ul>\n<li>There is no need to get the &#8216;provider not found&#8217; exception.<\/li>\n<li>Users can facilitate the combinations of the providers significantly instead of the error-prone and tedious ProxyProvider.<\/li>\n<li>You can also define the global providers.<\/li>\n<\/ul>\n<h2>Use Cases<\/h2>\n<p>Now, you must be thinking about its use cases to understand the Flutter Riverpod in a better way. You can <strong>consult with Flutter developers<\/strong> for a better understanding. However, here is the list of the use cases of the Flutter Riverpod.<\/p>\n<ul>\n<li>It catches the programming errors at the compile-time instead of the runtime.<\/li>\n<li>The Riverpod can fetch data and cache and then update it from remote sources.<\/li>\n<li>This specific framework can update your UI quickly and seamlessly.<\/li>\n<li>It depends on the computed or asynchronous state.<\/li>\n<li>Users can write testable codes and keep the logic away from the widget tree.<\/li>\n<li>It allows the users to create, combine, and use the providers using the minimal boilerplate code.<\/li>\n<li>This framework will help you to dispose of a provider&#8217;s status when it is no longer in use.<\/li>\n<\/ul>\n<h2>How Can You Auto Generate the Providers Using Flutter Riverpod Generator?<\/h2>\n<p>Writing Flutter apps with the help of Riverpod has become pretty straightforward and time-saving. When talking about auto-generating the providers using the Flutter Riverpod generator, many things need to be covered. However, you can <strong>consult with Flutter developers <\/strong>to learn more about the entire process.<\/p>\n<p>In this article, we will discuss the fundamental things, such as how you can generate the providers from the functions with the new @riverpod syntax. Hence, this section will cover how you can declare the providers using @riverpod syntax, pass the arguments to a provider that overrides the old family modifier&#8217;s constraints, and convert the FutureProvider to the new syntax. So, let&#8217;s begin without delay.<\/p>\n<h3>Step 1: New Project and the Mock Data<\/h3>\n<p>First, you must create the new project and include a data folder in your root directory. You have to update the pubspec.yaml file to access and use the data folder.<\/p>\n<p>dependencies:<\/p>\n<p>\u00a0 # orflutter_riverpod\/hooks_riverpod as per https:\/\/riverpod.dev\/docs\/getting_started<\/p>\n<p>riverpod:<\/p>\n<p>\u00a0 # the annotation package containing @riverpod<\/p>\n<p>riverpod_annotation:<\/p>\n<p>&nbsp;<\/p>\n<p>dev_dependencies:<\/p>\n<p>\u00a0 # a tool for running code generators<\/p>\n<p>build_runner:<\/p>\n<p>\u00a0 # the code generator<\/p>\n<p>riverpod_generator:<\/p>\n<p>You can begin the code generator in the &#8216;watch&#8217; mode. So, for that to happen, you must run the &#8216;dart run build_runner watch&#8217; command on the terminal. However, if you encounter version conflict, you may try another one,&#8217; flutter pub run build_runnerwatch .&#8217; It will look after every dart file in your new project. Additionally, it will update your generated code automatically when you make any changes.<\/p>\n<h3>Step 2: Produce the First Annotated Provider<\/h3>\n<p>Now it is time to proceed by producing some providers. In this step, you must begin with creating some simple providers.<\/p>\n<p>\/\/ dio_provider.dart<\/p>\n<p>import &#8216;package:dio\/dio.dart&#8217;;<\/p>\n<p>import &#8216;package:flutter_riverpod\/flutter_riverpod.dart&#8217;;<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ a provider for the Dio client to be used by the rest of the app<\/p>\n<p>finaldioProvider = Provider&lt;Dio&gt;((ref) {<\/p>\n<p>returnDio();<\/p>\n<p>});<\/p>\n<p>After creating the providers, you should modify the files to use the new syntax.<\/p>\n<p>import &#8216;package:dio\/dio.dart&#8217;;<\/p>\n<p>\/\/ 1. import the riverpod_annotation package<\/p>\n<p>import &#8216;package:riverpod_annotation\/riverpod_annotation.dart&#8217;;<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ 2. add a part file<\/p>\n<p>part &#8216;dio_provider.g.dart&#8217;;<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ 3. use the @riverpod annotation<\/p>\n<p>@riverpod<\/p>\n<p>\/\/ 4. update the declaration<\/p>\n<p>Diodio(DioRef ref) {<\/p>\n<p>returnDio();<\/p>\n<p>}<\/p>\n<p>After you save this file, the build_runner will start working and create dio_provider. g. dart in that same data folder. Your new .g. dart files will automatically generate with the existing ones. Hence, there is no need to make any changes to your folder structure. However, you will see the following structure when you open your generated file.<\/p>\n<p>\/\/ GENERATED CODE &#8211; DO NOT MODIFY BY HAND<\/p>\n<p>&nbsp;<\/p>\n<p>part of &#8216;dio_provider.dart&#8217;;<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ **************************************************************************<\/p>\n<p>\/\/ RiverpodGenerator<\/p>\n<p>\/\/ **************************************************************************<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/ ignore_for_file: avoid_private_typedef_functions, non_constant_identifier_names, subtype_of_sealed_class, invalid_use_of_internal_member, unused_element, constant_identifier_names, unnecessary_raw_strings, library_private_types_in_public_api<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/\/ Copied from Dart SDK<\/p>\n<p>class _SystemHash {<\/p>\n<p>\u00a0 _SystemHash._();<\/p>\n<p>&nbsp;<\/p>\n<p>staticint combine(int hash, int value) {<\/p>\n<p>\u00a0\u00a0\u00a0 \/\/ ignore: parameter_assignments<\/p>\n<p>hash = 0x1fffffff &amp; (hash + value);<\/p>\n<p>\u00a0\u00a0\u00a0 \/\/ ignore: parameter_assignments<\/p>\n<p>hash = 0x1fffffff &amp; (hash + ((0x0007ffff &amp; hash) &lt;&lt; 10));<\/p>\n<p>return hash ^ (hash &gt;&gt; 6);<\/p>\n<p>\u00a0 }<\/p>\n<p>&nbsp;<\/p>\n<p>staticint finish(int hash) {<\/p>\n<p>\u00a0\u00a0\u00a0 \/\/ ignore: parameter_assignments<\/p>\n<p>hash = 0x1fffffff &amp; (hash + ((0x03ffffff &amp; hash) &lt;&lt; 3));<\/p>\n<p>\u00a0\u00a0\u00a0 \/\/ ignore: parameter_assignments<\/p>\n<p>hash = hash ^ (hash &gt;&gt; 11);<\/p>\n<p>return 0x1fffffff &amp; (hash + ((0x00003fff &amp; hash) &lt;&lt; 15));<\/p>\n<p>\u00a0 }<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>String $dioHash() =&gt; r&#8217;58eeefbd0832498ca2574c1fe69ed783c58d1d8f&#8217;;<\/p>\n<p>&nbsp;<\/p>\n<p>\/\/\/ See also [dio].<\/p>\n<p>finaldioProvider = AutoDisposeProvider&lt;Dio&gt;(<\/p>\n<p>dio,<\/p>\n<p>name: r&#8217;dioProvider&#8217;,<\/p>\n<p>debugGetCreateSourceHash:<\/p>\n<p>constbool.fromEnvironment(&#8216;dart.vm.product&#8217;) ? null : $dioHash,<\/p>\n<p>);<\/p>\n<p>typedefDioRef = AutoDisposeProviderRef&lt;Dio&gt;;<\/p>\n<p>You will notice some relevant things in this specific file. The file will contain the required dioProvider along with extra properties you need for debugging. Also, it defines the DioRef type like AutoDisposeProviderRef&lt;Dio&gt;. So, it implies that you have to write the following code.<\/p>\n<p>part &#8216;dio_provider.g.dart&#8217;;<\/p>\n<p>&nbsp;<\/p>\n<p>@riverpod<\/p>\n<p>Diodio(DioRef ref) {<\/p>\n<p>returnDio();<\/p>\n<p>}<\/p>\n<p>After this, the Riverpod generator will produce the corresponding DioRef and the DioProvider type, which you must pass as arguments to your function. Each provider produced with the Riverpod generator will, by default, use the autoDispose modifier.<\/p>\n<h3>Step 3: Produce a Provider For the Repository Class<\/h3>\n<p>After getting the dioProvider, you must try using it somewhere. For instance, let&#8217;s think you have a MoviesRepository class which will further define a few techniques to fetch the movie&#8217;s data.<\/p>\n<p>You may write the following code to produce a provider for this specific repository.<\/p>\n<p>part &#8216;movies_repository.g.dart&#8217;;<\/p>\n<p>&nbsp;<\/p>\n<p>@riverpod<\/p>\n<p>MoviesRepositorymoviesRepository(MoviesRepositoryRef ref) =&gt;MoviesRepository(<\/p>\n<p>client: ref.watch(dioProvider), \/\/ the provider we defined above<\/p>\n<p>apiKey: Env.tmdbApiKey, \/\/ a constant defined elsewhere<\/p>\n<p>\u00a0\u00a0\u00a0 );<\/p>\n<p>As a result, the Flutter Riverpod generator will produce the MoviesRepositoryProvider along with the MoviesRepositoryRef type for you. While producing the providers for any repository, do not include the @riverpod annotation. Instead, produce an individual global function that will return an instance of the specific repository to annotate it.<\/p>\n<h3>Step 4: Produce and Read An Annotated FutureProvider<\/h3>\n<p>In this part, you should convert the FutureProvider to use @riverpod annotation.<\/p>\n<p>@riverpod<\/p>\n<p>Future&lt;TMDBMovie&gt;movie(<\/p>\n<p>MovieRef ref, {<\/p>\n<p>requiredintmovieId,<\/p>\n<p>}) {<\/p>\n<p>return ref<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0 .watch(moviesRepositoryProvider)<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0 .movie(movieId: movieId);<\/p>\n<p>}<\/p>\n<p>Then, you can watch the annotation inside the widget.<\/p>\n<p>classMovieDetailsScreen extends ConsumerWidget {<\/p>\n<p>constMovieDetailsScreen({super.key, required this.movieId});<\/p>\n<p>finalintmovieId;<\/p>\n<p>&nbsp;<\/p>\n<p>\u00a0 @override<\/p>\n<p>\u00a0 Widget build(BuildContext context, WidgetRef ref) {<\/p>\n<p>\u00a0\u00a0\u00a0 \/\/ movieId is a *named* argument<\/p>\n<p>finalmovieAsync = ref.watch(movieProvider(movieId: movieId));<\/p>\n<p>returnmovieAsync.when(<\/p>\n<p>error: (e, st) =&gt; Text(e.toString()),<\/p>\n<p>loading: () =&gt;CircularProgressIndicator(),<\/p>\n<p>data: (movie) =&gt;SomeMovieWidget(movie),<\/p>\n<p>\u00a0\u00a0\u00a0 );<\/p>\n<p>\u00a0 }<\/p>\n<p>}<\/p>\n<p>As you may notice, movieId is mainly a named argument, as we have referred to it in the movie section.<\/p>\n<p>@riverpod<\/p>\n<p>Future&lt;TMDBMovie&gt;movie(<\/p>\n<p>MovieRef ref, {<\/p>\n<p>requiredintmovieId,<\/p>\n<p>}) {<\/p>\n<p>return ref<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0 .watch(moviesRepositoryProvider)<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0\u00a0 .movie(movieId: movieId);<\/p>\n<p>}<\/p>\n<p>It simply implies that there is no need to limit to defining a specific provider family along with the single positional argument. You must define a specific function using a &#8216;ref&#8217; object and positional arguments as many as you want. The Riverpod generator will look after the rest of them.<\/p>\n<h2>Conclusion<\/h2>\n<p>All in all, the Riverpod generator will bring several benefits to your table and give logical reasons to use it. It will generate the correct type of provider automatically, eliminating the chance of any error. Additionally, this framework offers a simplified process to create the providers with arguments.<\/p>\n<p>Also, the biggest advantage of using the Riverpod is it offers less type errors during runtime and improves type safety. However, you can use it on your own or <strong>consult with Flutter developers <\/strong>to try this framework and to learn about <a href=\"https:\/\/flutteragency.com\/whats-new-flutter-3-7\/\"><strong>features in flutter 3.7<\/strong><\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>How to Auto-Generate your Providers with Flutter Riverpod Generator? Learning the fundamental concept of the Flutter Riverpod repository is crucial. It will help you know&#8230;<\/p>\n","protected":false},"author":324,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[68433,68435,68436,68434],"class_list":["post-81183","post","type-post","status-publish","format-standard","hentry","category-technology","tag-an-introduction-to-the-flutter-riverpod","tag-new-project-and-the-mock-data","tag-produce-the-first-annotated-provider","tag-use-cases"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Auto-Generate your Providers with Flutter Riverpod Generator? - SIIT - Tech Guest Posts<\/title>\n<meta name=\"description\" content=\"Learning the fundamental concept of the Flutter Riverpod repository is crucial. It will help you know the primary role of the Flutter\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Auto-Generate your Providers with Flutter Riverpod Generator? - SIIT - Tech Guest Posts\" \/>\n<meta property=\"og:description\" content=\"Learning the fundamental concept of the Flutter Riverpod repository is crucial. It will help you know the primary role of the Flutter\" \/>\n<meta property=\"og:url\" content=\"https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/\" \/>\n<meta property=\"og:site_name\" content=\"SIIT - Tech Guest Posts\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/profile.php?id=100088504218610\" \/>\n<meta property=\"article:published_time\" content=\"2023-03-13T10:26:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-04-11T10:52:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/siit.co\/guestposts\/wp-content\/uploads\/2023\/03\/dc.png\" \/>\n\t<meta property=\"og:image:width\" content=\"601\" \/>\n\t<meta property=\"og:image:height\" content=\"403\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"hearingrehabs\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"hearingrehabs\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/\",\"url\":\"https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/\",\"name\":\"How to Auto-Generate your Providers with Flutter Riverpod Generator? - SIIT - Tech Guest Posts\",\"isPartOf\":{\"@id\":\"https:\/\/siit.co\/guestposts\/#website\"},\"datePublished\":\"2023-03-13T10:26:18+00:00\",\"dateModified\":\"2023-04-11T10:52:45+00:00\",\"author\":{\"@id\":\"https:\/\/siit.co\/guestposts\/#\/schema\/person\/44c7ac57a84ee862f79fb6c77f5173f1\"},\"description\":\"Learning the fundamental concept of the Flutter Riverpod repository is crucial. It will help you know the primary role of the Flutter\",\"breadcrumb\":{\"@id\":\"https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/siit.co\/guestposts\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Auto-Generate your Providers with Flutter Riverpod Generator?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/siit.co\/guestposts\/#website\",\"url\":\"https:\/\/siit.co\/guestposts\/\",\"name\":\"SIIT - Tech Guest Posts\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/siit.co\/guestposts\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/siit.co\/guestposts\/#\/schema\/person\/44c7ac57a84ee862f79fb6c77f5173f1\",\"name\":\"hearingrehabs\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/siit.co\/guestposts\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/125fccbc725a0c75eaf6ad96c937f42c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/125fccbc725a0c75eaf6ad96c937f42c?s=96&d=mm&r=g\",\"caption\":\"hearingrehabs\"},\"description\":\"We are a marketing company that is qualified &amp; Professional Expert and licensed. Our company\u2019s aim is to lead from the front to achieve your Goal. we have experts with a lot of experience who can plan and run your campaigns successfully. Giving you information from our partners about transparency and accountability to give you an edge in the market! Increase the number of customers your business has and how well people know about it. Digital marketing has become the best and most powerful way to get customers interested in your brand by making people aware of it. The best digital marketing company in Lahore and the surrounding area is digital marketing. Digital marketing will spread the word about your business to a wide range of people. https:\/\/goo.gl\/maps\/3vVgXwKayQzuXCcZ7\",\"sameAs\":[\"https:\/\/digitalmarketingserviceslahore.pk\/\",\"https:\/\/www.facebook.com\/profile.php?id=100088504218610\",\"https:\/\/www.instagram.com\/digitaltecg567u\/\"],\"url\":\"https:\/\/siit.co\/guestposts\/author\/hearingrehabs\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Auto-Generate your Providers with Flutter Riverpod Generator? - SIIT - Tech Guest Posts","description":"Learning the fundamental concept of the Flutter Riverpod repository is crucial. It will help you know the primary role of the Flutter","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/","og_locale":"en_US","og_type":"article","og_title":"How to Auto-Generate your Providers with Flutter Riverpod Generator? - SIIT - Tech Guest Posts","og_description":"Learning the fundamental concept of the Flutter Riverpod repository is crucial. It will help you know the primary role of the Flutter","og_url":"https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/","og_site_name":"SIIT - Tech Guest Posts","article_author":"https:\/\/www.facebook.com\/profile.php?id=100088504218610","article_published_time":"2023-03-13T10:26:18+00:00","article_modified_time":"2023-04-11T10:52:45+00:00","og_image":[{"width":601,"height":403,"url":"https:\/\/siit.co\/guestposts\/wp-content\/uploads\/2023\/03\/dc.png","type":"image\/png"}],"author":"hearingrehabs","twitter_card":"summary_large_image","twitter_misc":{"Written by":"hearingrehabs","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/","url":"https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/","name":"How to Auto-Generate your Providers with Flutter Riverpod Generator? - SIIT - Tech Guest Posts","isPartOf":{"@id":"https:\/\/siit.co\/guestposts\/#website"},"datePublished":"2023-03-13T10:26:18+00:00","dateModified":"2023-04-11T10:52:45+00:00","author":{"@id":"https:\/\/siit.co\/guestposts\/#\/schema\/person\/44c7ac57a84ee862f79fb6c77f5173f1"},"description":"Learning the fundamental concept of the Flutter Riverpod repository is crucial. It will help you know the primary role of the Flutter","breadcrumb":{"@id":"https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/siit.co\/guestposts\/how-to-auto-generate-your-providers-with-flutter-riverpod-generator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/siit.co\/guestposts\/"},{"@type":"ListItem","position":2,"name":"How to Auto-Generate your Providers with Flutter Riverpod Generator?"}]},{"@type":"WebSite","@id":"https:\/\/siit.co\/guestposts\/#website","url":"https:\/\/siit.co\/guestposts\/","name":"SIIT - Tech Guest Posts","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/siit.co\/guestposts\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/siit.co\/guestposts\/#\/schema\/person\/44c7ac57a84ee862f79fb6c77f5173f1","name":"hearingrehabs","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/siit.co\/guestposts\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/125fccbc725a0c75eaf6ad96c937f42c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/125fccbc725a0c75eaf6ad96c937f42c?s=96&d=mm&r=g","caption":"hearingrehabs"},"description":"We are a marketing company that is qualified &amp; Professional Expert and licensed. Our company\u2019s aim is to lead from the front to achieve your Goal. we have experts with a lot of experience who can plan and run your campaigns successfully. Giving you information from our partners about transparency and accountability to give you an edge in the market! Increase the number of customers your business has and how well people know about it. Digital marketing has become the best and most powerful way to get customers interested in your brand by making people aware of it. The best digital marketing company in Lahore and the surrounding area is digital marketing. Digital marketing will spread the word about your business to a wide range of people. https:\/\/goo.gl\/maps\/3vVgXwKayQzuXCcZ7","sameAs":["https:\/\/digitalmarketingserviceslahore.pk\/","https:\/\/www.facebook.com\/profile.php?id=100088504218610","https:\/\/www.instagram.com\/digitaltecg567u\/"],"url":"https:\/\/siit.co\/guestposts\/author\/hearingrehabs\/"}]}},"_links":{"self":[{"href":"https:\/\/siit.co\/guestposts\/wp-json\/wp\/v2\/posts\/81183","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/siit.co\/guestposts\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/siit.co\/guestposts\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/siit.co\/guestposts\/wp-json\/wp\/v2\/users\/324"}],"replies":[{"embeddable":true,"href":"https:\/\/siit.co\/guestposts\/wp-json\/wp\/v2\/comments?post=81183"}],"version-history":[{"count":0,"href":"https:\/\/siit.co\/guestposts\/wp-json\/wp\/v2\/posts\/81183\/revisions"}],"wp:attachment":[{"href":"https:\/\/siit.co\/guestposts\/wp-json\/wp\/v2\/media?parent=81183"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/siit.co\/guestposts\/wp-json\/wp\/v2\/categories?post=81183"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/siit.co\/guestposts\/wp-json\/wp\/v2\/tags?post=81183"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}