<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Art-Hackers</title>
    <description>The latest articles on DEV Community by Art-Hackers (@team_art).</description>
    <link>https://dev.to/team_art</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3742108%2F7ed545a9-1687-4cd9-986d-a96b64aa19ee.png</url>
      <title>DEV Community: Art-Hackers</title>
      <link>https://dev.to/team_art</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/team_art"/>
    <language>en</language>
    <item>
      <title>Artemis: The flask of Python GUI development</title>
      <dc:creator>Art-Hackers</dc:creator>
      <pubDate>Sat, 29 Aug 2026 15:26:33 +0000</pubDate>
      <link>https://dev.to/team_art/artemis-the-flask-of-python-gui-development-45fe</link>
      <guid>https://dev.to/team_art/artemis-the-flask-of-python-gui-development-45fe</guid>
      <description>&lt;p&gt;Building cross-platform apps in Python has traditionally meant choosing between heavy frameworks, messy template setups, or dealing with a massive wall of boilerplate before writing a single line of business logic. If you've ever wished for something as streamlined for desktop, mobile, and web GUI development as Flask is for the web, &lt;a href="https://github.com/Art-Hackers/Artemis/tree/main" rel="noopener noreferrer"&gt;Artemis&lt;/a&gt; is worth keeping on your radar.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Artemis?
&lt;/h2&gt;

&lt;p&gt;Built on top of &lt;a href="https://github.com/flet-dev/flet" rel="noopener noreferrer"&gt;Flet&lt;/a&gt; (which powers Flutter under the hood), &lt;a href="https://github.com/Art-Hackers/Artemis/tree/main" rel="noopener noreferrer"&gt;Artemis&lt;/a&gt; acts as a batteries-included layer designed to cut out repetitive setup. Instead of manually wiring controls, managing state architectures, and rebuilding project structures from scratch every time, Artemis bundles them into a clean set of plain functions and intuitive helpers.&lt;/p&gt;

&lt;p&gt;Running an Artemis app opens a native-feeling desktop window—not a webview—complete with Material 3 color schemes, correct typography, and modern rounded controls right out of the box. Because it maps down to Flutter, you can target Android, iOS, Windows, macOS, Linux, and the Web using the exact same codebase.&lt;/p&gt;




&lt;h2&gt;
  
  
  Quick Setup &amp;amp; Hello World
&lt;/h2&gt;

&lt;p&gt;Getting started takes just a quick pip installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;artemis-ui
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Here is what a complete, interactive app looks like in just a few lines:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;artemis&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;art&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;art&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;App&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;theme&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;ocean&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@app.page&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;/&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;home&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;page&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;art&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
        &lt;span class="n"&gt;art&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Title&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hello, Artemis&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
        &lt;span class="n"&gt;art&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Button&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Say hi&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;on_click&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toast&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hi!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)),&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;center&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;run&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Key Features That Save Time
&lt;/h2&gt;

&lt;p&gt;Material 3 Theming: Choose from 31 built-in color palettes or manually configure surface, background, text, and accent colors with automatic light and dark mode handling.&lt;/p&gt;

&lt;p&gt;Real App Navigation: Includes a genuine back-stack rather than simple page swapping. It handles automatic back arrows, hardware/browser back buttons, route parameters, guards, redirect rules, bottom tab bars, and side drawers.&lt;/p&gt;

&lt;p&gt;State Management Variants: Features standard reactive states, persistent states (art.PersistentState) that survive app restarts, and async states (art.AsyncData) that load data once rather than re-fetching on every re-render.&lt;/p&gt;

&lt;p&gt;Built-in Form Validation: Easily bind fields with built-in rules like art.validators.required() and art.validators.email().&lt;/p&gt;

&lt;p&gt;Zero-Pain CI/CD Scaffolding: Running artemis new "My App" sets up a working starter template alongside a GitHub Actions workflow. This means you can automatically build installable binaries for Android, iOS, and desktop platforms on every push without manually configuring the Android SDK or Xcode locally.&lt;/p&gt;

&lt;h3&gt;
  
  
  Project Scaffolding
&lt;/h3&gt;

&lt;p&gt;To spin up a new project structure and run it locally:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;artemis new &lt;span class="s2"&gt;"My App"&lt;/span&gt;
&lt;span class="nb"&gt;cd&lt;/span&gt; &lt;span class="s2"&gt;"My App"&lt;/span&gt;
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-e&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;
python main.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Optional extras are also available if your project requires charts or automated icon conversion:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="s2"&gt;"artemis-ui[charts]"&lt;/span&gt;
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="s2"&gt;"artemis-ui[icons]"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Mental Model
&lt;/h3&gt;

&lt;p&gt;Artemis keeps things simple by treating pages as pure functions returning control trees. When an interactive element like a button is clicked, the screen re-runs its function to update the view automatically—no manual page.update() calls required.&lt;/p&gt;

&lt;p&gt;If you want to check out practical examples including counter apps, dashboards with live charts, and login flows, you can explore the repository directly over at the &lt;a href="https://github.com/Art-Hackers/Artemis/" rel="noopener noreferrer"&gt;Artemis GitHub Repository&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>flutter</category>
      <category>development</category>
    </item>
  </channel>
</rss>
