<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><description>Google Developer Expert in Dart/Flutter &amp; Project Lead for BlocSignal ecosystem.&#xA;Five decade industry veteran.</description><link>https://bsky.app/profile/randalschwartz.bsky.social</link><title>@randalschwartz.bsky.social - Randal Schwartz</title><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mvboydifbc2l</link><description>Humans survive outages because our brains carry somatic scars. AI has no nervous system—every day is Groundhog Day.&#xA;&#xA;Here is how teaching AI pain gives it real wisdom: https://dev.to/gde/why-ai-keeps-making-the-same-coding-mistakes-and-how-teaching-it-pain-gives-it-wisdom-4a9m&#xA;&#xA;#AI #SoftwareEngineering #Dart #Flutter</description><pubDate>11 Sep 2026 23:13 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mvboydifbc2l</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mv7hnuo7bc25</link><description>Tired of the Flutter &#34;Builder Pyramid&#34; or context․watch traps?&#xA;BlocSignal brings 1:1 symmetry:&#xA;• context.value for 1-line rebuilds&#xA;• context.state for signals&#xA;• Zero-closure tearoffs&#xA;Full deep-dive &amp; runnable example 👇&#xA;https://dev.to/gde/the-symmetry-of-state-why-flutter-deserves-contextvalue-and-contextstate-4250</description><pubDate>11 Sep 2026 01:57 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mv7hnuo7bc25</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mv4enl3pac23</link><description>How to pitch BlocSignal to tech leads in 2026:&#xA;Cut through CISC stream ceremony, eliminate build_runner, and unlock 3x velocity for AI coding agents with push-pull reactivity:&#xA;https://dev.to/gde/the-modern-pitch-for-blocsignal-why-engineering-leads-are-moving-to-reactive-primitives-5d5h&#xA;#Flutter</description><pubDate>09 Sep 2026 20:25 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mv4enl3pac23</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mv2lkr7j4k2b</link><description>Observability shows WHAT happened (states, errors). Telemetry explains WHY (pipeline decisions, physics).&#xA;&#xA;Stop leaking drop counters into UI state. Here is how we solved telemetry above mechanics:&#xA;&#xA;https://dev.to/gde/beyond-black-box-concurrency-streamless-event-transformers-telemetry-and-the-end-of-3b08&#xA;&#xA;#Flutter #Dart</description><pubDate>09 Sep 2026 03:23 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mv2lkr7j4k2b</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3muujha3vtc24</link><description>Want bulletproof Flutter state? Pair BlocSignal with FIC by Marcelo Glasberg.&#xA;Get zero-cost undo/redo, offline hydration, &amp; instant O(1) shopping cart updates:&#xA;https://dev.to/gde/the-unbreakable-shopping-cart-pairing-blocsignal-with-fast-immutable-collections-fic-for-1pn2 #Flutter</description><pubDate>06 Sep 2026 17:30 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3muujha3vtc24</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3muqhrm7d3s2r</link><description>Stop forcing Clean Architecture into real-time Flutter apps.&#xA;&#xA;The Iceberg Pattern with BlocSignal: • Submerged reactive engine • 0ms optimistic UI + rollback • Screen-scoped Cubit facades • 100% synchronous UI&#xA;&#xA;No anemic lasagna: https://dev.to/gde/beyond-clean-architecture-the-iceberg-pattern-for-real-time-flutter-apps-with-blocsignal-3l84</description><pubDate>05 Sep 2026 02:49 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3muqhrm7d3s2r</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mumymfyyzk2l</link><description>Why install 3rd-party packages for Flutter infinite scroll?&#xA;With BlocSignal mixins, your ScrollController *is* your state machine:&#xA;• 100% StatelessWidget UI&#xA;• Streamless droppable() concurrency&#xA;• Clean ScrollPosition.extentAfter&#xA;https://dev.to/gde/taming-flutter-infinite-scroll-part-2-turning-scrollcontroller-into-a-reactive-state-machine-cgh</description><pubDate>03 Sep 2026 17:40 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mumymfyyzk2l</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mufcux32vk24</link><description>Flutter is unbundling Material &amp; Cupertino into standalone packages (`material_ui` &amp; `cupertino_ui`)!&#xA;Teach your AI agent to automate the split migration with dart-sdk-skills:&#xA;https://dev.to/gde/automate-flutters-new-split-package-migration-with-ai-agent-skills-bn2&#xA;#Flutter #Dart</description><pubDate>31 Aug 2026 16:22 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mufcux32vk24</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mudcie62hs2c</link><description>Tired of writing 4 state classes, try/catches, and cancel tokens for every Flutter API endpoint? 🌐&#xA;&#xA;Discover how .toAsyncBlocSignal(), CubitSignalMixin, and restartable() eliminate 70% of networking boilerplate! ⚡&#xA;&#xA;Read Ep 27: https://dev.to/gde/production-flutter-networking-without-the-boilerplate-reactive-repositories-with-blocsignal-4c3c&#xA;&#xA;#Flutter #Dart</description><pubDate>30 Aug 2026 21:10 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mudcie62hs2c</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3muctvvn2vc2f</link><description>Tired of Dart&#39;s single inheritance wall in Flutter? 🧱&#xA;&#xA;With bloc_signals 1.2.0, turn ANY class (TextEditingController, ChangeNotifier, BaseRepo) into a 0ms reactive BLoC/Cubit using CubitSignalMixin! 🍦&#xA;&#xA;Read Ep 26: https://dev.to/gde/overcoming-darts-single-inheritance-wall-composable-cubitsignalmixin-blocsignalmixin-in-flutter-43bf&#xA;&#xA;#Flutter #Dart</description><pubDate>30 Aug 2026 16:49 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3muctvvn2vc2f</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mubau52y2s27</link><description>Flutter state management divide is over! 🚂🚚🚄&#xA;BLoC, Riverpod, and BlocSignal are now true bidirectional peers: zero rewrites, typed mutations, and instant synchronous signal reactivity.&#xA;See all 3 compose together in &lt;65 lines:&#xA;https://dev.to/gde/grand-central-station-why-bloc-riverpod-and-blocsignal-are-now-true-peers-3fd8</description><pubDate>30 Aug 2026 01:35 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mubau52y2s27</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mu6er5c6n223</link><description>Tired of FutureBuilder &amp; StreamBuilder boilerplate in Flutter?&#xA;&#xA;bloc_signals 1.1.0 is out! ⚡️ Convert Future, Stream, and Signal primitives into synchronous state containers with zero rebuild traps.&#xA;&#xA;📖 https://dev.to/gde/mechanically-eliminating-futurebuilder-streambuilder-universal-signal-future-and-stream-3imf&#xA;&#xA;#Flutter #DartDev #StateManagement</description><pubDate>28 Aug 2026 22:07 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mu6er5c6n223</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mtzhnxp4ss22</link><description>Why FutureBuilder &amp; StreamBuilder are architectural anti-patterns in production Flutter apps—and why your async boundary belongs at the edge:&#xA;📖 Part 21 of the BlocSignal series:&#xA;https://dev.to/gde/futurebuilder-and-streambuilder-as-anti-patterns-why-your-async-boundary-should-be-far-away-from-1d8g&#xA;#Flutter #Dart #FlutterDev</description><pubDate>26 Aug 2026 23:16 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mtzhnxp4ss22</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mtp4rz2v7s2z</link><description>Tired of your AI assistant writing 2021-era Dart? 🤖&#xA;&#xA;Between null safety (2.12), patterns (3.0), &amp; primary constructors (3.13), Dart moved fast.&#xA;&#xA;I open-sourced dart-sdk-skills (Dart 1.0 to 3.14):&#xA;npx skills add RandalSchwartz/dart-sdk-skills -g&#xA;&#xA;https://dev.to/gde/bridging-the-ai-cutoff-teaching-coding-agents-every-dart-feature-from-10-to-314-3752</description><pubDate>22 Aug 2026 20:35 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mtp4rz2v7s2z</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mtnc2wb7ss2k</link><description>Should your Flutter feature be a raw signal, a lightweight Cubit, or a full event-driven BLoC?&#xA;Stop guessing state architecture. Here is the definitive 4-tier decision rubric:&#xA;👉 https://dev.to/gde/when-to-use-bloc-vs-cubit-vs-signal-an-architectural-decision-guide-2911&#xA;#Flutter #Dart #FlutterDev</description><pubDate>22 Aug 2026 03:04 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mtnc2wb7ss2k</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mtkl2q7n6c26</link><description>For years I championed Riverpod. But the best DX upgrade isn&#39;t what you learn—it&#39;s what you get to unlearn.&#xA;Why pivoting to BlocSignal brings joy back to Flutter:&#xA;https://dev.to/gde/what-i-get-to-forget-about-riverpod-now-that-i-have-blocsignal-1be5</description><pubDate>21 Aug 2026 01:07 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mtkl2q7n6c26</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mti5ifouzk2q</link><description>Why do AI coding agents stumble on quick Python scripts? Virtualenvs, PEP 668, &amp; runtime KeyErrors.&#xA;I added one rule to my agent: &#34;Prefer Dart over Python.&#34;&#xA;Instant JIT execution, zero venvs, &amp; sound type safety.&#xA;Why it works:&#xA;https://dev.to/gde/why-i-tell-my-ai-coding-agent-prefer-dart-over-python-1dbg</description><pubDate>20 Aug 2026 01:58 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mti5ifouzk2q</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mtecpgjns22t</link><description>I&#39;m tired of &#34;Flutter is Dead&#34; clickbait headlines, so I rattled this off: https://medium.com/@realmerlyn/ive-been-a-flutter-google-developer-expert-for-8-years-now-from-day-one-of-the-program-c46a701744fd?sharedUserId=realmerlyn</description><pubDate>18 Aug 2026 13:21 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mtecpgjns22t</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mtanrmj3d22z</link><description>Don&#39;t know BLoC yet? No problem! 🚀&#xA;&#xA;The new BlocSignal Docs Hub covers you from the ground up: 👉 blocsignal.dev/docs&#xA;&#xA;• 20 deep chapters • Flutter UI &amp; Recipes • Migration Guides • Dual Dart 3.13+ / 3.5 toggle&#xA;&#xA;0ms latency. Pure signals. 💙 #Flutter #Dart&#xA;https://blocsignal.dev/docs</description><pubDate>17 Aug 2026 02:29 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mtanrmj3d22z</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mt7sgccyqs2r</link><description>Why doesn&#39;t BlocSignal need Provider like classic BLoC did?&#xA;&#xA;Dropping package:provider ends dependency hell, fixes Flutter&#39;s ghost rebuild bug, and brings zero-code-gen reactivity:&#xA;&#xA;https://dev.to/gde/why-blocsignal-doesnt-need-provider-and-why-classic-bloc-always-did-1j3g</description><pubDate>16 Aug 2026 18:19 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mt7sgccyqs2r</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mt5dnmejv224</link><description>Ever had an error SnackBar re-trigger on phone rotation? Sticky domain state is the culprit.&#xA;Here is why classic BLoC needed bloc_presentation, and how BlocSignal solves one-shot UI side effects with zero dependencies:&#xA;https://dev.to/gde/one-shot-ui-side-effects-in-blocsignal-snackbars-dialogs-and-navigation-without-state-pollution-52j4</description><pubDate>15 Aug 2026 18:49 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mt5dnmejv224</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mt3fvj7k3c2o</link><description>100K ops/sec reactive web app in pure Dart ⚡&#xA;&#xA;Dogfooding bloc_signals_jaspr on blocsignal.dev:&#xA;• 0ms microtask latency in JS&#xA;• Full router built as a Cubit&#xA;• Scoped updates with Selectors&#xA;• Clean Dart 3.13 syntax&#xA;&#xA;https://dev.to/gde/dogfooding-blocsignal-on-the-web-building-a-100k-opssec-reactive-app-with-jaspr-and-dart-313-4am7&#xA;https://blocsignal.dev</description><pubDate>15 Aug 2026 00:24 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mt3fvj7k3c2o</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3msz662rehs2f</link><description>Dart 3.13 + BlocSignal = Zero Boilerplate! 🚀&#xA;Primary constructors, &#39;this&#39; bodies, and shorthands make Flutter state management concise &amp; 0ms synchronous:&#xA;https://dev.to/gde/dart-313-primary-constructors-blocsignal-boilerplate-free-reactive-architecture-5fll&#xA;#Flutter #Dart #BlocSignal</description><pubDate>14 Aug 2026 03:01 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3msz662rehs2f</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3mswaxy7vbc2u</link><description>Love Riverpod&#39;s provider safety &amp; reactivity, but want zero code generation &amp; fine-grained signals?&#xA;&#xA;Part 16 of the BlocSignal series is live! Learn how to trial or incrementally migrate using bloc_signals_riverpod 🚀&#xA;&#xA;https://dev.to/gde/riverpod-to-blocsignal-incremental-migration-and-zero-codegen-signals-for-flutter-1gdp&#xA;&#xA;#Flutter #Dart</description><pubDate>12 Aug 2026 23:13 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3mswaxy7vbc2u</guid></item><item><link>https://bsky.app/profile/randalschwartz.bsky.social/post/3msnvw3ynfk2n</link><description>Testing BLoCs doesn&#39;t mean fighting microtask stream lag! 🧪⚡&#xA;With BlocSignal &amp; bloc_signals_test, state updates propagate synchronously.&#xA;Practical handbook: https://dev.to/gde/unit-testing-in-blocsignal-the-practical-handbook-17o1 #Flutter #Dart</description><pubDate>09 Aug 2026 15:34 +0000</pubDate><guid isPermaLink="false">at://did:plc:tldocj7fakkwgi4vzvwc6sov/app.bsky.feed.post/3msnvw3ynfk2n</guid></item></channel></rss>