{"id":1551,"date":"2021-02-12T10:44:04","date_gmt":"2021-02-12T05:14:04","guid":{"rendered":"http:\/\/blog.nuventure.in\/?p=1551"},"modified":"2026-02-16T17:20:27","modified_gmt":"2026-02-16T11:50:27","slug":"flutter-bloc-tutorial-state-management","status":"publish","type":"post","link":"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/","title":{"rendered":"Introduction to Flutter with BLoC"},"content":{"rendered":"\n<p>By significantly cutting down on development efforts and time-to-market, <a href=\"https:\/\/nuventureconnect.com\/blog\/2020\/07\/29\/faster-and-better-apps-using-flutter\/\" target=\"_blank\" rel=\"noreferrer noopener\">Flutter has become a popular tool for developing cross-platform apps<\/a>. It offers the performance of native apps and at the same time offers a huge potential for customizing UI.&nbsp;BLoC is a design pattern for coding with Flutter. <\/p>\n\n\n\n<p>As iOS and Android developers started building apps using Flutter, they began with the Model-View-Controller(MVC) pattern they were familiar with. It keeps the UI(View) separate from the data(Model) and the business logic(Controller). The user interacts with the view, which then connects with the controller to fetch data from the model.&nbsp;<\/p>\n\n\n\n<p>But soon, a new design pattern emerged, much more suitable for developing flutter. This is called the BLoC or the Business Logic Components and is similar to, or rather a variant of the MVC. &nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>So what is BLoC?<\/strong><\/h3>\n\n\n\n<p>BLoC is a design pattern for Flutter apps. It can be co-related to MVC or MVVM model and is recommended by Google for state management in Flutter. It was announced at Google I\/O in 2018. This pattern separates design and logic and makes it easy to fix issues in design without affecting logic and vice-versa.&nbsp; <\/p>\n\n\n\n<p>The pattern generally consists of 4 layers, each of which communicates directly only with layers above or below.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Application layers on BloC<\/strong><\/h3>\n\n\n\n<p>UI is the first layer and is the layer that the user sees and interacts with. Any interaction, such as a click, creates an \u201cevent\u201d. The event is then sent to the bloc.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"815\" height=\"350\" src=\"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/Screenshot-2021-02-09-at-12.14.41-PM.png\" alt=\"Application Layers in BloC\" class=\"wp-image-1554\" srcset=\"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/Screenshot-2021-02-09-at-12.14.41-PM.png 815w, https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/Screenshot-2021-02-09-at-12.14.41-PM-300x129.png 300w, https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/Screenshot-2021-02-09-at-12.14.41-PM-768x330.png 768w, https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/Screenshot-2021-02-09-at-12.14.41-PM-600x258.png 600w\" sizes=\"(max-width: 815px) 100vw, 815px\" \/><figcaption class=\"wp-element-caption\"><em>UI<\/em><\/figcaption><\/figure>\n\n\n\n<p>In crude terms, a bloc can be compared to the controller in the MVC model. It handles the communication between the UI and the data and has the business logic. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"803\" height=\"453\" src=\"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/Screenshot-2021-02-09-at-12.13.37-PM.png\" alt=\"Application Layers in BloC\" class=\"wp-image-1552\" srcset=\"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/Screenshot-2021-02-09-at-12.13.37-PM.png 803w, https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/Screenshot-2021-02-09-at-12.13.37-PM-300x169.png 300w, https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/Screenshot-2021-02-09-at-12.13.37-PM-768x432.png 768w, https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/Screenshot-2021-02-09-at-12.13.37-PM-600x338.png 600w\" sizes=\"(max-width: 803px) 100vw, 803px\" \/><figcaption class=\"wp-element-caption\"><em>BLoC<\/em><\/figcaption><\/figure><\/div>\n\n\n<p>When this layer receives the event, it executes the business logic, and returns a \u201cstate\u201d. A state is basically anything that needs to be changed. It could be some changes in the UI, or it could be something to do with the layer below. Bloc communicates with the repository when there&#8217;s a change in the repository.&nbsp;<\/p>\n\n\n\n<p>Events and states are how communication happens between the UI and the bloc.&nbsp;<\/p>\n\n\n\n<p>A repository is a layer between the data provider and the bloc. It gets the data from the database to the bloc. It may seem like the function is somewhat redundant, (I mean, why can\u2019t the bloc fetch its own data?). But sometimes the data is spread across multiple sources. Or it needs to fetch data from different sources depending on conditions. Here the repository layer can clean things up a bit.&nbsp;<\/p>\n\n\n\n<p>The last layer is the data provider.&nbsp;&nbsp;<\/p>\n\n\n\n<p>In a crude analogy, you can compare it to how a computer functions. The UI is the input-output devices, the bloc is the CPU, and data is, well memory devices. Except may be multiple blocs and data sources.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Widgets in bloc library<\/strong><\/h3>\n\n\n\n<p>You have to add the bloc library to your project to begin. To implement this pattern, you\u2019ll be seeing these two widgets a lot.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>BlocProvider&nbsp;<\/strong><\/h2>\n\n\n\n<p>As the name suggests, a BlocProvider provides blocs. If there are many widgets in a single subtree, BlocProvider builds and provides Blocs to all of them.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>BlocBuilder<\/strong><\/h2>\n\n\n\n<p>A BlocBuilder builds new blocs when there\u2019s a change in state. It builds new widgets in response to change in state that may show up as new UI elements.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Advantages of bloc<\/strong><\/h3>\n\n\n\n<p>Bloc was <a href=\"https:\/\/bloclibrary.dev\/#\/whybloc\" target=\"_blank\" rel=\"noreferrer noopener\">designed for clean coding, fast apps, and easy development. <\/a>And this resulted in a design pattern that presented the following advantages.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Easy to separate UI from logic<\/strong><\/h2>\n\n\n\n<p>As mentioned above, in bloc, design and logic are separated. This means developers can work on the same code base at the same time, and changes in design won\u2019t affect the rest of the code.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Easy to test<\/strong><\/h2>\n\n\n\n<p>The pattern is designed around three guiding principles or core values: simple, testable, and powerful.  Flutter bloc is made of small components, each of which can be tested discretely. This makes it easy to test entire applications easily.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Reusability<\/strong><\/h2>\n\n\n\n<p>The pattern makes it easy to reuse different components within the application and other applications.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Easy to work on<\/strong><\/h2>\n\n\n\n<p>Using this design pattern, many developers can work on the same codebase at the same time. It is easy to understand and get acquainted with the code. And developers of varying skill levels can easily start working on it. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Disadvantages of flutter bloc<\/strong><\/h3>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Lots of boilerplate code<\/strong><\/h2>\n\n\n\n<p>Compared to other patterns, yes, but totally worth it for anything other than a small application.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>By significantly cutting down on development efforts and time-to-market, Flutter has become a popular tool for developing cross-platform apps. It offers the performance of native apps and at the same time offers a huge potential for customizing UI.&nbsp;BLoC is a design pattern for coding with Flutter. As iOS and Android developers started building apps using [&hellip;]<\/p>\n","protected":false},"author":100,"featured_media":1561,"comment_status":"open","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[25,29,26],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v23.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Flutter BLoC Tutorial | State Management Guide<\/title>\n<meta name=\"description\" content=\"Learn Flutter BLoC architecture with this complete tutorial. Understand state management, events, states, and clean app structure for scalable Flutter development.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Flutter BLoC Tutorial | State Management Guide\" \/>\n<meta property=\"og:description\" content=\"Learn Flutter BLoC architecture with this complete tutorial. Understand state management, events, states, and clean app structure for scalable Flutter development.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/\" \/>\n<meta property=\"og:site_name\" content=\"Nuventure Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nuventureco\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-12T05:14:04+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-16T11:50:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/flutter-with-Bloc-.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Steve\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@nuventureco\" \/>\n<meta name=\"twitter:site\" content=\"@nuventureco\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Steve\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/\"},\"author\":{\"name\":\"Steve\",\"@id\":\"https:\/\/nuventureconnect.com\/blog\/#\/schema\/person\/e42795dd493946ecd146143ac76ff1a6\"},\"headline\":\"Introduction to Flutter with BLoC\",\"datePublished\":\"2021-02-12T05:14:04+00:00\",\"dateModified\":\"2026-02-16T11:50:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/\"},\"wordCount\":772,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/nuventureconnect.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/flutter-with-Bloc-.png\",\"articleSection\":[\"Android\",\"iOS\",\"Programming\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/\",\"url\":\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/\",\"name\":\"Flutter BLoC Tutorial | State Management Guide\",\"isPartOf\":{\"@id\":\"https:\/\/nuventureconnect.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/flutter-with-Bloc-.png\",\"datePublished\":\"2021-02-12T05:14:04+00:00\",\"dateModified\":\"2026-02-16T11:50:27+00:00\",\"description\":\"Learn Flutter BLoC architecture with this complete tutorial. Understand state management, events, states, and clean app structure for scalable Flutter development.\",\"breadcrumb\":{\"@id\":\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#primaryimage\",\"url\":\"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/flutter-with-Bloc-.png\",\"contentUrl\":\"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/flutter-with-Bloc-.png\",\"width\":1200,\"height\":675,\"caption\":\"Flutter BLoC Tutorial: A Complete Guide to State Management Architecture\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/nuventureconnect.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introduction to Flutter with BLoC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/nuventureconnect.com\/blog\/#website\",\"url\":\"https:\/\/nuventureconnect.com\/blog\/\",\"name\":\"Nuventure Blog\",\"description\":\"Knowledge.transmit!\",\"publisher\":{\"@id\":\"https:\/\/nuventureconnect.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/nuventureconnect.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/nuventureconnect.com\/blog\/#organization\",\"name\":\"Nuventure Connect Private Limited\",\"url\":\"https:\/\/nuventureconnect.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/nuventureconnect.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2023\/03\/logo-main-with-cartion-1.webp\",\"contentUrl\":\"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2023\/03\/logo-main-with-cartion-1.webp\",\"width\":200,\"height\":89,\"caption\":\"Nuventure Connect Private Limited\"},\"image\":{\"@id\":\"https:\/\/nuventureconnect.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/nuventureco\/\",\"https:\/\/x.com\/nuventureco\",\"https:\/\/www.instagram.com\/nuventure\/\",\"https:\/\/in.linkedin.com\/company\/nuventure\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/nuventureconnect.com\/blog\/#\/schema\/person\/e42795dd493946ecd146143ac76ff1a6\",\"name\":\"Steve\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/nuventureconnect.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/304e12c24de1b4770ca00ae1dd506c29?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/304e12c24de1b4770ca00ae1dd506c29?s=96&r=g\",\"caption\":\"Steve\"},\"url\":\"https:\/\/nuventureconnect.com\/blog\/author\/steve\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Flutter BLoC Tutorial | State Management Guide","description":"Learn Flutter BLoC architecture with this complete tutorial. Understand state management, events, states, and clean app structure for scalable Flutter development.","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:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/","og_locale":"en_US","og_type":"article","og_title":"Flutter BLoC Tutorial | State Management Guide","og_description":"Learn Flutter BLoC architecture with this complete tutorial. Understand state management, events, states, and clean app structure for scalable Flutter development.","og_url":"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/","og_site_name":"Nuventure Blog","article_publisher":"https:\/\/www.facebook.com\/nuventureco\/","article_published_time":"2021-02-12T05:14:04+00:00","article_modified_time":"2026-02-16T11:50:27+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/flutter-with-Bloc-.png","type":"image\/png"}],"author":"Steve","twitter_card":"summary_large_image","twitter_creator":"@nuventureco","twitter_site":"@nuventureco","twitter_misc":{"Written by":"Steve","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#article","isPartOf":{"@id":"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/"},"author":{"name":"Steve","@id":"https:\/\/nuventureconnect.com\/blog\/#\/schema\/person\/e42795dd493946ecd146143ac76ff1a6"},"headline":"Introduction to Flutter with BLoC","datePublished":"2021-02-12T05:14:04+00:00","dateModified":"2026-02-16T11:50:27+00:00","mainEntityOfPage":{"@id":"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/"},"wordCount":772,"commentCount":0,"publisher":{"@id":"https:\/\/nuventureconnect.com\/blog\/#organization"},"image":{"@id":"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#primaryimage"},"thumbnailUrl":"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/flutter-with-Bloc-.png","articleSection":["Android","iOS","Programming"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/","url":"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/","name":"Flutter BLoC Tutorial | State Management Guide","isPartOf":{"@id":"https:\/\/nuventureconnect.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#primaryimage"},"image":{"@id":"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#primaryimage"},"thumbnailUrl":"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/flutter-with-Bloc-.png","datePublished":"2021-02-12T05:14:04+00:00","dateModified":"2026-02-16T11:50:27+00:00","description":"Learn Flutter BLoC architecture with this complete tutorial. Understand state management, events, states, and clean app structure for scalable Flutter development.","breadcrumb":{"@id":"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#primaryimage","url":"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/flutter-with-Bloc-.png","contentUrl":"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2021\/02\/flutter-with-Bloc-.png","width":1200,"height":675,"caption":"Flutter BLoC Tutorial: A Complete Guide to State Management Architecture"},{"@type":"BreadcrumbList","@id":"https:\/\/nuventureconnect.com\/blog\/2021\/02\/12\/flutter-bloc-tutorial-state-management\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nuventureconnect.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Introduction to Flutter with BLoC"}]},{"@type":"WebSite","@id":"https:\/\/nuventureconnect.com\/blog\/#website","url":"https:\/\/nuventureconnect.com\/blog\/","name":"Nuventure Blog","description":"Knowledge.transmit!","publisher":{"@id":"https:\/\/nuventureconnect.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nuventureconnect.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/nuventureconnect.com\/blog\/#organization","name":"Nuventure Connect Private Limited","url":"https:\/\/nuventureconnect.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nuventureconnect.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2023\/03\/logo-main-with-cartion-1.webp","contentUrl":"https:\/\/nuventureconnect.com\/blog\/wp-content\/uploads\/2023\/03\/logo-main-with-cartion-1.webp","width":200,"height":89,"caption":"Nuventure Connect Private Limited"},"image":{"@id":"https:\/\/nuventureconnect.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/nuventureco\/","https:\/\/x.com\/nuventureco","https:\/\/www.instagram.com\/nuventure\/","https:\/\/in.linkedin.com\/company\/nuventure"]},{"@type":"Person","@id":"https:\/\/nuventureconnect.com\/blog\/#\/schema\/person\/e42795dd493946ecd146143ac76ff1a6","name":"Steve","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/nuventureconnect.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/304e12c24de1b4770ca00ae1dd506c29?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/304e12c24de1b4770ca00ae1dd506c29?s=96&r=g","caption":"Steve"},"url":"https:\/\/nuventureconnect.com\/blog\/author\/steve\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/nuventureconnect.com\/blog\/wp-json\/wp\/v2\/posts\/1551"}],"collection":[{"href":"https:\/\/nuventureconnect.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nuventureconnect.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nuventureconnect.com\/blog\/wp-json\/wp\/v2\/users\/100"}],"replies":[{"embeddable":true,"href":"https:\/\/nuventureconnect.com\/blog\/wp-json\/wp\/v2\/comments?post=1551"}],"version-history":[{"count":10,"href":"https:\/\/nuventureconnect.com\/blog\/wp-json\/wp\/v2\/posts\/1551\/revisions"}],"predecessor-version":[{"id":3439,"href":"https:\/\/nuventureconnect.com\/blog\/wp-json\/wp\/v2\/posts\/1551\/revisions\/3439"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nuventureconnect.com\/blog\/wp-json\/wp\/v2\/media\/1561"}],"wp:attachment":[{"href":"https:\/\/nuventureconnect.com\/blog\/wp-json\/wp\/v2\/media?parent=1551"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nuventureconnect.com\/blog\/wp-json\/wp\/v2\/categories?post=1551"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nuventureconnect.com\/blog\/wp-json\/wp\/v2\/tags?post=1551"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}