<?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 Artur Rios Lab</title><link>https://lab.artur-rios.tech/tags/flutter/</link><description>Recent content in Flutter on Artur Rios Lab</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Thu, 22 Oct 2026 12:30:00 +0000</lastBuildDate><atom:link href="https://lab.artur-rios.tech/tags/flutter/index.xml" rel="self" type="application/rss+xml"/><item><title>Netbank: A Banking System to Learn From</title><link>https://lab.artur-rios.tech/brainstorms/netbank/</link><pubDate>Thu, 22 Oct 2026 12:30:00 +0000</pubDate><guid>https://lab.artur-rios.tech/brainstorms/netbank/</guid><description>&lt;p&gt;A complete banking system, built for learning purposes.&lt;/p&gt;&#10;&lt;h2 id="technology"&gt;Technology&lt;a class="heading-anchor" href="#technology" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;.NET on the back end&lt;/li&gt;&#10;&lt;li&gt;Flutter on the front end&lt;/li&gt;&#10;&lt;li&gt;Heimdall for authentication and authorization&lt;/li&gt;&#10;&lt;li&gt;PostgreSQL database&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="platforms"&gt;Platforms&lt;a class="heading-anchor" href="#platforms" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Android&lt;/li&gt;&#10;&lt;li&gt;Linux&lt;/li&gt;&#10;&lt;li&gt;Windows&lt;/li&gt;&#10;&lt;li&gt;Web&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="what-a-complete-bank-covers"&gt;What a complete bank covers&lt;a class="heading-anchor" href="#what-a-complete-bank-covers" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;&amp;ldquo;Complete&amp;rdquo; is the part of the idea that needs a boundary. A real bank is&#10;hundreds of systems, so this is a suggestion of what Netbank should cover, chosen&#10;because each part teaches something a CRUD app does not. It moves no real money&#10;and connects to no real bank: every institution outside Netbank is simulated.&lt;/p&gt;</description></item><item><title>Merlin: A Reading Tracker</title><link>https://lab.artur-rios.tech/brainstorms/merlin/</link><pubDate>Thu, 22 Oct 2026 12:00:00 +0000</pubDate><guid>https://lab.artur-rios.tech/brainstorms/merlin/</guid><description>&lt;p&gt;Merlin is an app to keep your readings.&lt;/p&gt;&#10;&lt;h2 id="features"&gt;Features&lt;a class="heading-anchor" href="#features" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Search books from a public database&lt;/li&gt;&#10;&lt;li&gt;Track the books you are reading now, and read on the past&lt;/li&gt;&#10;&lt;li&gt;Write reviews on books&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="platforms"&gt;Platforms&lt;a class="heading-anchor" href="#platforms" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Android&lt;/li&gt;&#10;&lt;li&gt;Web&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;h2 id="technology-stack"&gt;Technology stack&lt;a class="heading-anchor" href="#technology-stack" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;One choice is already made: the app is built with Flutter, which builds the&#10;Android app and the web app from one Dart code base. How Flutter works, and&#10;what it is good and bad at, is covered in&#10;&lt;a href="https://lab.artur-rios.tech/front-end/flutter/"&gt;What Is Flutter?&lt;/a&gt;. What is left to decide is&#10;everything around it: where the books come from, where the readings and&#10;reviews are stored, and how the two platforms see the same library.&lt;/p&gt;</description></item><item><title>Web Apps</title><link>https://lab.artur-rios.tech/infrastructure/infrastructure-web-apps/</link><pubDate>Wed, 21 Oct 2026 17:55:00 +0000</pubDate><guid>https://lab.artur-rios.tech/infrastructure/infrastructure-web-apps/</guid><description>&lt;p&gt;My interactive front ends are Flutter apps, and on the web they are a set of&#10;static files: HTML, JavaScript and WebAssembly. So the container that runs one&#10;is just a web server, small and stateless. Heimdall&amp;rsquo;s web app is the example.&lt;/p&gt;&#10;&lt;table&gt;&#10;&#9;&lt;thead&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Concern&lt;/th&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;th&gt;Choice&lt;/th&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/thead&gt;&#10;&#9;&lt;tbody&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Framework&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Flutter, built for the web&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Build stage&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Debian with a Flutter SDK pinned by version and checksum&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Runtime&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;nginx, unprivileged, with a read-only file system&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Settings&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Compiled in at build time, once per environment&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;API&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Its own origin&amp;rsquo;s &lt;code&gt;/api/&lt;/code&gt;, routed to the API by Traefik&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Health&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;&lt;code&gt;/healthz&lt;/code&gt;&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&#9;&#9;&lt;tr&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Checks&lt;/td&gt;&#10;&#9;&#9;&#9;&#9;&#9;&lt;td&gt;Analysis and tests, and generated code checked in GitHub Actions&lt;/td&gt;&#10;&#9;&#9;&#9;&lt;/tr&gt;&#10;&#9;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id="the-image"&gt;The image&lt;a class="heading-anchor" href="#the-image" aria-label="Link to this section"&gt;&lt;/a&gt;&lt;/h2&gt;&#10;&lt;p&gt;The build stage installs Flutter itself, rather than starting from a community&#10;Flutter image, so the exact SDK version is pinned and its download is checked&#10;against a SHA-256 checksum. It builds as a non-root user, and fetches packages&#10;with &lt;code&gt;--enforce-lockfile&lt;/code&gt;, so the build uses exactly the versions the&#10;repository was tested with:&lt;/p&gt;</description></item><item><title>Angular, React or Flutter? How They Compare and How to Choose</title><link>https://lab.artur-rios.tech/front-end/choosing-a-front-end-framework/</link><pubDate>Tue, 20 Oct 2026 18:00:00 +0000</pubDate><guid>https://lab.artur-rios.tech/front-end/choosing-a-front-end-framework/</guid><description>&lt;p&gt;&amp;ldquo;Angular or React?&amp;rdquo; is one of the most common questions in front-end&#10;development, and &amp;ldquo;or Flutter?&amp;rdquo; is now often added to it. The question sounds&#10;like a choice between three brands of the same product. It is not. Angular is&#10;a complete framework for web applications; React is a library for turning state&#10;into UI, which needs a framework around it to make an application; Flutter is a&#10;toolkit for mobile, desktop, web and embedded apps that does not use the&#10;browser&amp;rsquo;s HTML at all, but draws every pixel itself. Each has been described in&#10;detail in this section: &lt;a href="https://lab.artur-rios.tech/front-end/angular/"&gt;What Is Angular?&lt;/a&gt;,&#10;&lt;a href="https://lab.artur-rios.tech/front-end/react/"&gt;What Is React?&lt;/a&gt; and&#10;&lt;a href="https://lab.artur-rios.tech/front-end/flutter/"&gt;What Is Flutter?&lt;/a&gt;. This article puts them&#10;side by side and ends with a guide to choosing.&lt;/p&gt;</description></item><item><title>What Is Flutter? History, Architecture and How to Build With It</title><link>https://lab.artur-rios.tech/front-end/flutter/</link><pubDate>Tue, 20 Oct 2026 18:00:00 +0000</pubDate><guid>https://lab.artur-rios.tech/front-end/flutter/</guid><description>&lt;p&gt;Most toolkits for building an app on more than one platform make a choice&#10;early on: either they wrap each platform&amp;rsquo;s own buttons, lists and text fields,&#10;or they run the app inside a web view. Flutter does neither. It ships its own&#10;rendering engine inside every app and draws every pixel of the interface&#10;itself, from the text to the scroll bars, on a canvas the operating system&#10;hands it. The same Dart code then runs on Android, iOS, the web, Windows,&#10;macOS and Linux, and on embedded devices through a custom host.&lt;/p&gt;</description></item></channel></rss>