<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Flutter on Simple Enough Blog</title><link>https://blog-dev.simpleenough.net/tags/flutter/</link><description>Recent content in Flutter on Simple Enough Blog</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 21 Jul 2025 12:30:00 +0200</lastBuildDate><atom:link href="https://blog-dev.simpleenough.net/tags/flutter/index.xml" rel="self" type="application/rss+xml"/><item><title>How to Build a Responsive Flutter Interface for the Web</title><link>https://blog-dev.simpleenough.net/blog/responsive/</link><pubDate>Mon, 21 Jul 2025 12:30:00 +0200</pubDate><guid>https://blog-dev.simpleenough.net/blog/responsive/</guid><description>&lt;h2 id="i-introduction" class="heading">I. Introduction&lt;a href="#i-introduction" aria-labelledby="i-introduction">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Flutter is known for its ability to produce cross-platform applications from a single codebase. While the framework was originally designed for mobile, its web capabilities have improved significantly. However, building a &lt;strong>responsive&lt;/strong> web interface with Flutter requires a thoughtful approach tailored to multi-screen navigation constraints.&lt;/p>
&lt;p>In this in-depth guide, we&amp;rsquo;ll explore:&lt;/p>
&lt;ul>
&lt;li>Core best practices.&lt;/li>
&lt;li>Key widgets and tools to master.&lt;/li>
&lt;li>Code examples for each approach.&lt;/li>
&lt;li>Common pitfalls and how to avoid them.&lt;/li>
&lt;/ul>
&lt;hr>




&lt;h2 id="ii-understanding-the-challenges-of-responsive-flutter-design" class="heading">II. Understanding the Challenges of Responsive Flutter Design&lt;a href="#ii-understanding-the-challenges-of-responsive-flutter-design" aria-labelledby="ii-understanding-the-challenges-of-responsive-flutter-design">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>




&lt;h3 id="declarative-nature-of-layouts" class="heading">Declarative Nature of Layouts&lt;a href="#declarative-nature-of-layouts" aria-labelledby="declarative-nature-of-layouts">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;p>Flutter works differently from HTML/CSS:&lt;/p></description></item><item><title>Optimizing Flutter Performance: build(), keys, and const Widgets</title><link>https://blog-dev.simpleenough.net/blog/optimisationflutter/</link><pubDate>Tue, 15 Jul 2025 09:24:42 +0200</pubDate><guid>https://blog-dev.simpleenough.net/blog/optimisationflutter/</guid><description>&lt;p>This article proposes performance improvements by focusing on three fundamental aspects:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>The build() cycle&lt;/strong>&lt;/li>
&lt;li>&lt;strong>Keys&lt;/strong>&lt;/li>
&lt;li>&lt;strong>Const widgets&lt;/strong>&lt;/li>
&lt;/ul>
&lt;hr>




&lt;h2 id="i-the-build-cycle-understanding-to-optimize" class="heading">I. The build() cycle: understanding to optimize&lt;a href="#i-the-build-cycle-understanding-to-optimize" aria-labelledby="i-the-build-cycle-understanding-to-optimize">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>The &lt;strong>build()&lt;/strong> process is at the core of rendering in Flutter. When a state changes or a widget is rebuilt, the &lt;strong>build()&lt;/strong> method is called. Mismanaging this method can cause significant slowdowns.&lt;/p>




&lt;h3 id="a-when-is-build-triggered" class="heading">A. When is build() triggered?&lt;a href="#a-when-is-build-triggered" aria-labelledby="a-when-is-build-triggered">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;ol>
&lt;li>During the first widget creation.&lt;/li>
&lt;li>When calling &lt;strong>setState()&lt;/strong>.&lt;/li>
&lt;li>When a parent widget is rebuilt.&lt;/li>
&lt;/ol>




&lt;h3 id="b-techniques-to-reduce-the-build-impact" class="heading">B. Techniques to reduce the build() impact&lt;a href="#b-techniques-to-reduce-the-build-impact" aria-labelledby="b-techniques-to-reduce-the-build-impact">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Use const in the constructor&lt;/strong>: Creates immutable instances.&lt;/li>
&lt;li>&lt;strong>Break down the build&lt;/strong>: Split the UI into subcomponents to reduce the impact zone.&lt;/li>
&lt;li>&lt;strong>Avoid heavy calculations in build()&lt;/strong>: Delegate tasks to pre-computed functions or separate methods.&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Example: Optimization with subcomponents&lt;/strong>&lt;/p></description></item><item><title>Flutter &amp; Redux: A Well-Organized Recipe with Dispatch</title><link>https://blog-dev.simpleenough.net/blog/dispatch/</link><pubDate>Sun, 22 Jun 2025 19:38:55 +0100</pubDate><guid>https://blog-dev.simpleenough.net/blog/dispatch/</guid><description>&lt;h2 id="i-introduction-to-redux-in-flutter" class="heading">I. Introduction to Redux in Flutter&lt;a href="#i-introduction-to-redux-in-flutter" aria-labelledby="i-introduction-to-redux-in-flutter">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Inspired by the unidirectional data flow model, Redux allows you to centralize the application&amp;rsquo;s state and modify it through clear, predictable, and testable actions.&lt;/p>
&lt;p>The core of Redux is based on three concepts:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Store&lt;/strong>: the global state.&lt;/li>
&lt;li>&lt;strong>Action&lt;/strong>: an event describing a change.&lt;/li>
&lt;li>&lt;strong>Reducer&lt;/strong>: a function that transforms the state based on the action.&lt;/li>
&lt;/ul>
&lt;p>The goal of this article is to understand &lt;strong>how to use &lt;code>dispatch&lt;/code> with Redux in Flutter&lt;/strong>, with a simple, educational, and rigorous approach.&lt;/p></description></item><item><title>Flutter Hot Reload: Why Is It So Fast?</title><link>https://blog-dev.simpleenough.net/blog/hotreload/</link><pubDate>Mon, 19 May 2025 13:45:30 +0200</pubDate><guid>https://blog-dev.simpleenough.net/blog/hotreload/</guid><description>&lt;h2 id="i-what-is-hot-reload-in-flutter" class="heading">I. What Is Hot Reload in Flutter?&lt;a href="#i-what-is-hot-reload-in-flutter" aria-labelledby="i-what-is-hot-reload-in-flutter">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>&lt;strong>Hot reload&lt;/strong> is a Flutter feature that allows developers to quickly reload modified code in a running app without a full restart. This operation retains the current app state, unlike a traditional restart.&lt;/p>
&lt;p>&lt;strong>Key benefits:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Saves time when developing UIs.&lt;/li>
&lt;li>Maintains state: ideal for testing changes without re-navigating.&lt;/li>
&lt;li>Shorter development cycles.&lt;/li>
&lt;/ul>
&lt;p>Flutter supports hot reload thanks to the Dart engine architecture, which allows &lt;strong>dynamic code injection&lt;/strong> into a running application.&lt;/p></description></item><item><title>Flutter for True Beginners: What It Is, What It’s For, and How to Try It</title><link>https://blog-dev.simpleenough.net/blog/flutterstart/</link><pubDate>Mon, 12 May 2025 10:10:48 +0200</pubDate><guid>https://blog-dev.simpleenough.net/blog/flutterstart/</guid><description>&lt;h2 id="i-what-is-flutter" class="heading">I. What is Flutter?&lt;a href="#i-what-is-flutter" aria-labelledby="i-what-is-flutter">
&lt;!-- &lt;i class="fas fa-link anchor">&lt;/i> -->
 &lt;svg class="svg-inline--fa fas fa-link anchor" fill="currentColor" aria-hidden="true" role="img" viewBox="0 0 640 512">&lt;use href="#fas-link">&lt;/use>&lt;/svg>&amp;nbsp;
 &lt;/a>
&lt;/h2>
&lt;p>Flutter is an &lt;strong>open-source framework&lt;/strong> developed by Google, designed to build &lt;strong>native user interfaces&lt;/strong> for &lt;strong>Android&lt;/strong>, &lt;strong>iOS&lt;/strong>, &lt;strong>Web&lt;/strong>, and &lt;strong>desktop&lt;/strong> from a &lt;strong>single codebase&lt;/strong>. It uses the &lt;strong>Dart&lt;/strong> language and allows developers to build smooth, high-performance, and visually appealing apps.&lt;/p>
&lt;p>Flutter stands out thanks to its integrated rendering engine and ability to display animations at 60 fps or higher. It doesn&amp;rsquo;t rely on native platform UI components, which ensures &lt;strong>visual consistency&lt;/strong> across platforms.&lt;/p></description></item></channel></rss>