<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[The Flutter Bi-Weekly]]></title><description><![CDATA[A bi-weekly Flutter newsletter for busy developers ☕️🤓]]></description><link>https://newsletter.neevash.dev</link><image><url>https://substackcdn.com/image/fetch/$s_!1WjQ!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fcc5be6d8-312a-44a1-b3f5-16faa968c60b_506x506.png</url><title>The Flutter Bi-Weekly</title><link>https://newsletter.neevash.dev</link></image><generator>Substack</generator><lastBuildDate>Thu, 09 Apr 2026 19:18:23 GMT</lastBuildDate><atom:link href="https://newsletter.neevash.dev/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Neevash Ramdial (Nash)]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[theflutterbiweekly@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[theflutterbiweekly@substack.com]]></itunes:email><itunes:name><![CDATA[Neevash Ramdial (Nash)]]></itunes:name></itunes:owner><itunes:author><![CDATA[Neevash Ramdial (Nash)]]></itunes:author><googleplay:owner><![CDATA[theflutterbiweekly@substack.com]]></googleplay:owner><googleplay:email><![CDATA[theflutterbiweekly@substack.com]]></googleplay:email><googleplay:author><![CDATA[Neevash Ramdial (Nash)]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[The Flutter Bi-Weekly - Issue #12]]></title><description><![CDATA[What does new Dart features, UI challenges, and a Flutter mad scientist all have in common? They are all included in this week's Flutter Bi-Weekly!]]></description><link>https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-12</link><guid isPermaLink="false">https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-12</guid><dc:creator><![CDATA[Neevash Ramdial (Nash)]]></dc:creator><pubDate>Mon, 05 Feb 2024 06:30:18 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/46d39ca1-e42e-4cea-b303-98e082f18515_1012x506.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello Internet &#128075;,</p><p>Another Sunday night means it's time for another issue of the Flutter Bi-Weekly! </p><p>It's hard to believe that we're already a month into the new year; time seems to be on hyper-speed these days. </p><p>The last two weeks have been filled with lots of new Flutter packages, content, and community discussions, so without using up all of the preview text, let's jump into things! &#128521;</p><div><hr></div><h1><strong>Blogs &#9997;&#65039;</strong></h1><h4><a href="https://dev.to/yatendra2001/end-to-end-flutter-architecture-guide-1pbh">End-to-end Flutter Architecture Guide</a></h4><p>Whether you are interviewing for a new Flutter role or looking to brush up on your existing architecture knowledge, <a href="https://twitter.com/iamyatendrak">Yatendra's</a> comprehensive guides cover everything from  Layer Model UIs to platform integration.</p><p></p><h4><strong><a href="https://codewithandrea.com/articles/robust-app-initialization-riverpod/">How to Build a Robust Flutter App Initialization Flow with Riverpod</a></strong></h4><p>It happens...you build an app, test it on a few devices, ship it to the store, and then a few days later, Sentry (or Twitter/X) reports an obscure issue with your app. To help ensure your users have a great experience each time they open your app, <a href="https://twitter.com/biz84">Andrea</a> shares a few tips that can be used to handle errors during the initialization period &#128640;</p><p></p><h4><a href="https://supabase.com/blog/flutter-figma-clone?utm_source=youtube&amp;utm_medium=video&amp;utm_term=tips&amp;utm_content=QhRNXlFLaeE">Create a Figma Clone app with Flutter and Supabase Real-time</a></h4><p>Tyler from the Supabase team walks you through creating a real-time Figma-like app using Flutter and their real-time SDK. In their blog post, you will learn to create the database for the project, implement the UI using a custom painter, and bring it to life using their broadcasting features.&nbsp;</p><p></p><h4><strong><a href="https://suragch.medium.com/a-pocketbase-backend-for-flutter-and-dart-c962bea4e3f1">A PocketBase backend for Flutter and Dart</a></strong></h4><p>Pocketbase is the open-source backend for SAAS and mobile apps. In his latest post, <a href="https://twitter.com/Suragch1">Suragch</a> walks you through the process of creating a Dart backend using Pocketbase complete with authentication and database support &#128268;</p><p></p><h4><a href="https://shorebird.dev/blogs/ios-beta/">Shorebird's Code Push for Flutter now in iOS beta</a></h4><p><a href="https://shorebird.dev/">Shorebird's</a> latest blog post announces their new iOS beta feature for Flutter: Code Push. This tool enables developers to push live updates to Flutter apps on iOS devices instantly, bypassing traditional app store updates. Check out their full release blog post to learn how to get started.</p><p></p><h4><strong><a href="https://codewithandrea.com/articles/flutterflow/">We Need To Talk About FlutterFlow</a></strong></h4><p><a href="https://flutterflow.io/">FlutterFlow</a> has been receiving <a href="https://www.reddit.com/r/FlutterDev/comments/1ads6lp/flutterflow_belongs_in_hell/">lots of attention</a> recently following its $25M fundraising announcement. The tool allows developers to create Flutter apps visually by dragging and dropping components from their UI editor. In this comprehensive review, Andrea looks at using FlutterFlow to build an app, including creating custom components, testing integrations, and more. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Came across this newsletter online or from a friend? Please consider subscribing to receive future editions &#128516;</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h1>Videos &#127909;</h1><h4><strong><a href="https://www.youtube.com/watch?v=gdVNFHgNvpw">Rotary passcode | Flutter UI challenge | Part 2: Animations</a></strong></h4><p>Eight months after the first part (yes really &#129322;&#128584;), <a href="https://twitter.com/mkobuolys">Mangirdas</a> is back with part two in his Flutter UI series around creating a rotary password dial in Flutter. This video covers the fun parts of animation and gesture handling to give the dial its signature spin! </p><p></p><h4><strong><a href="https://www.youtube.com/watch?v=jYWOyMZamcY">Observable Flutter 34: Code generation</a></strong></h4><p>Code generation, the one topic in Flutter that's more confusing to newcomers other than state management &#129322;.</p><p>Flutter GDE <a href="https://twitter.com/AnnaLeushchenko">Anna Leushchenko</a> joins Flutter DevRel <a href="https://twitter.com/craig_labenz">Craig Labenz</a> to discuss how developers can use code generation libraries to accelerate development. </p><p></p><h4><a href="https://www.youtube.com/watch?v=ESqXNHWtONE">Flutter Made Science</a></h4><p>Have you ever wondered how far you can push Flutter or some crazy projects you can build with Flutter? </p><p>Flutter's resident mad scientist and former team member <a href="https://twitter.com/filiphracek">Filip Hr&#225;&#269;ek</a> talks about doing just that in his Flutter Firebase Festival from September of last year. </p><p></p><h4><strong><a href="https://www.youtube.com/watch?v=l-qBUrqysnU">Best Flutter Packages Of 2023</a></strong></h4><p>With over 11,000 Flutter and Dart packages released in 2023, Jay Ben breaks down the top 20 packages that are worth checking out for your next project &#128526;</p><h4></h4><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-12?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Enjoying the post so far? Consider sharing it with a friend :)</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-12?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-12?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div><hr></div><h1><strong>Noteworthy Community Moments &#128171;</strong></h1><h4><a href="https://github.com/millsteed/macros">Upcoming Dart feature: Marcos!</a></h4><p>In the not-too-distant future, the days of manually having to write `<em>toJson</em>` and `<em>fromJson</em>` methods might finally be coming to a close. Dart's experimental Marcos feature is being tested behind a feature flag on the latest version of Flutter's master branch. Check out the linked repository to explore the code or learn more &#129299;</p><p><em>Note: This is very experimental, try out at your own risk!</em> </p><p></p><h4><strong><a href="https://www.reddit.com/r/FlutterDev/comments/1aehfic/flutter_is_not_too_verbose_to_learn_but_is_too/">Flutter is not too verbose to learn, but is too verbose to write</a></strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!AGsl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1a21d34-e1ad-4999-9e21-680537942ba2_1416x618.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!AGsl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1a21d34-e1ad-4999-9e21-680537942ba2_1416x618.png 424w, https://substackcdn.com/image/fetch/$s_!AGsl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1a21d34-e1ad-4999-9e21-680537942ba2_1416x618.png 848w, https://substackcdn.com/image/fetch/$s_!AGsl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1a21d34-e1ad-4999-9e21-680537942ba2_1416x618.png 1272w, https://substackcdn.com/image/fetch/$s_!AGsl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1a21d34-e1ad-4999-9e21-680537942ba2_1416x618.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!AGsl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1a21d34-e1ad-4999-9e21-680537942ba2_1416x618.png" width="616" height="268.8474576271187" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c1a21d34-e1ad-4999-9e21-680537942ba2_1416x618.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:618,&quot;width&quot;:1416,&quot;resizeWidth&quot;:616,&quot;bytes&quot;:135811,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!AGsl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1a21d34-e1ad-4999-9e21-680537942ba2_1416x618.png 424w, https://substackcdn.com/image/fetch/$s_!AGsl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1a21d34-e1ad-4999-9e21-680537942ba2_1416x618.png 848w, https://substackcdn.com/image/fetch/$s_!AGsl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1a21d34-e1ad-4999-9e21-680537942ba2_1416x618.png 1272w, https://substackcdn.com/image/fetch/$s_!AGsl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc1a21d34-e1ad-4999-9e21-680537942ba2_1416x618.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Over the last week, an interesting conversation has been happening on the <a href="https://www.reddit.com/r/FlutterDev/">r/FlutterDev</a> subreddit regarding the current state of Flutter's syntax compared to newer UI toolkits such as Jetpack Compose and Swift UI. OP&nbsp;<a href="https://www.reddit.com/user/_ri4na/">u/_ri4na</a>&nbsp;compared the verbosity of creating simple UIs across the three main frameworks (Flutter, SwiftUI, and Jetpack Compose), highlighting the extra steps and lines of code needed.&nbsp;</p><p>Personally, after six years of the same syntax and verbosity, I'm in the camp of it's time to reevaluate Flutter's syntax and approach when it comes to handling Stateless vs. Stateful widgets, animations, etc. Very curious to hear what everyone else thinks, the entire discussion is worth a read.&nbsp;</p><p></p><div><hr></div><h1><strong>Tweet of the Week &#129351;</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5HTK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037791ca-a567-4f8d-add5-b7d2f6e54c91_1186x1242.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5HTK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037791ca-a567-4f8d-add5-b7d2f6e54c91_1186x1242.png 424w, https://substackcdn.com/image/fetch/$s_!5HTK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037791ca-a567-4f8d-add5-b7d2f6e54c91_1186x1242.png 848w, https://substackcdn.com/image/fetch/$s_!5HTK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037791ca-a567-4f8d-add5-b7d2f6e54c91_1186x1242.png 1272w, https://substackcdn.com/image/fetch/$s_!5HTK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037791ca-a567-4f8d-add5-b7d2f6e54c91_1186x1242.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5HTK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037791ca-a567-4f8d-add5-b7d2f6e54c91_1186x1242.png" width="1186" height="1242" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/037791ca-a567-4f8d-add5-b7d2f6e54c91_1186x1242.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1242,&quot;width&quot;:1186,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:799669,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!5HTK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037791ca-a567-4f8d-add5-b7d2f6e54c91_1186x1242.png 424w, https://substackcdn.com/image/fetch/$s_!5HTK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037791ca-a567-4f8d-add5-b7d2f6e54c91_1186x1242.png 848w, https://substackcdn.com/image/fetch/$s_!5HTK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037791ca-a567-4f8d-add5-b7d2f6e54c91_1186x1242.png 1272w, https://substackcdn.com/image/fetch/$s_!5HTK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F037791ca-a567-4f8d-add5-b7d2f6e54c91_1186x1242.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption"><a href="https://x.com/sakin8tor/status/1751251496442994848">https://x.com/sakin8tor/status/1751251496442994848</a> </figcaption></figure></div><div><hr></div><h1>That's all folks &#128075;</h1><p>I hope you enjoyed today&#8217;s issue of the&nbsp;<a href="https://newsletter.neevash.dev/">Flutter Bi-Weekly</a>! As always, I am very keen to get your feedback on the content and thoughts on the projects mentioned in today&#8217;s newsletter. </p><p>If you have a project, blog post or project you would like to share with the community in the next release, please feel free to send me message on <a href="https://twitter.com/nash0x7e2">Twitter/X</a> or drop me an <a href="mailto:mail@neevash.dev">email</a> &#128231;</p><p></p><p>&#8211;&nbsp;<a href="https://www.threads.net/@nash0x7e2">Nash</a>&nbsp;</p>]]></content:encoded></item><item><title><![CDATA[The Flutter Bi-Weekly - Issue #11]]></title><description><![CDATA[The latest in content, releases and community highlights from across the Flutterverse delivered to your inbox every two weeks &#128526;]]></description><link>https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-11</link><guid isPermaLink="false">https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-11</guid><dc:creator><![CDATA[Neevash Ramdial (Nash)]]></dc:creator><pubDate>Wed, 17 Jan 2024 05:11:20 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ruEB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ruEB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ruEB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 424w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 848w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1272w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ruEB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png" width="440" height="220" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/eee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:506,&quot;width&quot;:1012,&quot;resizeWidth&quot;:440,&quot;bytes&quot;:22703,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ruEB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 424w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 848w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1272w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Happy 2024! The start of a New Year is always a great time to start (or, in my case, restart!) new habits and themes for the year. Since creating this newsletter in 2022, we made it to 10 issues before life became extremely hectic, and all consistency went out of the window.&nbsp;</p><p>From moving to a new country, releasing a&nbsp;<a href="https://getstream.io/video/sdk/flutter/?utm_source=youtube&amp;utm_medium=nash_newsletter&amp;utm_content=developer&amp;utm_term=flutter_biweekly">new product</a>&nbsp;at work, and everything in between, it became super challenging to maintain open-source projects and commitments. As we start the new year, one of my goals is to slowly start contributing to open-source again, starting with the Flutter Bi-Weekly!&nbsp;</p><p>So, with the small life update out of the way, grab your coffee, open a terminal, and let's <code>flutter run</code>! &#128736;&#65039;</p><div><hr></div><h1><strong>Blogs &#9997;&#65039;</strong></h1><h4><a href="https://blog.uekoetter.dev/2024/01/12/scaling-a-flutter-team.html">Scaling a Flutter team</a></h4><p><a href="https://twitter.com/ue_man">Jonas Uek&#246;tter</a>, a Flutter GDE and developer, talks about his experience growing a Flutter team from two to five engineers and a dozen developers in their domain to almost forty. In his post, he covers creating a UI library, adapting the company's design language to help with consistency, optimizing pull requests, application architecture, the nuances of remote work, and more.</p><p></p><h4><a href="https://medium.com/flutter-community/streamlining-image-asset-management-b57b7fcb5b9d">Streamlining Image Asset Management &#128105;&#127995;&#8205;&#127859;&#129668;</a></h4><p>We've all been there, you are working on an app, and suddenly, your designer passes you a Figma link filled with many custom images or icons for the app. Working with assets in Flutter can sometimes be tedious, especially if you're referencing the paths of each asset directly. In her latest blog post, <a href="https://medium.com/@akansha.jain1611?source=post_page-----b57b7fcb5b9d--------------------------------">Akansha Jain</a>&nbsp;explores different options that can be used to manage your project's assets, from helper classes to codegen &#9850;</p><p></p><h4><a href="https://lazebny.io/mastering-error-handling/">Mastering Error Handling in Dart</a></h4><p>In "Mastering Error Handling in Dart," <a href="https://www.linkedin.com/in/michael-lazebny/">Michael Lazebny</a> explains the difference in treating planned exceptions vs. application errors. In his post, you will learn how to make the most out of stack traces for debugging, setting up remote error capture, overriding FlutterError.onError and PlatformDispatcher.onError for comprehensive error tracking, and much more. </p><p></p><h4><a href="https://dartling.dev/passwordless-login-in-flutter-via-email-otp-with-supabase-auth">Passwordless login in Flutter via email OTP with Supabase Auth</a></h4><p><a href="https://twitter.com/yallurium">Christos</a> brings the dream of never having to type passwords ever again a little bit closer in his latest Flutter tutorial using Supabase's Auth SDK. In his tutorial, Christos explains everything, from working with the Supabase SDK to configuring Flutter's navigation system to handle and respond adequately to OTP codes and magic links. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">If you came across this newsletter online, please consider subscribing to receive future editions &#128516;</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p></p><p></p><h1>Videos &#127909;</h1><h4><strong><a href="https://www.youtube.com/watch?v=ZNVK917PCX4">How to Build a Node Based Editor with Flutter and Signals (Dart)</a></strong></h4><p>If you have been following the latest from the Web Dev world, chances are you have heard about the state management solution "Singals" before. It is a popular library for handling complex state problems efficiently and intuitively. In his latest YouTube video, <a href="https://twitter.com/rodydavis">Rody Davis</a> build a Node-based editor using Flutter and his new package, Flutter Signals, to demonstrate how it can be used in Flutter applications. </p><p></p><h4><a href="https://www.youtube.com/watch?v=QGqMJzywasg">Intro to Dart Series</a> by Net Ninja</h4><p>Net Ninja has started a new YouTube series on learning the basics of the Dart programming language on their channel. While the basics may not be something we are all actively seeking out, I still wanted to include this one as it is an excellent resource for any peers or friends who might be just starting their Flutter/Dart journey. </p><p></p><h4><a href="https://x.com/SuprDeclarative/status/1744898974388240797?s=20">[Twitter Spaces] Let&#8217;s talk about all the products built with Flutter!</a></h4><p><a href="https://twitter.com/SuprDeclarative">Matt Carroll</a>&nbsp;hosted a two-hour Twitter Spaces (are we still calling it that?!) session covering different products built with Flutter and examples from the community. Although this one is not a YouTube video, it is still worth a listen with your morning coffee. &#9749;&#65039;</p><p></p><h4><strong><a href="https://www.youtube.com/watch?v=giV9AbM2gd8">DropdownMenu - Widget of the Week</a></strong></h4><p>Have a list of items you need your users to quickly select an option from? DropdownMenu has your back. Learn how you can add this widget to your UI in Flutter&#8217;s latest Widget of the Week episode &#128203;.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-11?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Enjoying the post so far? Consider sharing it with a friend :)</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-11?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-11?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div><hr></div><h1><strong>Noteworthy Community Moments &#128171;</strong></h1><h4><a href="https://medium.com/serverpod/serverpod-1-2-cyberpunk-a-leap-forward-for-dart-on-the-backend-70e6657b0ffa">Serverpod 1.2 release! &#128640;</a></h4><p>Serverpod is the missing Dart backend for your Flutter apps. Started by former Googler&nbsp;<a href="https://twitter.com/viktorlidholt">Viktor Lidholt</a>, Serverpod allows developers to write robust and scalable backends entirely in Dart. With their latest release, the team shipped over 70 new features, including powerful Database tools, a supercharged CLI, and an extension for VSCode. Check out the linked release notes to learn more!&nbsp;</p><p></p><h4><a href="https://x.com/RevenueCat/status/1746997117418193047?s=20">RevenueCat&#8217;s new Flutter SDK! &#128176;</a></h4><p>RevenueCat helps developers make money by providing them with rich tools to implement, analyze, and grow in-app subscriptions. With the addition of Paywalls to their Flutter package, developers quickly present users with rich, customizable in-app offers with just a few lines of code. Check out their documentation to&nbsp;<a href="https://www.revenuecat.com/docs/displaying-paywalls#how-to-display-a-fullscreen-paywall-in-your-app-3">learn more</a>.</p><p></p><h4><a href="https://pub.dev/packages/supabase_auth_ui">Supabase Auth UI Release &#128272;</a></h4><p>Supabase released their new Auth UI package for Flutter! Using the Supabase Auth UI package, developers can quickly add bullet-proof authentication to their Flutter apps with just a few widgets -- all backed by Supabase's auth infra and providers.  </p><p></p><h4><a href="https://flutter.dev/global-gamers">#GlobalGamers 8 week challenge </a></h4><p>If you like defending the planet, building games, and writing Flutter code, this challenge is for you! Hosted by the Flutter team and Global Citizen, this 8-week challenge encourages developers to unleash their creativity by building sustainable games using Flutter's Casual Gaming toolkit. Check out the release page to learn more and get started! </p><div><hr></div><h1><strong>Tweet of the Week &#129351;</strong></h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xhio!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf6df7ad-e827-47ba-bd98-3d043b013ce7_599x626.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xhio!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf6df7ad-e827-47ba-bd98-3d043b013ce7_599x626.png 424w, https://substackcdn.com/image/fetch/$s_!xhio!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf6df7ad-e827-47ba-bd98-3d043b013ce7_599x626.png 848w, https://substackcdn.com/image/fetch/$s_!xhio!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf6df7ad-e827-47ba-bd98-3d043b013ce7_599x626.png 1272w, https://substackcdn.com/image/fetch/$s_!xhio!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf6df7ad-e827-47ba-bd98-3d043b013ce7_599x626.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xhio!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf6df7ad-e827-47ba-bd98-3d043b013ce7_599x626.png" width="599" height="626" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df6df7ad-e827-47ba-bd98-3d043b013ce7_599x626.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:626,&quot;width&quot;:599,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:246347,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xhio!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf6df7ad-e827-47ba-bd98-3d043b013ce7_599x626.png 424w, https://substackcdn.com/image/fetch/$s_!xhio!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf6df7ad-e827-47ba-bd98-3d043b013ce7_599x626.png 848w, https://substackcdn.com/image/fetch/$s_!xhio!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf6df7ad-e827-47ba-bd98-3d043b013ce7_599x626.png 1272w, https://substackcdn.com/image/fetch/$s_!xhio!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf6df7ad-e827-47ba-bd98-3d043b013ce7_599x626.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p></p><div><hr></div><h1>That's all folks &#128075;</h1><p>Thank you for reading today&#8217;s issue of the&nbsp;<a href="https://newsletter.neevash.dev/">Flutter Bi-Weekly</a>! Here&#8217;s to 25 more posts before the year is over &#129761;</p><p></p><p>If you have a project, blog post or project you would like to share with the community in the next release, please feel free to send me message on <a href="https://twitter.com/nash0x7e2">Twitter/X</a> or drop me an <a href="mailto:mail@neevash.dev">email</a> &#128231;</p><p></p><p>&#8211;&nbsp;<a href="https://www.threads.net/@nash0x7e2">Nash</a>&nbsp;</p>]]></content:encoded></item><item><title><![CDATA[The Flutter Bi-Weekly - Issue #10]]></title><description><![CDATA[New SDKs, fun community releases and more!]]></description><link>https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-10-</link><guid isPermaLink="false">https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-10-</guid><dc:creator><![CDATA[Neevash Ramdial (Nash)]]></dc:creator><pubDate>Mon, 08 Aug 2022 07:00:39 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ruEB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ruEB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ruEB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 424w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 848w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1272w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ruEB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png" width="440" height="220" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/eee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:506,&quot;width&quot;:1012,&quot;resizeWidth&quot;:440,&quot;bytes&quot;:22703,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:&quot;&quot;,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ruEB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 424w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 848w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1272w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Welcome to issue #10 of the Flutter Bi-Weekly!&nbsp;</p><p>Since our last issue, I had the unfortunate pleasure of accidentally deleting one of my most successful Flutter projects &#128517;&#129394;.</p><p>Last Sunday, while attempting to update&nbsp;<a href="https://marketplace.visualstudio.com/items?itemName=Nash.awesome-flutter-snippets">Awesome Flutter Snippets</a>&nbsp;with Flutter 3 support, I ran into a tooling bug around the personal access token for the VSCode Marketplace.&nbsp;</p><p>After spending some time debugging, I noticed something strange, the publishing tool had two accounts listed on my machine, "Nash" and "nash".&nbsp;</p><p>This was odd since I only have one account for VSCode, and the plugin was published under "Nash". Making no progress on the PAT issue, I removed the lower-case "nash" to see if it would make any difference in allowing me to publish...oh how I was wrong &#128584;.&nbsp;</p><p>In a strange turn of events, deleting "nash" wiped my account along with the existing plugin and organization...four years' worth of history and 950,000 downloads&nbsp;<em>gone</em>&nbsp;&#128556;.</p><p>After reaching out to Microsoft and exploring a few options, we could not restore the original account and plugin. Version four of&nbsp;<a href="https://marketplace.visualstudio.com/items?itemName=Nash.awesome-flutter-snippets">Awesome Flutter Snippets</a>&nbsp;is now up on the VSCode Marketplace but under a newly created organization.&nbsp;</p><p>That's my fun story of the week &#128517;. Thank you to everyone who reached out during this time; if you are a VSCode user with the extension installed, you will need to re-download it using the link above to receive future updates. Don't forget to leave a rating when you do since those also disappeared &#9760;&#65039;</p><p></p><div><hr></div><h1><strong>Blogs &#9997;&#65039;</strong></h1><h4><strong><a href="https://itnext.io/flutter-blocs-at-scale-2-keeping-blocs-lean-1b659536e3ec">Flutter: BLOCs at Scale | 2 &#8212; Keeping BLOCs Lean</a></strong></h4><p>In a follow-up to his first blog post, Nick is back with a follow-up focused on the first two concepts in cleaning up and scaling your BLOC code &#128526;</p><p></p><h4><strong><a href="https://roszkowski.dev/2022/what-grinds-my-gears-in-flutter/">What really grinds my gears in Flutter</a></strong></h4><p>No framework is perfect, and Flutter is no different. In a follow up to his post from the last issue, Dominik outlines the areas he thinks Flutter can improve to reach the next level.&nbsp;</p><p></p><h4><a href="https://getstream.io/blog/flutter-feeds-video-collaboration-platform/">Building a Video Collaboration Platform With Flutter and Feeds</a></h4><p>Do you ever wonder what goes into building collaboration tools like Frame.io, Wipster, or Vimeo? My colleague, <a href="https://twitter.com/sachaarbonel">Sacha</a>, walks us through the process of building a simple real-time collaboration platform using Flutter and <a href="https://getstream.io/activity-feeds/sdk/flutter/tutorial/">Feeds</a>.</p><p></p><h4><a href="https://supabase.com/blog/2022/08/02/supabase-flutter-sdk-1-developer-preview?utm_source=reddit&amp;utm_medium=social&amp;utm_campaign=blog-content">Supabase Flutter SDK 1.0 Developer Preview</a></h4><p>Supabase has been growing rapidly in the developer community, and the team is slowly adding support for new languages and frameworks. Earlier this week, they shipped v1.0 of their SDK for Flutter! </p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">If you came across this newsletter online, please consider subscribing to receive future editions &#128516;</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p></p><p></p><h1>Videos &#127909;</h1><h4><strong><a href="https://www.youtube.com/watch?v=cpEYw8HuoxI">Realtime Applications with Sockets - Introduction in Sockets with Dart</a></strong></h4><p>Sockets allow your applications to send and receive data in real-time, making them perfect for interactive applications like GPS trackers or messaging platforms. </p><p>In their latest video, <a href="https://twitter.com/flutter_exp">Flutter Explained</a>, covers how you can build a simple Websocket server and client entirely in Dart.</p><p></p><h4><strong><a href="https://www.youtube.com/watch?v=WEE5lc6Ypfk">Build a Worlde Clone App in Flutter</a></strong></h4><p>Are you still obsessed with Wordle? &#129299;</p><p><a href="https://twitter.com/DoctorCode2">Doctor Code</a> shows us the steps to build a clone of the popular word game in Flutter! </p><p></p><h4><strong><a href="https://www.youtube.com/watch?v=gYNTcgZVcWw">LinearGradient (Widget of the Week)</a></strong></h4><p>Need to make your apps pop even more?! </p><p>LinearGradient is here to help &#128526;. While it's not technically a widget, <a href="https://api.flutter.dev/flutter/painting/LinearGradient/LinearGradient.html">LinearGradients</a> can be used by any widget that takes a <a href="https://api.flutter.dev/flutter/painting/BoxDecoration/BoxDecoration.html">BoxDecoration</a>. </p><p>Learn more in the latest Widget of the Week!</p><p></p><h4><strong><a href="https://www.youtube.com/watch?v=Dt_taxX98sg&amp;list=PLNBhvhkAJG6sH7dkmwt4BiCclFkMoXq4r&amp;index=4">Build a Flutter Chat App: 04 - Migrate Version 4 &amp; Stream Firebase Extensions</a></strong></h4><p>Have you been following along with <a href="https://twitter.com/gordonphayes">Gordon Hayes</a> Flutter chat series?</p><p>In the latest installment, Gordon goes through the existing project and beings cleaning up the code by migrating the package extensions and simplifying the authentication workflow of his application with Firebase Extensions. </p><p>Check out the playlist above to follow along! </p><p></p><h4></h4><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-10-?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Enjoying the post so far? Consider sharing it with a friend :)</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-10-?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-10-?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div><hr></div><h1><strong>Noteworthy Community Moments &#128171;</strong></h1><h4><a href="https://github.com/simonbengtsson/airdash">AirDash</a> </h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H88g!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2403720a-4723-46a0-8664-d500d60d23b3_1426x852.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H88g!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2403720a-4723-46a0-8664-d500d60d23b3_1426x852.png 424w, https://substackcdn.com/image/fetch/$s_!H88g!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2403720a-4723-46a0-8664-d500d60d23b3_1426x852.png 848w, https://substackcdn.com/image/fetch/$s_!H88g!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2403720a-4723-46a0-8664-d500d60d23b3_1426x852.png 1272w, https://substackcdn.com/image/fetch/$s_!H88g!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2403720a-4723-46a0-8664-d500d60d23b3_1426x852.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H88g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2403720a-4723-46a0-8664-d500d60d23b3_1426x852.png" width="1426" height="852" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/2403720a-4723-46a0-8664-d500d60d23b3_1426x852.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:852,&quot;width&quot;:1426,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:99261,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!H88g!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2403720a-4723-46a0-8664-d500d60d23b3_1426x852.png 424w, https://substackcdn.com/image/fetch/$s_!H88g!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2403720a-4723-46a0-8664-d500d60d23b3_1426x852.png 848w, https://substackcdn.com/image/fetch/$s_!H88g!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2403720a-4723-46a0-8664-d500d60d23b3_1426x852.png 1272w, https://substackcdn.com/image/fetch/$s_!H88g!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F2403720a-4723-46a0-8664-d500d60d23b3_1426x852.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>AirDash is a new Flutter package from <a href="https://twitter.com/simongbengtsson">Simon Bengstsson</a> that allows users to send files directly between devices without requiring an intermediate server. </p><p>The code is open-source and available on Github for developers to try out &#129299;</p><p></p><h4><a href="https://github.com/AppFlowy-IO/appflowy">AppFlowy</a></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0ZUh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2f8174-e73b-4da3-8ad7-f069c3b82bcc_5428x2864.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0ZUh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2f8174-e73b-4da3-8ad7-f069c3b82bcc_5428x2864.png 424w, https://substackcdn.com/image/fetch/$s_!0ZUh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2f8174-e73b-4da3-8ad7-f069c3b82bcc_5428x2864.png 848w, https://substackcdn.com/image/fetch/$s_!0ZUh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2f8174-e73b-4da3-8ad7-f069c3b82bcc_5428x2864.png 1272w, https://substackcdn.com/image/fetch/$s_!0ZUh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2f8174-e73b-4da3-8ad7-f069c3b82bcc_5428x2864.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0ZUh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2f8174-e73b-4da3-8ad7-f069c3b82bcc_5428x2864.png" width="1456" height="768" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3c2f8174-e73b-4da3-8ad7-f069c3b82bcc_5428x2864.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:543983,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0ZUh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2f8174-e73b-4da3-8ad7-f069c3b82bcc_5428x2864.png 424w, https://substackcdn.com/image/fetch/$s_!0ZUh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2f8174-e73b-4da3-8ad7-f069c3b82bcc_5428x2864.png 848w, https://substackcdn.com/image/fetch/$s_!0ZUh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2f8174-e73b-4da3-8ad7-f069c3b82bcc_5428x2864.png 1272w, https://substackcdn.com/image/fetch/$s_!0ZUh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3c2f8174-e73b-4da3-8ad7-f069c3b82bcc_5428x2864.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://twitter.com/appflowy">AppFlowy</a> is an open-source alternative to Notion, which puts users in charge of their data and customizations. </p><p>The project is built using Flutter and Rust and available on Github with comprehensive installation instructions for all supported platforms.</p><p></p><h4><a href="https://twitter.com/mkobuolys/status/1555226934694518786?s=20&amp;t=IKDGEIs0SX7JKOg_P2N5Ew">Flutter dArtists #24 - AMA?</a> </h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!mLy3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4548b6b-70c2-46c7-926a-b497a22c2fff_984x972.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!mLy3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4548b6b-70c2-46c7-926a-b497a22c2fff_984x972.png 424w, https://substackcdn.com/image/fetch/$s_!mLy3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4548b6b-70c2-46c7-926a-b497a22c2fff_984x972.png 848w, https://substackcdn.com/image/fetch/$s_!mLy3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4548b6b-70c2-46c7-926a-b497a22c2fff_984x972.png 1272w, https://substackcdn.com/image/fetch/$s_!mLy3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4548b6b-70c2-46c7-926a-b497a22c2fff_984x972.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!mLy3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4548b6b-70c2-46c7-926a-b497a22c2fff_984x972.png" width="614" height="606.5121951219512" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/e4548b6b-70c2-46c7-926a-b497a22c2fff_984x972.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:972,&quot;width&quot;:984,&quot;resizeWidth&quot;:614,&quot;bytes&quot;:661951,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!mLy3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4548b6b-70c2-46c7-926a-b497a22c2fff_984x972.png 424w, https://substackcdn.com/image/fetch/$s_!mLy3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4548b6b-70c2-46c7-926a-b497a22c2fff_984x972.png 848w, https://substackcdn.com/image/fetch/$s_!mLy3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4548b6b-70c2-46c7-926a-b497a22c2fff_984x972.png 1272w, https://substackcdn.com/image/fetch/$s_!mLy3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4548b6b-70c2-46c7-926a-b497a22c2fff_984x972.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>After a mini-hiatus,&nbsp;<a href="https://twitter.com/mkobuolys">Mangirdas Kazlauskas</a>&nbsp;and&nbsp;<a href="https://twitter.com/danlampl">Danny</a>&nbsp;are back with episode #24, Flutter dArtists on Twitter!&nbsp;</p><p>In their latest episode, the pair did an open AMA with listeners from the Flutter community covering various exciting topics.&nbsp;</p><p>Take a listen and follow them both to be notified about the next Space.&nbsp;</p><p></p><h4><a href="https://github.com/felangel/bloc/issues/3470">deprecate: BlocOverrides API</a></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Al5W!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaed0388-a8d9-4834-9ff9-9026c4b3814a_1840x1272.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Al5W!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaed0388-a8d9-4834-9ff9-9026c4b3814a_1840x1272.png 424w, https://substackcdn.com/image/fetch/$s_!Al5W!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaed0388-a8d9-4834-9ff9-9026c4b3814a_1840x1272.png 848w, https://substackcdn.com/image/fetch/$s_!Al5W!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaed0388-a8d9-4834-9ff9-9026c4b3814a_1840x1272.png 1272w, https://substackcdn.com/image/fetch/$s_!Al5W!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaed0388-a8d9-4834-9ff9-9026c4b3814a_1840x1272.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Al5W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaed0388-a8d9-4834-9ff9-9026c4b3814a_1840x1272.png" width="1456" height="1007" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/daed0388-a8d9-4834-9ff9-9026c4b3814a_1840x1272.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1007,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:325254,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Al5W!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaed0388-a8d9-4834-9ff9-9026c4b3814a_1840x1272.png 424w, https://substackcdn.com/image/fetch/$s_!Al5W!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaed0388-a8d9-4834-9ff9-9026c4b3814a_1840x1272.png 848w, https://substackcdn.com/image/fetch/$s_!Al5W!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaed0388-a8d9-4834-9ff9-9026c4b3814a_1840x1272.png 1272w, https://substackcdn.com/image/fetch/$s_!Al5W!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fdaed0388-a8d9-4834-9ff9-9026c4b3814a_1840x1272.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>For those using <a href="https://pub.dev/packages/flutter_bloc">flutter_bloc</a>/<a href="https://pub.dev/packages/bloc">bloc</a> in their projects, <a href="https://twitter.com/felangelov/">Felix</a> and the team opted to deprecate the zone-based BlocOverrides API introduced in version 8 and revert to the version 7 API. </p><p>Check out the Github Issue linked above to learn more and view the migration steps. </p><p></p><h4><strong><a href="https://www.linkedin.com/learning/flutter-essential-training-build-for-multiple-platforms?original_referer=https%3A%2F%2Fnewsletter.neevash.dev%2F">Flutter Essential Training: Build for Multiple Platforms - LinkedIn Learning</a></strong></h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!kd-L!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3d33bc28-a06f-4e23-8c46-d9e522491f09_1616x1326.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!kd-L!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3d33bc28-a06f-4e23-8c46-d9e522491f09_1616x1326.png 424w, https://substackcdn.com/image/fetch/$s_!kd-L!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3d33bc28-a06f-4e23-8c46-d9e522491f09_1616x1326.png 848w, https://substackcdn.com/image/fetch/$s_!kd-L!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3d33bc28-a06f-4e23-8c46-d9e522491f09_1616x1326.png 1272w, https://substackcdn.com/image/fetch/$s_!kd-L!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3d33bc28-a06f-4e23-8c46-d9e522491f09_1616x1326.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!kd-L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3d33bc28-a06f-4e23-8c46-d9e522491f09_1616x1326.png" width="1456" height="1195" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/3d33bc28-a06f-4e23-8c46-d9e522491f09_1616x1326.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1195,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:460702,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!kd-L!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3d33bc28-a06f-4e23-8c46-d9e522491f09_1616x1326.png 424w, https://substackcdn.com/image/fetch/$s_!kd-L!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3d33bc28-a06f-4e23-8c46-d9e522491f09_1616x1326.png 848w, https://substackcdn.com/image/fetch/$s_!kd-L!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3d33bc28-a06f-4e23-8c46-d9e522491f09_1616x1326.png 1272w, https://substackcdn.com/image/fetch/$s_!kd-L!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F3d33bc28-a06f-4e23-8c46-d9e522491f09_1616x1326.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><a href="https://twitter.com/pooja_bhaumik">Pooja Bhaumik</a>&nbsp;released her first Flutter course on LinkedIn learning! &#129395;</p><p>"Flutter Essential Training: Build for Multiple Platforms" is the culmination of 8+ months of discussions, scripting, recording &amp; post-processing aimed at helping developers learn the core of Flutter and Dart.&nbsp;</p><div><hr></div><h1><strong>Tweet of the Week &#129351;</strong></h1><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/k_sokolovskyi/status/1555206348324872192?s=20&amp;t=IKDGEIs0SX7JKOg_P2N5Ew&quot;,&quot;full_text&quot;:&quot;Here's PlayStation games list concept with parallax effect made with <span class=\&quot;tweet-fake-link\&quot;>#Flutter</span> <span class=\&quot;tweet-fake-link\&quot;>@FlutterDev</span> \n\nInspired by: <a class=\&quot;tweet-url\&quot; href=\&quot;https://dribbble.com/shots/10788807--4-the-Players-interaction-concept\&quot;>dribbble.com/shots/10788807&#8230;</a> &quot;,&quot;username&quot;:&quot;k_sokolovskyi&quot;,&quot;name&quot;:&quot;Konstantin Sokolovskyi &#128155;&#128153;&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Thu Aug 04 14:57:42 +0000 2022&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://substackcdn.com/image/upload/w_728,c_limit/l_twitter_play_button_rvaygk,w_120/qcp332c9vmeklwuuu77c&quot;,&quot;link_url&quot;:&quot;https://t.co/lpFTQjU5Fj&quot;,&quot;alt_text&quot;:null}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:74,&quot;like_count&quot;:584,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:&quot;https://video.twimg.com/ext_tw_video/1555206264610848768/pu/vid/480x852/5sX41x6eYcuiCIr5.mp4?tag=12&quot;,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p></p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/biz84/status/1555598020644933633?s=20&amp;t=IKDGEIs0SX7JKOg_P2N5Ew&quot;,&quot;full_text&quot;:&quot;Riverpod offers 6 different kinds of providers, all suited for different use cases.\n\nKnowing when to use each one of them can save you a lot of time and simplify your code. &#128077;\n\nSo let's take a look at them and learn when they are most useful.\n\nThread. &#129525; &quot;,&quot;username&quot;:&quot;biz84&quot;,&quot;name&quot;:&quot;Andrea Bizzotto &#128153;&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Fri Aug 05 16:54:04 +0000 2022&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://pbs.substack.com/media/FZaYI1UXoAEMj3a.png&quot;,&quot;link_url&quot;:&quot;https://t.co/MqNdC0ljEo&quot;,&quot;alt_text&quot;:null}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:129,&quot;like_count&quot;:436,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/roaakdm/status/1553339083707105282?s=20&amp;t=IKDGEIs0SX7JKOg_P2N5Ew&quot;,&quot;full_text&quot;:&quot;Infinite scrolling with Riverpod - A &#129525;\n\nCheck out how unbelievably easy it is to add infinite-scrolling to your <span class=\&quot;tweet-fake-link\&quot;>#Flutter</span> app using Riverpod! &#128561;\n\nRead on for a preview and the source code &#128071;&#127996;\n\n1&#65039;&#8419; The providers you need:\n\n1/6 &quot;,&quot;username&quot;:&quot;roaakdm&quot;,&quot;name&quot;:&quot;Roaa &#129412;&#128153;&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Sat Jul 30 11:17:51 +0000 2022&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://pbs.substack.com/media/FY6JBaOXEAAS6Uj.jpg&quot;,&quot;link_url&quot;:&quot;https://t.co/DzplCV8uZ5&quot;,&quot;alt_text&quot;:null}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:57,&quot;like_count&quot;:319,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p></p><div><hr></div><h1>That's all folks &#128075;</h1><p>Thank you for reading today&#8217;s issue of the&nbsp;<a href="https://newsletter.neevash.dev/">Flutter Bi-Weekly</a>!</p><p></p><p>I will try not to accidentally delete more projects between now and our next issue &#128517;.</p><p>&#8211;&nbsp;<a href="https://neevash.dev/?utm_campaign=The%20Flutter%20Bi-Weekly&amp;utm_medium=email&amp;utm_source=Revue%20newsletter">Nash</a>&nbsp;</p>]]></content:encoded></item><item><title><![CDATA[The Flutter Bi-Weekly - Issue #9]]></title><description><![CDATA[One day we'll get back to consistent posts on a Sunday night, but until then, here is the final Bi-Weekly Flutter update for July &#128515;.]]></description><link>https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-9</link><guid isPermaLink="false">https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-9</guid><dc:creator><![CDATA[Neevash Ramdial (Nash)]]></dc:creator><pubDate>Wed, 27 Jul 2022 02:31:09 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!ruEB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ruEB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ruEB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 424w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 848w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1272w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ruEB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png" width="440" height="220" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/eee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:506,&quot;width&quot;:1012,&quot;resizeWidth&quot;:440,&quot;bytes&quot;:22703,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ruEB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 424w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 848w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1272w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Hello Internet &#128075;,</p><p>Welcome to the Flutter Bi-Weekly! As we close July, we are only a few weeks away from&nbsp;<a href="https://fluttervikings.com/">Flutter Vikings</a>&nbsp;&#129395;.</p><p>Over the last two weeks, lots have happened in the Flutter community and the wider tech community in general.&nbsp;</p><p>Notably,&nbsp;<a href="https://twitter.com/NotionHQ/status/1549787378633412614?s=20&amp;t=_kLyheQ2on9MXQpsUaV2gw">Notion</a>&nbsp;released an update to announce performance improvements to their application but somehow managed to spark a deep (and fierce) philosophical debate around building Native vs. Cross-Platform vs. Hybrid. However, most people forget that the last category exists &#128584;.&nbsp;</p><div><hr></div><h1><strong>Blogs &#9997;&#65039;</strong></h1><h4><strong><a href="https://invertase.io/blog/announcing-zapp-rapid-flutter-dart-development-environment-in-browser">Announcing Zapp, an in browser sandbox environment to build Flutter apps</a></strong></h4><p>Ready to build and share apps in your browser? Intertase released their new online platform for writing and sharing Flutter apps. Unlike existing tools such as Dartpad, Zapp allows users to install packages directly in the browser to use with their apps. </p><p>Check out the link above to learn more and share your creations &#128525;</p><p></p><p></p><h4><a href="https://roszkowski.dev/2022/things-i-love-about-flutter/">N things I love about Flutter</a></h4><p>As Flutter aficionados, we all have the parts of the framework we cannot live without.&nbsp;<a href="https://twitter.com/OrestesGaolin">Dominik</a>&nbsp;compiled a list of the best things he loves about Flutter into a short blog post &#128153;.</p><p><strong>Fun Fact:</strong>&nbsp;Dominik and I are former colleagues, having worked together during the early days of the framework. Crazy how time flies these days.&nbsp;</p><p></p><h4><a href="https://getstream.io/blog/definitive-flutter-painting-guide/">Definitive Flutter Painting Guide</a></h4><p>There are two things we know for sure in life, everything is a widget, and if&nbsp;<a href="https://twitter.com/DevenJoshi7">Deven</a>&nbsp;releases a blog post, chances are you're going to be in for a treat!&nbsp;</p><p>In his latest post, Deven covers everything you need to know about custom painting and more. The piece is worth a read if you're interested in taking your painting skills to the next level or are curious about different aspects of rendering, such as working with shaders.&nbsp;</p><p></p><h4><strong><a href="https://invertase.io/blog/flutterfire-mfa-tutorial">Multi-Factor Authentication with Flutter and Firebase</a></strong></h4><p>Multi-factor authentication is a feature that allows the user to add an extra layer of security by opting to receive an email or SMS when logging into their account.&nbsp;</p><p>As a developer building with Flutter and Firebase, you can now enable multi-factor auth in your apps, thanks to the latest updates in FlutterFire. Check out&nbsp;<a href="https://twitter.com/BeGuillaume">Guillaume Bernos'</a>&nbsp;blog post to get started!&nbsp;</p><p></p><h4><strong><a href="https://medium.com/@iofod/css-filter-for-flutter-apply-filters-in-flutter-as-you-use-css-4bce68ff8acd">CSS Filter for Flutter: Apply filters in Flutter as you use CSS</a></strong></h4><p>Do you yearn to have CSS filters in your Flutter apps? A way to easily change the contrast, shadow, or other similar properties in your application?</p><p>Good news!! You can now do these things with a fun new package called CSSFilter! Learn how you can get started in the post linked above &#128175;</p><p></p><h4><strong><a href="https://medium.com/flutter-community/why-dividing-by-0-does-not-throw-an-error-in-dart-how-dart-handles-numbers-a17ac8e5630c">Why dividing(/) by 0 does not throw an error in Dart &#8212; How Dart handles numbers</a></strong></h4><p>We've all been there. It's 9 pm on a Friday, you're in the hacker den coding away on the most fantastic side project, but then it happens...you accidentally divide by 0 &#128561;</p><p>Unlike other languages, diving by 0 in Dart does not result in an error.&nbsp;<a href="https://twitter.com/_yogi_6">Yogesh Parwani</a>&nbsp;wrote a short explainer on Dart's number system to give you the full breakdown.&nbsp;</p><h4></h4><h4><strong><a href="https://medium.flutterdevs.com/explore-flutter-bloc-8-0-1-design-pattern-in-flutter-4652b9e9902a">Explore Flutter Bloc 8.0.1 Design Pattern In Flutter</a></strong></h4><p>If you're considering flutter_bloc for your next application, this post is for you!</p><p><a href="https://medium.com/@shaiq_khan?source=user_profile-------------------------------------">Shaiq khan</a>&nbsp;explains everything you need to know about building an app using flutter_bloc 8.0.1!&nbsp;</p><p></p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">If you came across this newsletter online, please consider subscribing to receive future editions &#128516;</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p></p><h1>Videos &#127909;</h1><h4><strong><a href="https://www.youtube.com/watch?v=xzq6rf0jd9M&amp;ab_channel=1ManStartup">Build A Flutter Game: Connect Four</a></strong></h4><p>Gamers Unite! <a href="https://twitter.com/davefaliskie">Dave</a> of 1ManStartup has created a great video on building a Flutter version of Connect Four using Flutter's Casual Game Toolkit. </p><p>His video is definitely worth a watch if you're interested in building games with Flutter &#128526;</p><p></p><h4><strong><a href="https://www.youtube.com/watch?v=NMCbNEXdXYI&amp;ab_channel=doctorcode">Display Charts using Flutter</a></strong></h4><p>Doctor Code (lovely name! &#128516;) has put together a speed code video building a Bitcoin tracker in Flutter, complete with a chart integration. </p><p>If you're a fan of beautiful UIs and chill music, then you'll enjoy this video.</p><p></p><h4><strong><a href="https://www.youtube.com/watch?v=Dw6xGvzcF14&amp;ab_channel=JediPixels">Flutter's Way State Management - No Packages</a></strong></h4><p>Regardless of how you're managing state, one thing is guaranteed; an InheritedWidget is used somewhere along the way under the hood.&nbsp;</p><p>To help demystify some of the misconceptions and usage around InheritedWidgets,&nbsp;<a href="https://www.youtube.com/c/JediPixels">JediPixels</a>&nbsp;created a short 30-minute video reviewing the API and building a simple use case. It's a great breakdown of a topic many view as complex -- especially when just starting.&nbsp;</p><p></p><h4><strong><a href="https://www.youtube.com/watch?v=JkrC5S4MPgo&amp;ab_channel=OfflineProgrammer">How to create multiple shadows for a Text Widget in Flutter</a></strong></h4><p>Need to add some shadow and colors to your text to stand out?&nbsp;<a href="https://twitter.com/_Mo_Malaka_">Mo Malaka</a>&nbsp;created a quick tutorial showing you how to implement just that!&nbsp;</p><p></p><h4><strong><a href="https://www.youtube.com/watch?v=UfeahkVLJlE&amp;ab_channel=DeclarativeCast">Creating a Flutter project with Authentication and Realtime db by mason_cli</a></strong></h4><p>So you want to build a Flutter app but are unsure where to start? <a href="https://twitter.com/salihgueler">Salih</a> of the AWS Amplify team has you covered! </p><p>Check out his video to learn how you can go from a new project to database integration in just a few lines of code using <a href="https://pub.dev/packages/mason_cli">mason_cli</a> and Amplify's Flutter SDK &#128526;</p><p></p><p></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-9?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Enjoying the post so far? Consider sharing it with a friend :)</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-9?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.neevash.dev/p/the-flutter-bi-weekly-issue-9?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p><div><hr></div><h1><strong>Noteworthy Community Moments &#128171;</strong></h1><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/mhadaily/status/1547230068895883267?s=20&amp;t=T_GrfDyGyvnVkddtHfRLtQ&quot;,&quot;full_text&quot;:&quot;In continuous of Dart on Server series for my Twitter space supported by <span class=\&quot;tweet-fake-link\&quot;>@invertaseio</span>, \n\nI have teamed up with <span class=\&quot;tweet-fake-link\&quot;>@VGVentures</span> team to talk about Dart_Frog &#127919;&#128056;. \n\n<span class=\&quot;tweet-fake-link\&quot;>@felangelov</span> will join to answer your questions. Let me know if you have any! \n\nhttps://t.co/xHiEzos5pf&quot;,&quot;username&quot;:&quot;mhadaily&quot;,&quot;name&quot;:&quot;Majid Hajian &#128153;&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Wed Jul 13 14:42:49 +0000 2022&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:18,&quot;like_count&quot;:69,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p></p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/getstream_io/status/1549303886309212160?s=20&amp;t=T_GrfDyGyvnVkddtHfRLtQ&quot;,&quot;full_text&quot;:&quot;The Stream&nbsp;Flutter&nbsp;team &#128153; is hosting a Twitter space where we&#8217;ll discuss building adaptive apps for Flutter and the challenges we faced bringing Web and Desktop support to our chat SDK.\n\nIt&#8217;ll be an open discussion. Set a reminder and join in &#128515;\n\nhttps://t.co/A45g7dapYB&quot;,&quot;username&quot;:&quot;getstream_io&quot;,&quot;name&quot;:&quot;Stream&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Tue Jul 19 08:03:25 +0000 2022&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:8,&quot;like_count&quot;:17,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p></p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/fluttermapp/status/1548070313937608705?s=20&amp;t=T_GrfDyGyvnVkddtHfRLtQ&quot;,&quot;full_text&quot;:&quot;Best <span class=\&quot;tweet-fake-link\&quot;>#flutter</span> Channels\n\nHere is the link of every YouTube channel:\n<a class=\&quot;tweet-url\&quot; href=\&quot;https://www.youtube.com/c/FlutterMapp/channels\&quot;>youtube.com/c/FlutterMapp/&#8230;</a>\nHave fun learning &#128218;&#127871; &quot;,&quot;username&quot;:&quot;fluttermapp&quot;,&quot;name&quot;:&quot;Flutter Mapp&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Fri Jul 15 22:21:39 +0000 2022&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://pbs.substack.com/media/FXvZXWjVUAI5e8s.png&quot;,&quot;link_url&quot;:&quot;https://t.co/nYByvyoDEF&quot;,&quot;alt_text&quot;:null}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:89,&quot;like_count&quot;:430,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><div><hr></div><h1><strong>Tweet of the Week &#129351;</strong></h1><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/drcoderz/status/1546858936485269504?s=20&amp;t=T_GrfDyGyvnVkddtHfRLtQ&quot;,&quot;full_text&quot;:&quot;Just built this <span class=\&quot;tweet-fake-link\&quot;><span class=\&quot;tweet-fake-link\&quot;>#Flutter</span></span> <span class=\&quot;tweet-fake-link\&quot;>#Web</span> app for my son who loves steam engines (we&#8217;re getting a kick out of building them!). From now on, I'll make more #Flutter apps that make people happy and bring them together &#128153;<span class=\&quot;tweet-fake-link\&quot;>@FlutterDev</span> <span class=\&quot;tweet-fake-link\&quot;>@GoogleDevExpert</span> &quot;,&quot;username&quot;:&quot;drcoderz&quot;,&quot;name&quot;:&quot;Roman Jaquez&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Tue Jul 12 14:08:04 +0000 2022&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://substackcdn.com/image/upload/w_728,c_limit/l_twitter_play_button_rvaygk,w_120/pnb1brrmpeprvhskzi3x&quot;,&quot;link_url&quot;:&quot;https://t.co/Kn8EFyFKZv&quot;,&quot;alt_text&quot;:null}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:44,&quot;like_count&quot;:360,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:&quot;https://video.twimg.com/ext_tw_video/1546858708210180096/pu/vid/640x360/ul7sCms0tHt_BrdR.mp4?tag=12&quot;,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/RydMike/status/1549383035920973827?s=20&amp;t=T_GrfDyGyvnVkddtHfRLtQ&quot;,&quot;full_text&quot;:&quot;Is <span class=\&quot;tweet-fake-link\&quot;>#Flutter</span> <span class=\&quot;tweet-fake-link\&quot;>@materialdesign</span> theming chores making you &#128534;? Give the <span class=\&quot;tweet-fake-link\&quot;>#FlexColorScheme</span> package configurator <span class=\&quot;tweet-fake-link\&quot;>#ThemesPlayground</span> at <a class=\&quot;tweet-url\&quot; href=\&quot;https://rydmike.com/flexcolorscheme/themesplayground-v5/#/\&quot;>rydmike.com/flexcolorschem&#8230;</a> a spin and see what it can do for you! Made a theme setup you like? Copy paste the code to <span class=\&quot;tweet-fake-link\&quot;>#FlutterDev</span> and theme is done! &#128153;&#128526;  &quot;,&quot;username&quot;:&quot;RydMike&quot;,&quot;name&quot;:&quot;Mike Rydstrom &#128153;&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Tue Jul 19 13:17:56 +0000 2022&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://substackcdn.com/image/upload/w_728,c_limit/l_twitter_play_button_rvaygk,w_120/la10jm1y3ftmj3qidnyl&quot;,&quot;link_url&quot;:&quot;https://t.co/KSGKKb77gb&quot;,&quot;alt_text&quot;:null}],&quot;quoted_tweet&quot;:{&quot;full_text&quot;:&quot;Configure a #Flutter theme in the #FlexColorScheme Themes Playground, watch it write setup code as you poke around. When done, copy the code, paste it into your app to upgrade your theme to wizard level. Here we go from Material plain purple default, to rounded Sakura pink &#128512;&#128153; https://t.co/Y5PMmtrRkL&quot;,&quot;username&quot;:&quot;RydMike&quot;,&quot;name&quot;:&quot;Mike Rydstrom &#128153;&quot;},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:3,&quot;like_count&quot;:31,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:&quot;https://video.twimg.com/ext_tw_video/1549382204865880071/pu/vid/378x360/6UeYlXPoVLYw_TSJ.mp4?tag=12&quot;,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/Lulupointu_/status/1549763787871379456?s=20&amp;t=T_GrfDyGyvnVkddtHfRLtQ&quot;,&quot;full_text&quot;:&quot;Just created my first <span class=\&quot;tweet-fake-link\&quot;>#flutter</span> lint with <span class=\&quot;tweet-fake-link\&quot;>@invertaseio</span> custom_lint package &#128293;\n\nInsanely easy setup, checkout my article to learn how to do the actual implementation &#128104;&#8205;&#128187;: <a class=\&quot;tweet-url\&quot; href=\&quot;https://bit.ly/3cvLU8E\&quot;>bit.ly/3cvLU8E</a>\n\nThanks <span class=\&quot;tweet-fake-link\&quot;>@remi_rousselet</span> for the awesome tool &#128640;\n\n<span class=\&quot;tweet-fake-link\&quot;>#dart</span> <span class=\&quot;tweet-fake-link\&quot;>#lint</span> <span class=\&quot;tweet-fake-link\&quot;>@flutterdevs</span> &quot;,&quot;username&quot;:&quot;Lulupointu_&quot;,&quot;name&quot;:&quot;Lucas delsol&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Wed Jul 20 14:30:54 +0000 2022&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://substackcdn.com/image/upload/w_728,c_limit/l_twitter_play_button_rvaygk,w_120/fvglwfwpvorfm4sfvszp&quot;,&quot;link_url&quot;:&quot;https://t.co/Hz9kAhKuIT&quot;,&quot;alt_text&quot;:null}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:18,&quot;like_count&quot;:112,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:&quot;https://video.twimg.com/ext_tw_video/1549763544471805954/pu/vid/924x360/A1eSlAnNtpKa5KE-.mp4?tag=12&quot;,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/gordonphayes/status/1547657503705481219?s=20&amp;t=T_GrfDyGyvnVkddtHfRLtQ&quot;,&quot;full_text&quot;:&quot;Had to try and recreate this in <span class=\&quot;tweet-fake-link\&quot;>#flutter</span> \n\nDartpad: <a class=\&quot;tweet-url\&quot; href=\&quot;https://dartpad.dev/?id=0fdb62678e4aabc83289c479aa219730\&quot;>dartpad.dev/?id=0fdb62678e&#8230;</a>  &quot;,&quot;username&quot;:&quot;gordonphayes&quot;,&quot;name&quot;:&quot;Gordon Hayes&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Thu Jul 14 19:01:17 +0000 2022&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://substackcdn.com/image/upload/w_728,c_limit/l_twitter_play_button_rvaygk,w_120/pbra8oys5c5v9de44sk1&quot;,&quot;link_url&quot;:&quot;https://t.co/eip14XDPe0&quot;,&quot;alt_text&quot;:null}],&quot;quoted_tweet&quot;:{&quot;full_text&quot;:&quot;Light bulb reading environment; don't strain your eyes! https://t.co/noa7NdGw3a&quot;,&quot;username&quot;:&quot;cristicrtu&quot;,&quot;name&quot;:&quot;Cristi&quot;},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:77,&quot;like_count&quot;:370,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:&quot;https://video.twimg.com/ext_tw_video/1547656662952976384/pu/vid/1280x720/sgOn_3_actMci-Fv.mp4?tag=12&quot;,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><div><hr></div><h1>That's all folks &#128075;</h1><p>Thank you for reading another edition of&nbsp;<a href="https://newsletter.neevash.dev/">The Flutter Bi-Weekly</a>! I hope you enjoyed this edition and found something new.&nbsp;</p><p>If you have a post you&#8217;d like to see featured in the next edition, please reach out over&nbsp;<a href="https://twitter.com/Nash0x7E2?utm_campaign=The%20Flutter%20Bi-Weekly&amp;utm_medium=email&amp;utm_source=Revue%20newsletter">Twitter</a>. My DMs are always open.</p><p></p><p>&#8211;&nbsp;<a href="https://neevash.dev/?utm_campaign=The%20Flutter%20Bi-Weekly&amp;utm_medium=email&amp;utm_source=Revue%20newsletter">Nash</a>&nbsp;</p>]]></content:encoded></item><item><title><![CDATA[The Flutter Bi-Weekly - Issue #8 ]]></title><description><![CDATA[One unplanned hiatus, a few international trips, and one change of platform later, The Flutter Bi-Weekly is back!]]></description><link>https://newsletter.neevash.dev/p/issue-8</link><guid isPermaLink="false">https://newsletter.neevash.dev/p/issue-8</guid><dc:creator><![CDATA[Neevash Ramdial (Nash)]]></dc:creator><pubDate>Tue, 12 Jul 2022 02:30:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/h_600,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9101b8ea-c81d-47b6-aef5-5650babd55b3_1012x506.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ruEB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ruEB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 424w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 848w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1272w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ruEB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png" width="440" height="220" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/eee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:506,&quot;width&quot;:1012,&quot;resizeWidth&quot;:440,&quot;bytes&quot;:22703,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ruEB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 424w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 848w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1272w, https://substackcdn.com/image/fetch/$s_!ruEB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Feee3b411-46c5-4dbd-be5a-dc76bd9a425f_1012x506.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p></p><p>Hello Flutter friends, it has been a while!&nbsp;</p><p>A "few" weeks have passed since the last release of the Flutter Bi-Weekly, and a lot has happened since.&nbsp;</p><p>I had the opportunity to attend Google IO this year and experience the event in person for the first time. The cherry on top,&nbsp;<a href="https://www.linkedin.com/feed/update/urn:li:activity:6930299286379241472/">a project</a>&nbsp;our team worked on, got mentioned during the developer keynote!&nbsp;</p><p></p><p>Following IO,&nbsp;<a href="https://twitter.com/nash0x7e2/status/1532776252741804034?s=20&amp;t=a5v7gCqwqE_CXtM3eZtYcA">Droidcon SF</a>&nbsp;came up, and your favorite Flutter Dev shared a talk with my friend and colleague,&nbsp;<a href="https://twitter.com/filbabic">Filip</a>.&nbsp;</p><p>To wrap things up, Stream had a booth at <a href="https://www.linkedin.com/feed/update/urn:li:activity:6938553244369444864/">The Next Web in Amsterdam</a>, which was lots of fun -- especially since it was my first time in Europe! &#128516;</p><p></p><p>Mixed with personal and professional commitments upon returning, time has been surprisingly elusive over the last two months.&nbsp;</p><p></p><p>Nevertheless, the time has come once again to resume the Bi-Weekly Flutter updates everyone knows and (hopefully?) loves!&nbsp;</p><div><hr></div><h1><strong>Blogs &#9997;&#65039;</strong></h1><h4><strong><a href="https://codewithandrea.com/articles/riverpod-initialize-listener-app-startup/">Flutter Riverpod: How to Register a Listener during App Startup</a></strong></h4><p>What does responding to push notifications, authentication, and handling deep linking all have in common? Background listeners at app startup! </p><p>Implementing this workflow can be tricky, but lucky for us, Andrea wrote a post on how you can configure your Flutter apps to handle these use-cases using Riverpod &#128526;</p><div class="preformatted-block" data-component-name="PreformattedTextBlockToDOM"><label class="hide-text" contenteditable="false">Text within this block will maintain its original spacing when published</label><pre class="text">
</pre></div><h4><strong><a href="https://ente.io/blog/tech/display-p3/">Why do my Flutter screens look washed out?</a></strong></h4><p>Coping the hex codes from Figma to your application and noticing the colors aren't matching up? Chances are it has something to do with the color space.</p><p>Check out Manav's blog post to learn more.</p><h4></h4><h4><strong><a href="https://codeclusive.io/blog/riverpod-state-management/">The Use of Architecture with Riverpod State Management - Case Study</a></strong></h4><p>Scale is one of the most important factors for engineering managers when choosing a design pattern or state framework for their apps. </p><p>As Riverpod continues to grow in popularity, we see more and more developers adopt the library and share their experiences, like today's author, Ewa Radomska, who wrote a fantastic case study on using Riverpod on a large project. </p><h4></h4><h4><strong><a href="https://www.reddit.com/r/FlutterDev/comments/vqmgij/ive_migrated_a_text_editor_library_13k_loc_from/">Migrating a text editor library (13K LOC) from no state management (spaghetti code) to state management.</a></strong></h4><p><a href="https://www.reddit.com/user/SpaceInstructor/">u/SpaceInstructor</a> had the unenviable task of restructuring a 13k LOC package of spaghetti code into a streamlined and scalable architecture. </p><p>Lucky for us mortals, SpaceInstructor documented the process in a fantastic Reddit post covering some of the challenges and architectural decisions made along the way.</p><p></p><h4><strong><a href="https://verygood.ventures/blog/flutter-app-very-good-cli-supabase">Build a Flutter app with Very Good CLI and Supabase</a></strong></h4><p>Want to learn how you can refactor an existing project to be ultra-scaleable and testable?</p><p><a href="https://verygood.ventures/team/ana-polo">Ana Polo</a>&nbsp;and our friends at VGV did just that using Supabase's starter Flutter project. Check out the link above to learn more.</p><p></p><p></p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/p/issue-8?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Enjoying the post so far? Consider sharing it with a friend :) </p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/p/issue-8?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://newsletter.neevash.dev/p/issue-8?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><p></p><h1>Videos &#127909;</h1><h4><strong><a href="https://youtu.be/ZFa_ZdGKEkQ">AWS Amplify Flutter In 5 Minutes</a></strong></h4><p>AWS Amplify allows users to quickly build feature-rich, full-stack web and mobile applications. The team there has been on a roll lately with awesome keynote and content releases around their Flutter SDK.&nbsp;</p><p>To help you get started,&nbsp;<a href="https://twitter.com/_Mo_Malaka_">Mo Malaka</a>&nbsp;made a five-minute guide for Flutter devs!</p><h4></h4><h4><strong><a href="https://youtu.be/BBlr8F8m9lo">NoSQL Database Storage | Flutter ObjectBox (vs Sqlite, Sqflite, Hive)</a></strong></h4><p>Do you need to persist some app data on  device or quickly synchronize it with multiple devices?</p><p>ObejctBox allows developers to do all of these things and more. Check out&nbsp;<a href="https://www.youtube.com/c/JohannesMilke">Johannes</a>' latest video to learn more!</p><h4></h4><h4><strong><a href="https://youtu.be/I5uOVEAEsWc">Full Stack With Flutter - Python, Dart, Flutter and Rust</a></strong></h4><p>Ready to become a full-stack developer?</p><p>In&nbsp;<a href="https://twitter.com/vandadnp">Vandad's</a>&nbsp;latest Youtube series, you will learn how to build a full-stack application using Python + Django, Dart + Flutter, and Rust. Check out the link above if this sounds interesting to you. &#128526;&nbsp;</p><p></p><h4><strong><a href="https://youtu.be/L-TY_5NZ7z4">EVERY Flutter Cupertino Widgets</a></strong></h4><p>We've all heard about Material Widget but have you tried building an app using the Cupertino widget set?</p><p>To help you get started on that quest,&nbsp;<a href="https://twitter.com/fluttermapp">FlutterMapp</a>&nbsp;made a video detailing the use of every Cupertino widget included in the framework!&nbsp;</p><h4></h4><h4><strong><a href="https://youtu.be/zGgeBNiRy-8">Quick start to building a game in Flutter</a></strong></h4><p>A key announcement from the Flutter team at Google IO was the&nbsp;<a href="https://flutter.dev/games">Flutter Casual Game Toolkit</a>.</p><p>Join the Flutter gaming master himself, <a href="https://twitter.com/filiphracek">Filip Hracek</a>, on Flutter's official Youtube channel to learn how you can bring your games to life using the project &#128126;</p><h4></h4><h4><strong><a href="https://youtu.be/mL6cQLzXm0s">Exploring Transform And Matrix4 In Flutter</a></strong></h4><p>One of the most powerful widgets in the Flutter catalog is the Transform widget. Transform widgets allow us to fundamentally alter how widgets look and behave, allowing us to create new, complex types of animations.&nbsp;</p><p>To learn more about Transforms, check out&nbsp;<a href="https://twitter.com/DevenJoshi7">Deven's</a>&nbsp;first animated video on his (still) brand new Youtube channel :)</p><p></p><div><hr></div><p></p><h1><strong>Noteworthy Community Moments &#128171;</strong></h1><p>Help Flutter's PM <strong><a href="https://twitter.com/LeighaJarett">Leigha Jarett</a></strong> Flutter's iOS widgets to the next level &#128526;</p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/LeighaJarett/status/1545443795390668803&quot;,&quot;full_text&quot;:&quot;Calling <span class=\&quot;tweet-fake-link\&quot;>#iOS</span> developers, I want to talk to you! I'm trying to understand why you may or may not use <span class=\&quot;tweet-fake-link\&quot;>#Flutter</span> for your apps. DM me and we can find time to chat! &#128522;&quot;,&quot;username&quot;:&quot;LeighaJarett&quot;,&quot;name&quot;:&quot;Leigha Jarett &#128153;&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Fri Jul 08 16:24:48 +0000 2022&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:39,&quot;like_count&quot;:350,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p></p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/drcoderz/status/1545450513650810881&quot;,&quot;full_text&quot;:&quot;Amazing conversations with the community about <span class=\&quot;tweet-fake-link\&quot;><span class=\&quot;tweet-fake-link\&quot;>#Flutter</span></span> <span class=\&quot;tweet-fake-link\&quot;>#Web</span> and #Flutter in general - thanks to everyone who joined &#128153; you guys rock &#128077; https://t.co/1ySTEDFHIl&quot;,&quot;username&quot;:&quot;drcoderz&quot;,&quot;name&quot;:&quot;Roman Jaquez&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Fri Jul 08 16:51:30 +0000 2022&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:5,&quot;like_count&quot;:23,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p></p><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/FlutterTg/status/1546101392053604354&quot;,&quot;full_text&quot;:&quot;State management with Bloc by <span class=\&quot;tweet-fake-link\&quot;>@Boris_Gauty</span> from Cameroon &#127464;&#127474;\n<span class=\&quot;tweet-fake-link\&quot;>#Flutter</span> <span class=\&quot;tweet-fake-link\&quot;>#Dart</span>\n<span class=\&quot;tweet-fake-link\&quot;>@nlycskn</span> <span class=\&quot;tweet-fake-link\&quot;>@FullmerS</span>\n\nHappening in Togo&#127481;&#127468;\nFlutter Day &quot;,&quot;username&quot;:&quot;FlutterTg&quot;,&quot;name&quot;:&quot;Flutter Togo &#127481;&#127468;&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Sun Jul 10 11:57:51 +0000 2022&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://pbs.substack.com/media/FXTbBY8XkAAl0AL.jpg&quot;,&quot;link_url&quot;:&quot;https://t.co/ONaLwhhOPR&quot;,&quot;alt_text&quot;:null}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:5,&quot;like_count&quot;:22,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p></p><div><hr></div><p></p><h1><strong>Tweet of the Week &#129351;</strong></h1><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/mkobuolys/status/1544971971779350530&quot;,&quot;full_text&quot;:&quot;So I heard you miss my memes... Say no more - today I've tried out this bad boy &#128064;\n\nHere is a simple \&quot;Yeet GetX import\&quot; linter. With minor adjustments, you can adjust this to yeet other <span class=\&quot;tweet-fake-link\&quot;>#Flutter</span> packages, too &#128517;\n\nGitHub repo &#128071;, cheers!  &quot;,&quot;username&quot;:&quot;mkobuolys&quot;,&quot;name&quot;:&quot;Mangirdas Kazlauskas &#128153;&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Thu Jul 07 09:09:56 +0000 2022&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://substackcdn.com/image/upload/w_728,c_limit/l_twitter_play_button_rvaygk,w_120/qw4xxtieedhnpvte0goq&quot;,&quot;link_url&quot;:&quot;https://t.co/TJ1g7bR2mX&quot;,&quot;alt_text&quot;:null}],&quot;quoted_tweet&quot;:{&quot;full_text&quot;:&quot;Lint rules are a powerful way to improve the maintainability of a project. The more, the merrier!\n\n&#129395; We are pleased to announce the \&quot;Custom Lint\&quot; package, a powerful tool for building custom lint rules to allow you to go beyond!\n\n&#128279;&#127871; https://t.co/WEj3jLU5s7 https://t.co/lq1NxFrLhR&quot;,&quot;username&quot;:&quot;invertaseio&quot;,&quot;name&quot;:&quot;Invertase&quot;},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:15,&quot;like_count&quot;:75,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:&quot;https://video.twimg.com/ext_tw_video/1544971123032576001/pu/vid/1176x720/MpwLvNcNNDxOCuUY.mp4?tag=12&quot;,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/alexmercerind/status/1545492579328098304&quot;,&quot;full_text&quot;:&quot;Smooth &amp;amp; performant video playback coming really soon in Flutter <span class=\&quot;tweet-fake-link\&quot;>@Windows</span> ! &#127881;\n\nPowered by fabulous <span class=\&quot;tweet-fake-link\&quot;>@mpv_player</span>.\nHardware accelerated. That's really really efficient this time.\n\n<span class=\&quot;tweet-fake-link\&quot;>#flutter</span> <span class=\&quot;tweet-fake-link\&quot;>#flutterdev</span> \n\nWIP: <a class=\&quot;tweet-url\&quot; href=\&quot;https://github.com/alexmercerind/flutter-windows-ANGLE-OpenGL-Direct3D-Interop\&quot;>github.com/alexmercerind/&#8230;</a>\n\nConsider sponsoring to speed up progress. &quot;,&quot;username&quot;:&quot;alexmercerind&quot;,&quot;name&quot;:&quot;Hitesh &#128295;&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Fri Jul 08 19:38:39 +0000 2022&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://substackcdn.com/image/upload/w_728,c_limit/l_twitter_play_button_rvaygk,w_120/sfrri4w39cepgwzzmfj0&quot;,&quot;link_url&quot;:&quot;https://t.co/JwVotZhIt8&quot;,&quot;alt_text&quot;:null}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:32,&quot;like_count&quot;:171,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:&quot;https://video.twimg.com/ext_tw_video/1545491476955955200/pu/vid/1280x720/uyYXabpy3lIYoEu6.mp4?tag=12&quot;,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/t3dotgg/status/1544168855412428801&quot;,&quot;full_text&quot;:&quot;Decided to clean up this <span class=\&quot;tweet-fake-link\&quot;>#Flutter</span> vs <span class=\&quot;tweet-fake-link\&quot;>#ReactNative</span> diagram from stream today &quot;,&quot;username&quot;:&quot;t3dotgg&quot;,&quot;name&quot;:&quot;Theo - ping.gg&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Tue Jul 05 03:58:39 +0000 2022&quot;,&quot;photos&quot;:[{&quot;img_url&quot;:&quot;https://pbs.substack.com/media/FW39QmBUcAABb2W.jpg&quot;,&quot;link_url&quot;:&quot;https://t.co/T2KOQwgooq&quot;,&quot;alt_text&quot;:null}],&quot;quoted_tweet&quot;:{},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:111,&quot;like_count&quot;:817,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><div class="twitter-embed" data-attrs="{&quot;url&quot;:&quot;https://twitter.com/timsneath/status/1546306899355676674&quot;,&quot;full_text&quot;:&quot;Really impressed with the level of effort <span class=\&quot;tweet-fake-link\&quot;>@AWSAmplify</span> have put into supporting Flutter. Real computing systems aren't homogenous, and we want to help you be successful regardless of which services you use. Go Mo! <span class=\&quot;tweet-fake-link\&quot;>#Flutter</span> <span class=\&quot;tweet-fake-link\&quot;>#OSS</span> <span class=\&quot;tweet-fake-link\&quot;>#OStandsForOpen</span> &quot;,&quot;username&quot;:&quot;timsneath&quot;,&quot;name&quot;:&quot;Tim Sneath&quot;,&quot;profile_image_url&quot;:&quot;&quot;,&quot;date&quot;:&quot;Mon Jul 11 01:34:28 +0000 2022&quot;,&quot;photos&quot;:[],&quot;quoted_tweet&quot;:{&quot;full_text&quot;:&quot;&#128153; Are you a Flutter Developer? &#128153;\n\nDo you know what is @AWSAmplify? In this video, I give a high-level overview about how easy it is to use AWS Amplify for your Flutter App.\n\n&#127916; YouTube =&amp;gt; https://t.co/woHTytHvtA\n\n&#129321;&#128293;&#128640;\n1/n\n&#129525;&#128071;\n\n#flutter&quot;,&quot;username&quot;:&quot;_Mo_Malaka_&quot;,&quot;name&quot;:&quot;Mo Malaka &#128153;&quot;},&quot;reply_count&quot;:0,&quot;retweet_count&quot;:12,&quot;like_count&quot;:84,&quot;impression_count&quot;:0,&quot;expanded_url&quot;:{},&quot;video_url&quot;:null,&quot;belowTheFold&quot;:true}" data-component-name="Twitter2ToDOM"></div><p></p><div><hr></div><h1>That's all folks &#128075;</h1><p>Thank you for reading another edition of&nbsp;<a href="https://newsletter.neevash.dev">The Flutter Bi-Weekly</a>! I hope you enjoyed this edition and found something new.&nbsp;</p><p></p><p>If you have a post you&#8217;d like to see featured in the next edition, please reach out over&nbsp;<a href="https://twitter.com/Nash0x7E2?utm_campaign=The%20Flutter%20Bi-Weekly&amp;utm_medium=email&amp;utm_source=Revue%20newsletter">Twitter</a>. My DMs are always open.</p><p>&#8211;&nbsp;<a href="https://neevash.dev/?utm_campaign=The%20Flutter%20Bi-Weekly&amp;utm_medium=email&amp;utm_source=Revue%20newsletter">Nash</a>&nbsp;</p><p></p><p></p><div><hr></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wbQk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9101b8ea-c81d-47b6-aef5-5650babd55b3_1012x506.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wbQk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9101b8ea-c81d-47b6-aef5-5650babd55b3_1012x506.png 424w, https://substackcdn.com/image/fetch/$s_!wbQk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9101b8ea-c81d-47b6-aef5-5650babd55b3_1012x506.png 848w, https://substackcdn.com/image/fetch/$s_!wbQk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9101b8ea-c81d-47b6-aef5-5650babd55b3_1012x506.png 1272w, https://substackcdn.com/image/fetch/$s_!wbQk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9101b8ea-c81d-47b6-aef5-5650babd55b3_1012x506.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wbQk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9101b8ea-c81d-47b6-aef5-5650babd55b3_1012x506.png" width="298" height="149" data-attrs="{&quot;src&quot;:&quot;https://bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com/public/images/9101b8ea-c81d-47b6-aef5-5650babd55b3_1012x506.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:506,&quot;width&quot;:1012,&quot;resizeWidth&quot;:298,&quot;bytes&quot;:22703,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wbQk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9101b8ea-c81d-47b6-aef5-5650babd55b3_1012x506.png 424w, https://substackcdn.com/image/fetch/$s_!wbQk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9101b8ea-c81d-47b6-aef5-5650babd55b3_1012x506.png 848w, https://substackcdn.com/image/fetch/$s_!wbQk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9101b8ea-c81d-47b6-aef5-5650babd55b3_1012x506.png 1272w, https://substackcdn.com/image/fetch/$s_!wbQk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F9101b8ea-c81d-47b6-aef5-5650babd55b3_1012x506.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://newsletter.neevash.dev/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading The Flutter Bi-Weekly! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p></p>]]></content:encoded></item></channel></rss>