<?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" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ Google Antigravity - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Browse thousands of programming tutorials written by experts. Learn Web Development, Data Science, DevOps, Security, and get developer career advice. ]]>
        </description>
        <link>https://www.freecodecamp.org/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ Google Antigravity - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Tue, 26 May 2026 04:43:41 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/news/tag/google-antigravity/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Learn How AI Agents Are Changing Software Development by Building a Flutter App Using Antigravity and Stitch ]]>
                </title>
                <description>
                    <![CDATA[ Software development has always evolved alongside the tools we build. There was a time when developers wrote everything in assembly language. Then higher-level languages arrived and made it possible t ]]>
                </description>
                <link>https://www.freecodecamp.org/news/learn-how-ai-agents-are-changing-development-by-building-a-flutter-app/</link>
                <guid isPermaLink="false">69b1e4e76c896b0519c9a4bb</guid>
                
                    <category>
                        <![CDATA[ Flutter ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Dart ]]>
                    </category>
                
                    <category>
                        <![CDATA[ AI ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Google Antigravity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ google-stitch  ]]>
                    </category>
                
                    <category>
                        <![CDATA[ flutter-aware ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Atuoha Anthony ]]>
                </dc:creator>
                <pubDate>Wed, 11 Mar 2026 21:55:51 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/uploads/covers/5e1e335a7a1d3fcc59028c64/884f5ad2-55e8-479e-aa2c-1d742d8ff922.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>Software development has always evolved alongside the tools we build.</p>
<p>There was a time when developers wrote everything in assembly language. Then higher-level languages arrived and made it possible to think less about the machine and more about solving problems. Frameworks followed, removing the need to repeatedly implement the same patterns.</p>
<p>Today, we are witnessing another shift, and it is happening faster than many people expected.</p>
<p>Artificial intelligence is beginning to participate directly in the development process.</p>
<p>At the 2026 World Economic Forum in Davos, Anthropic CEO Dario Amodei suggested that AI agents could soon be capable of performing most software engineering tasks end-to-end within six to twelve months.</p>
<p>Around the same time, Spotify’s Chief Technology Officer Gustav Söderström revealed something that sounded even more surprising: some of Spotify’s top developers had not written a single line of code in 2026. AI systems generated the implementations while engineers reviewed and supervised the results.</p>
<p>Large technology companies are already reorganizing around this shift. Fintech company Block recently announced layoffs affecting thousands of employees while simultaneously emphasizing its growing reliance on artificial intelligence in engineering workflows.</p>
<p>For many developers, headlines like these raise an uncomfortable question: is artificial intelligence replacing software developers?</p>
<p>The most accurate answer is that <strong>software development itself is changing</strong>.</p>
<p>Developers are moving away from spending most of their time writing syntax. Instead, they increasingly focus on system design, architectural decisions, and supervising intelligent agents that generate implementations.</p>
<p>Artificial intelligence is becoming the sidekick – but the developer is still the driver.</p>
<p>In this article, you'll explore what this new workflow looks like in practice by building a Flutter application using modern tools: Antigravity, Stitch, Flutter, and Dart</p>
<p>Rather than writing the application manually, we'll guide AI tools to generate the interface and the project architecture for us.</p>
<p>By the end of this guide, you will have built a complete Flutter application for a women’s self-care product store inspired by <strong>International Women’s Day</strong>.</p>
<h2 id="heading-table-of-contents">Table of Contents:</h2>
<ul>
<li><p><a href="#heading-prerequisites">Prerequisites</a></p>
</li>
<li><p><a href="#heading-the-new-role-of-developers-in-an-aidriven-world">The New Role of Developers in an AI-Driven World</a></p>
</li>
<li><p><a href="#heading-what-is-antigravity">What is Antigravity?</a></p>
</li>
<li><p><a href="#heading-understanding-mcp-servers">Understanding MCP Servers</a></p>
</li>
<li><p><a href="#heading-what-is-stitch">What is Stitch?</a></p>
</li>
<li><p><a href="#heading-flutter-and-dart">Flutter and Dart</a></p>
</li>
<li><p><a href="#heading-the-application-we-will-build">The Application We Will Build</a></p>
<ul>
<li><p><a href="#heading-step-1-generating-the-ui-with-stitch">Step 1: Generating the UI with Stitch</a></p>
<ul>
<li><a href="#heading-why-this-prompt-works">Why this prompt works</a></li>
</ul>
</li>
<li><p><a href="#heading-step-2-connecting-stitch-to-antigravity">Step 2: Connecting Stitch to Antigravity</a></p>
</li>
<li><p><a href="#heading-step-3-generating-the-flutter-application">Step 3: Generating the Flutter Application</a></p>
</li>
</ul>
</li>
<li><p><a href="#heading-running-the-application">Running the Application</a></p>
</li>
<li><p><a href="#heading-some-screenshots">Some Screenshots</a></p>
</li>
<li><p><a href="#heading-using-antigravity-skills">Using Antigravity Skills</a></p>
<ul>
<li><a href="#heading-how-to-use-stitch-skills-in-antigravity">How to use Stitch Skills in Antigravity</a></li>
</ul>
</li>
<li><p><a href="#heading-conclusion">Conclusion</a></p>
</li>
<li><p><a href="#heading-references">References</a></p>
</li>
</ul>
<h2 id="heading-prerequisites">Prerequisites</h2>
<p>Before beginning, make sure your development environment is ready.</p>
<p>You should have Flutter installed and working on your machine. Running <code>flutter doctor</code> should confirm that your environment is properly configured. Since Dart is bundled with Flutter, verifying your Dart installation using <code>dart --version</code> is also recommended.</p>
<p>You will also need access to Antigravity, the agent-based development environment we will use later in this tutorial. You should also create a Stitch account, which will allow you to generate the interface layout for your application.</p>
<p>Although the workflow in this tutorial relies heavily on artificial intelligence, having a basic understanding of Flutter architecture will make the process easier to follow and understand. Concepts like Clean Architecture and state management patterns such as BLoC will appear in the generated code.</p>
<h2 id="heading-the-new-role-of-developers-in-an-ai-driven-world">The New Role of Developers in an AI-Driven World</h2>
<p>To understand why tools like Antigravity and Stitch are becoming important, it helps to consider how the role of developers has evolved over time.</p>
<p>In the earliest days of computing, programming meant giving extremely detailed instructions to the machine. Developers controlled memory locations, registers, and hardware operations directly.</p>
<p>Higher-level programming languages later made development more productive by abstracting away many hardware concerns. Frameworks further improved efficiency by providing reusable components and architectural patterns.</p>
<p>Artificial intelligence introduces yet another level of abstraction.</p>
<p>Instead of manually constructing every function and interface, developers can now describe systems in natural language. AI tools interpret those descriptions and generate large portions of the implementation automatically.</p>
<p>This shift doesn't remove the need for developers. Instead, it changes what developers spend most of their time doing.</p>
<p>When using AI tools, developers increasingly focus on designing systems, defining constraints, reviewing generated implementations, and ensuring that applications behave correctly in real-world conditions.</p>
<p>In many ways, the job is becoming less about writing code and more about <strong>orchestrating intelligent systems.</strong></p>
<p>This is exactly the type of workflow platforms like Antigravity are designed to support.</p>
<h2 id="heading-what-is-antigravity">What is Antigravity?</h2>
<p>Antigravity is an AI-powered development platform built for what is often described as agentic software development.</p>
<p>Traditional AI coding assistants work by suggesting small pieces of code inside your editor. Antigravity takes a different approach. Instead of assisting with individual lines of code, it allows autonomous agents to execute entire development workflows.</p>
<p>These agents can interpret requirements, plan implementations, generate code, run tests, and verify results. Developers remain in control of the process, but much of the repetitive work is handled automatically.</p>
<p>The platform integrates deeply with the developer environment. Agents can read project files, run terminal commands, inspect application behavior, and interact with external services.</p>
<p>This capability allows AI to function less like a suggestion engine and more like a collaborative engineer working alongside you. You can find more information on <a href="https://antigravity.google/">https://antigravity.google/</a></p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/c96cdee2-4483-4ad9-b6eb-026ab853387d.gif" alt="Google’s Antigravity IDE - credit: Nagaraj" style="display:block;margin:0 auto" width="1200" height="800" loading="lazy">

<h2 id="heading-understanding-mcp-servers">Understanding MCP Servers</h2>
<p>One of the core technologies that enables Antigravity’s workflow is something called the Model Context Protocol, commonly referred to as MCP.</p>
<p>MCP servers act as bridges between AI agents and external systems. They allow agents to interact with tools, APIs, and development environments in a structured way.</p>
<p>Without MCP servers, AI agents would be limited to generating static code. With MCP servers, they can actively interact with the development environment.</p>
<p>For example, an MCP server might allow an agent to read files from a project directory, run build commands, access a database, or fetch design assets from another platform.</p>
<p>In our case, MCP servers will allow Antigravity to communicate with Stitch and generate Flutter code based on the UI we design.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/c3ec72e6-ae0e-4e7d-abe6-5083a28f890f.png" alt="AI Agent, MCP Server and External Tool Architecture Diagram" style="display:block;margin:0 auto" width="1536" height="1024" loading="lazy">

<h2 id="heading-what-is-stitch">What is Stitch?</h2>
<p>Stitch focuses on a different part of the development workflow: user interface design.</p>
<p>Building user interfaces manually can be time-consuming. Developers often spend hours structuring layouts, adjusting spacing, and experimenting with visual hierarchies before achieving a design that feels right.</p>
<p>Stitch simplifies this process by allowing developers to describe an interface using natural language prompts.</p>
<p>The system interprets the prompt and generates a structured layout representing the design. This layout can later be transformed into working code.</p>
<p>Instead of manually arranging every UI component, developers can focus on describing the experience they want users to have. You can find more information on Stitch at <a href="https://stitch.withgoogle.com/">https://stitch.withgoogle.com/.</a></p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/7fe53600-8f1e-486b-b7c9-17d8d79721e6.gif" alt="Google Stitch" style="display:block;margin:0 auto" width="720" height="405" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/20ce163f-05d3-4842-bd08-38a05cd51530.png" alt="Stitch Interface" style="display:block;margin:0 auto" width="1615" height="849" loading="lazy">

<h2 id="heading-flutter-and-dart">Flutter and Dart</h2>
<p>Flutter is an open-source UI framework created by Google that enables developers to build applications for multiple platforms from a single codebase.</p>
<p>Applications built with Flutter can run on Android, iOS, web browsers, and desktop operating systems while maintaining consistent performance and visual behavior.</p>
<p>Flutter uses the Dart programming language, which was designed to support reactive frameworks and high-performance interfaces.</p>
<p>Because Flutter applications follow a consistent structure based on widgets and declarative layouts, the framework works particularly well with AI-driven code generation tools. You can find more information about Flutter and Dart at <a href="https://flutter.dev/">https://flutter.dev/</a> and <a href="https://dart.dev/">https://dart.dev/.</a></p>
<h2 id="heading-the-application-we-will-build">The Application We Will Build</h2>
<p>To demonstrate this workflow, we'll build a mobile application for a women’s self-care product store.</p>
<p>The project is inspired by International Women’s Day, celebrating products focused on wellness and personal care.</p>
<p>The application will contain four primary screens.</p>
<ol>
<li><p>The home screen will display product categories, featured products, and best-selling items.</p>
</li>
<li><p>A wishlist screen will allow users to save products they want to purchase later.</p>
</li>
<li><p>A cart screen will display items added for purchase and allow users to adjust quantities before placing an order.</p>
</li>
<li><p>Finally, a profile screen will provide access to account information and settings.</p>
</li>
</ol>
<p>The interface will use the following color palette:</p>
<pre><code class="language-plaintext">#1A05A2
#8F0177
#DE1A58
#F67D31
</code></pre>
<h3 id="heading-step-1-generating-the-ui-with-stitch">Step 1: Generating the UI with Stitch</h3>
<p>We'll begin by generating the interface design using Stitch.</p>
<p>Open Stitch and create a new prompt. Use the following prompt exactly as written:</p>
<pre><code class="language-plaintext">Create a modern mobile shopping application UI for a women's self-care product store celebrating International Women's Day.

The design should feel elegant, warm, and modern.

Use the following color palette:

#1A05A2
#8F0177
#DE1A58
#F67D31

The application should contain the following screens:

Home Screen:
Display product categories at the top.
Show a best selling products section.
Include a featured products section with large product cards.

Wishlist Screen:
Display saved products.
Allow products to be removed from the wishlist.

Cart Screen:
Display products added to the cart.
Provide quantity controls to increase or decrease item quantity.
Show a total price section.
Include an order button.

Profile Screen:
Display a circular profile image.
Provide menu options including Profile, Settings, Orders, Notifications, and Help.

Use rounded cards, modern spacing, and soft gradient backgrounds.
</code></pre>
<h3 id="heading-why-this-prompt-works">Why this prompt works</h3>
<p>When prompting Stitch, clarity and structure matter more than long descriptions. This prompt is effective because it breaks the request into four clear components:</p>
<p><strong>1. Context and Theme</strong><br>The opening line defines the purpose of the app (a women's self-care shopping app celebrating International Women's Day). This helps Stitch generate visuals that match the tone and audience.</p>
<p><strong>2. Visual Direction</strong><br>The prompt explicitly defines the design style (elegant, warm, modern) and provides a specific color palette, which guides the AI toward a cohesive visual identity.</p>
<p><strong>3. Screen Structure</strong><br>Instead of asking for a generic app, the prompt clearly lists the required screens (Home, Wishlist, Cart, Profile) and what each screen should contain. This ensures the generated UI is closer to a real product rather than just a concept.</p>
<p><strong>4. UI Design Details</strong><br>Small design instructions like rounded cards, modern spacing, and soft gradient backgrounds help the AI produce a polished interface instead of a basic wireframe.</p>
<p>The key idea when prompting Stitch is to think like a product designer: describe the <em>purpose</em>, the <em>screens</em>, and the <em>visual style</em>. This gives the AI enough structure to generate a realistic and usable UI.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/09c22c56-a628-4c30-8f7f-3397309fd92d.png" alt="Stitch with our prompt" style="display:block;margin:0 auto" width="1684" height="873" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/84df0a0b-a483-4757-adbe-a72421db60f8.png" alt="Stitch loading design state" style="display:block;margin:0 auto" width="1886" height="958" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/35486195-2962-4a15-8573-8ad28ede1825.png" alt="Stitch Design generated" style="display:block;margin:0 auto" width="1623" height="951" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/451d687f-93f0-4c71-94dc-14348d16d487.png" alt="Generated Design on Stitch" style="display:block;margin:0 auto" width="1087" height="906" loading="lazy">

<p>Once Stitch finishes generating the design, it doesn’t lock you into a single workflow. Instead, it gives you multiple export paths depending on how you want to continue building your product. This flexibility is one of the most powerful aspects of Stitch, because it allows the generated design to move seamlessly between design tools, development environments, and AI agents.</p>
<p>At this stage, you also retain full control over the design. Every component generated by Stitch can be edited, rearranged, or refined before moving to the next step. You can adjust layouts, update color styles, modify text, or restructure entire sections of the interface. Think of the generated design as a strong starting point rather than a fixed output.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/8aa4196a-282b-4771-a2f1-79b7a03e5105.png" alt="Edit Screenshot in Stitch" style="display:block;margin:0 auto" width="1440" height="810" loading="lazy">

<p>Stitch provides several export options that allow you to continue development in different environments.</p>
<p>One option is to move directly into <strong>AI Studio</strong>. This allows you to begin building the application immediately using AI-assisted development workflows. In this environment, the generated design becomes the foundation for the application structure, allowing you to iterate quickly while AI tools help translate the interface into working code.</p>
<p>Another option is exporting the design to <strong>Figma</strong>. When exported as a Figma file, the layout becomes a fully editable design system inside Figma. Every component, frame, and layout element can be adjusted using standard Figma tools.</p>
<p>Designers can refine spacing, typography, and interaction states, while developers can inspect the design specifications and collaborate with the design team before implementation begins. This makes it particularly useful in teams where design and development responsibilities are separated.</p>
<p>Stitch also supports exporting the project for use with <strong>Jules</strong>, another environment focused on AI-assisted workflows. This option allows the generated design to become part of a broader automated development pipeline where AI agents can interpret and transform the design into application code.</p>
<p>If you prefer working locally, Stitch also allows you to download the generated project as a ZIP file. This provides all the design assets and structured files that were created during generation, making it possible to integrate them manually into your development environment or version control system.</p>
<p>Another quick option is copying the generated output directly to your clipboard. This is useful when you want to paste the layout or prompt into another tool or environment without downloading additional files.</p>
<p>Finally, Stitch provides an option to export through MCP, which stands for Model Context Protocol. When using this option, Stitch prepares a prompt specifically designed to be used by an AI agent through the <strong>Stitch MCP server</strong>. This allows tools like Antigravity, or any other agentic IDE that supports MCP, to access the generated layout and automatically convert it into working application code.</p>
<p>Stitch even provides the prompt that should be used when sending the design to the agent, making the transition between design generation and code generation extremely smooth.</p>
<p>Each of these export options supports a slightly different workflow, but they all share the same goal: allowing the generated design to move easily from concept to implementation while still giving developers and designers the freedom to modify anything they want along the way. For this guide, we'll be using the MCP method with Antigravity.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/e0244b62-d028-4e6a-81b9-ea12cf29966e.png" alt="Export options in Stitch" style="display:block;margin:0 auto" width="1920" height="960" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/fdecfa93-4fe2-4c97-bff6-df14a8e4b0cc.png" alt="Export options in Stitch" style="display:block;margin:0 auto" width="1534" height="910" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/9ce2072b-6b2f-4709-9dec-ac7fb76a6e4c.png" alt="Stitch MCP Export Setup" style="display:block;margin:0 auto" width="1845" height="953" loading="lazy">

<h3 id="heading-step-2-connecting-stitch-to-antigravity">Step 2: Connecting Stitch to Antigravity</h3>
<p>Next, we'll have to open Antigravity, create a directory, and authenticate using Google.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/3f54afb4-5e74-4270-8df3-4a2e20e40478.png" alt="Antigravity IDE" style="display:block;margin:0 auto" width="1835" height="1014" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/4d57b801-0c99-4a6e-b3a7-b81b78df99f9.png" alt="Auth Flow - Antigravity" style="display:block;margin:0 auto" width="1386" height="1011" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/542d59aa-c1e0-4933-859a-026d6723db26.png" alt="Authentication success, Antigravity" style="display:block;margin:0 auto" width="1804" height="847" loading="lazy">

<p>Next, we will enable the Stitch MCP server inside Antigravity (Dart is already installed).</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/52d0c2cf-397b-4eb8-bf61-686c56efadf4.png" alt="Stitch MCP server screenshot" style="display:block;margin:0 auto" width="1854" height="831" loading="lazy">

<p>Open the MCP configuration panel and enable the Stitch integration. When prompted, provide your Stitch API key.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/9e29a959-84cc-40bd-b467-c4a545aad75b.png" alt="Antigravity Stitch MCP Server API key setup" style="display:block;margin:0 auto" width="1840" height="904" loading="lazy">

<h3 id="heading-getting-your-stitch-api-key">Getting Your Stitch API Key</h3>
<p>To generate an API key, click on the profile icon and on Stitch Settings, navigate to the API section. Create a new key and copy it into the MCP configuration panel.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/8db94c11-8300-454e-addb-5529c97308e9.png" alt="Stitch Menu to get to Settings Screenshot" style="display:block;margin:0 auto" width="1189" height="834" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/ac03e793-8ca8-4287-a754-d4635c20bd9a.png" alt="Stitch API screenshot" style="display:block;margin:0 auto" width="1311" height="978" loading="lazy">

<h3 id="heading-step-3-generating-the-flutter-application">Step 3: Generating the Flutter Application</h3>
<p>Now that Antigravity can access the Stitch layout, we can generate our Flutter project. It will be worth it for us to install Flutter and Dart extensions as well.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/fd0ece04-9246-4c64-af15-504b84bf6bfc.png" alt="Flutter extension image" style="display:block;margin:0 auto" width="1839" height="837" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/c5f4be5c-e054-44c0-b1ea-c892d7f0cbbf.png" alt="Dart extension image" style="display:block;margin:0 auto" width="1836" height="823" loading="lazy">

<p>Now that we have these installed, we can enter the following prompt in Antigravity:</p>
<pre><code class="language-plaintext">## Stitch Instructions

Get the images and code for the following Stitch project's screens:

## Project
Title: User Profile
ID: 2811186611775892217

## Screens:
1. User Profile
    ID: 1768c58e5abb4c328a1837437d83875c

2. Self-Care Home Screen
    ID: 41494ba340bf4d7b8df12112116645ce

3. Shopping Cart
    ID: e107a7a9fd034f83a302851021bbc468

4. Your Wishlist
    ID: ecc8e0e7cea3437c939e04ceeb645b61

Use a utility like `curl -L` to download the hosted URLs.

Use the UI layout generated from Stitch and build a Flutter application using Dart.

The project should follow Clean Architecture and separate presentation, domain, and data layers.

Use the BLoC pattern for state management.

Ensure UI components are separated from business logic and follow a clean architecture project structure.
</code></pre>
<p>This prompt is intentionally very structured, which is important when working with AI development environments like Antigravity.</p>
<p>There are a few key things happening here:</p>
<p><strong>1. It references the Stitch export directly</strong></p>
<p>The prompt begins with the Stitch project ID and screen IDs, which allows Antigravity to retrieve the design layout and images generated earlier.</p>
<p><strong>2. It defines the architecture upfront</strong></p>
<p>Instead of generating a quick prototype, we explicitly request Clean Architecture. That means:</p>
<ul>
<li><p><strong>Presentation layer</strong>: UI + BLoC</p>
</li>
<li><p><strong>Domain layer</strong>: business rules and use cases</p>
</li>
<li><p><strong>Data layer</strong>: models and repositories</p>
</li>
</ul>
<p>This produces a much more maintainable Flutter codebase.</p>
<p><strong>3. It controls state management</strong></p>
<p>We explicitly instruct the system to use flutter_bloc, ensuring predictable state updates for cart, wishlist, and home data.</p>
<p>These details prevent the AI from generating only UI skeletons and instead produce a working application structure.</p>
<p>When prompting Antigravity (or any AI coding system), think like a technical lead writing a project specification. The more clearly you define architecture, dependencies, and expected behavior, the closer the generated project will be to production-ready code. You can go as low as prompting it on how it can handle routing, network images, using reusable widgets, the cart logic, mock product data and other things.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/5d99886e-6409-47fd-8580-d62b7f208dd1.png" alt="Antigravity IDE with prompt" style="display:block;margin:0 auto" width="1846" height="892" loading="lazy">

<p>For the Conversation mode, I'm using <strong>Planning mode</strong>.</p>
<p>When starting a new Agent conversation, you can choose between multiple modes:</p>
<ul>
<li><p>Planning: Agent can plan before executing tasks. Use for deep research, complex tasks, or collaborative work. In this mode, the Agent organizes its work in task groups, produces Artifacts, and takes other steps to thoroughly research, think through, and plan its work for optimal quality.</p>
</li>
<li><p>Fast: Agent will execute tasks directly. Use for simple tasks that can be completed faster, such as renaming variables, kicking off a few bash commands, or other smaller, localized tasks. This is helpful for when speed is an important factor, and the task is simple enough that there is low worry of worse quality.</p>
</li>
</ul>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/2025fafc-a4d3-495f-96a1-8542d9c8c415.png" alt="Antigravity IDE with conversation mode screenshot" style="display:block;margin:0 auto" width="1844" height="1013" loading="lazy">

<p>For the model, I’ll be using <strong>Gemini 3.1 Pro (High)</strong>, which provides maximum performance and accuracy for generating code, handling complex tasks, and interpreting prompts.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/4677f205-36e8-41d8-9679-af26a55f13d2.png" alt="Antigravity IDE with model selection screenshot" style="display:block;margin:0 auto" width="1851" height="900" loading="lazy">

<p>Antigravity generates a list of tasks it will perform to build the application. You can review each task and add comments, and it will update them accordingly. Think of it as a clear, step-by-step roadmap of what the agent is going to do and this different for each project or workflow as it depends on what it needs to do.</p>
<p><strong>For this project, Antigravity generated this list of tasks:</strong></p>
<ul>
<li><p>Fetch screen data and code from Stitch project</p>
</li>
<li><p>Initialize/Verify Flutter project <code>care_app</code></p>
</li>
<li><p>Setup Clean Architecture layers (<code>domain</code>, <code>data</code>, <code>presentation</code>)</p>
</li>
<li><p>Download images locally using <code>curl</code></p>
</li>
<li><p>Integrate generated UI code into Presentation Layer</p>
</li>
<li><p>Setup BLoC pattern for State Management</p>
</li>
<li><p>Integrate Clean Architecture pieces together</p>
</li>
<li><p>Verify functionality and build</p>
</li>
</ul>
<p>It's also good to say that if you are doing this and Antigravity notices you don't have Flutter, Dart, Java, or Android SDK installed, it will first start from there by installing the prerequisites before moving into creating the app.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/38301b07-2d99-4fbd-b32f-787d75422e88.png" alt="Task List screenshot" style="display:block;margin:0 auto" width="1835" height="907" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/fd436cea-a779-444d-bbbd-7ab8f75ece74.png" alt="Leave a comment screenshot" style="display:block;margin:0 auto" width="1162" height="664" loading="lazy">

<p>Once the review and adjustments are complete, Antigravity will prompt you for confirmation before proceeding with the implementation. At this point, it will ask for approval to generate the Flutter application targeting both Android and iOS based on the finalized implementation plan.</p>
<p>When you are satisfied with the structure and ready to proceed, you can simply click Run to allow the agent to begin creating the application.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/d725e8aa-6726-4e8d-b2ef-fe6227acf64e.png" alt="Screenshot of Antigravity seeking permission to create Flutter project for Android and iOS" style="display:block;margin:0 auto" width="1840" height="987" loading="lazy">

<p>At this stage, Antigravity will request permission to communicate with Stitch to download all the assets from the generated design. Once you grant permission, it runs the necessary command to fetch the files.</p>
<p>When this process completes, Stitch creates a directory called <code>stitch_data</code>. This directory organizes all the design assets and pages from your project. Each screen or page in your application is saved as a separate <code>.HTML</code> file, making it easy to inspect, edit, or reference individual layouts.</p>
<p>Inside <code>stitch_data</code>, you’ll typically find one <code>.HTML</code> file per screen, such as <code>screen1_profile.html</code>, <code>screen2_home.html</code>, <code>screen3_cart.html</code>, and <code>screen4_wishlist.html</code>. Each file contains the layout structure, design elements, and styling that the AI will later use to generate the corresponding Flutter code.</p>
<p>This step ensures that all design assets are locally available and that the AI has everything it needs to accurately translate the visual layout into functional application components.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/022a0520-c397-4097-afe0-fb1b6b36167e.png" alt="Antigravity project task list" style="display:block;margin:0 auto" width="1842" height="998" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/9462cf63-ffab-4f6b-9d96-7fb190fbf7dc.png" alt="Screenshot of permission to obtain stitch assets" style="display:block;margin:0 auto" width="1840" height="917" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/4c2f5ce0-2aee-4c82-828a-94a14b485cca.png" alt="Screenshot of stitch_data" style="display:block;margin:0 auto" width="1543" height="992" loading="lazy">

<p>After generating the initial response, Antigravity will typically produce an implementation document for you to review before it begins building the application.</p>
<p>This document outlines the proposed structure the agent plans to follow in order to implement the app based on your prompt. It usually includes the architectural approach, the folder structure, the technologies and patterns that will be used, and how different parts of the application will interact with each other.</p>
<p>Think of this document as a blueprint for the project rather than the final implementation.</p>
<p>At this stage, you have the opportunity to carefully review the plan before any code is generated. You can examine how the agent intends to structure the Flutter project, how it plans to separate UI from business logic, and how elements like state management, navigation, and data flow will be handled.</p>
<p>If something does not align with your expectations, you can provide feedback directly within the document. You can add comments, suggest structural changes, request improvements, or clarify parts of the implementation you want handled differently. The agent will then incorporate those adjustments and update the plan accordingly.</p>
<p>It is important to remember that this document is <strong>not a final draft</strong>. It is meant to be iterative. You can refine it as many times as necessary, and the agent will continuously readjust the plan based on your feedback.</p>
<pre><code class="language-markdown"># Implementation Plan: Clean Architecture Flutter App

This plan guides the implementation of the 4 Stitch screens into a Flutter application using Clean Architecture and BLoC.

## Proposed Architecture
The application will be divided into the following layers:
1. Core: Contains themes, routing, and shared utilities.
2. Domain: Contains entities User, Product, CartItem) and abstract repository interfaces.
3. Data: Contains models (data transfer objects) and mock implementations of the repositories.
4. Presentation: Contains BLoCs (for state management) and UI Pages.

## Proposed Changes

### 1. Dependencies Setup
Update pubspec.yaml to include:
- flutter_bloc
- equatable
- google_fonts (for "Plus Jakarta Sans")
- material_symbols_icons (for the icons used in the HTML)

### 2. Core Structure &amp; Theme
#### [NEW] lib/core/theme.dart
Define colors #e31651, #8F0177, #f8f6f6, etc.) and typography based on the Stitch Tailwind config.
#### [NEW] lib/core/app_router.dart
Define routes for the bottom navigation structure and individual pages.

### 3. Domain &amp; Data Layers
#### [NEW] lib/domain/entities/...
Create User, Product, and CartItem.
#### [NEW] lib/data/repositories/...
Create mock repositories that return static data required to populate the UI (e.g., Sarah Mitchell profile data).

### 4. Presentation Layer (Pages &amp; BLoCs)
#### [NEW] lib/presentation/pages/main_scaffold.dart
A scaffold with the bottom navigation bar connecting Home, Saved (Wishlist), Cart, Deals, and Profile.
#### [NEW] lib/presentation/blocs/...
- ProfileBloc
- HomeBloc
- CartBloc
- WishlistBloc

#### [NEW] lib/presentation/pages/profile_page.dart
Translate [screen1_profile.html](file:///Users/atuoha/Documents/Flutter_Apps/care_app/stitch_data/screen1_profile.html) into a Flutter Widget. Use NetworkImage for the profile photo.
#### [NEW] lib/presentation/pages/home_page.dart
Translate screen2_home.html into a Flutter Widget.
#### [NEW] lib/presentation/pages/cart_page.dart
Translate screen3_cart.html into a Flutter Widget.
#### [NEW] lib/presentation/pages/wishlist_page.dart
Translate screen4_wishlist.html into a Flutter Widget.

## Verification Plan

### Automated Tests
- Run flutter analyze to ensure code is clean and adheres to Dart best practices.
- Run flutter test (if we add basic widget/unit tests for BLoC logic).

### Manual Verification
- We will ask the user to run the app using flutter run on an iOS Simulator or Android Emulator.
- Verify that the bottom navigation bar works and all 4 screens match the structural layout and aesthetics of the generated Stitch HTML mockups.
</code></pre>
<p>This review stage is particularly valuable because it allows you to guide the architecture before code generation begins. Instead of correcting issues after the project is built, you shape the direction early and ensure the generated application follows the standards and structure you expect.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/622d9bc4-faab-4743-ac6d-13857f507070.png" alt="Screenshot of implementation plan" style="display:block;margin:0 auto" width="1850" height="995" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/6152c7f4-edec-4e70-b1eb-9f0a3d2f8a9e.png" alt="Screenshot of implementation plan" style="display:block;margin:0 auto" width="1838" height="985" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/08515fb9-7011-469b-8a54-427fab35ab65.png" alt="Screenshot of implementation plan with edit section" style="display:block;margin:0 auto" width="1846" height="979" loading="lazy">

<p>Next, Antigravity will request permission to set up the domain and install dependencies. Once granted, it begins implementing the Flutter project following Clean Architecture.</p>
<p>During this step, it sets up the folder structure, separating presentation, domain, and data layers, and installs all the required dependencies so the project is ready for development. This creates a solid foundation for the application, ensuring that the code is well-organized, maintainable, and follows best practices.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/3a5d1d66-4c83-42ac-969d-15355b57355a.png" alt="Screenshot of implementation plan2" style="display:block;margin:0 auto" width="3390" height="1872" loading="lazy">

<p>While all of this is happening, Antigravity keeps track of progress by ticking off each task as it is successfully completed. This provides a live view of what has been done and what is still pending, so you can monitor the workflow step by step.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/425d683f-491c-4510-b602-b6374f079da0.png" alt="Screenshot of task list " style="display:block;margin:0 auto" width="2136" height="1192" loading="lazy">

<p>Next, Antigravity moves on to creating each individual file in the project. For every file it generates, you are given the option to Accept or Reject it. This allows you to review the output in real-time and ensure that every piece of code meets your expectations before it becomes part of the project.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/64242ab4-8b08-4f7b-9338-aab8174f3715.png" alt="Screenshot of Antigravity with a populated code " style="display:block;margin:0 auto" width="3448" height="1882" loading="lazy">

<p>As the agent works through each setup, it will gradually create the project files. Don’t be alarmed by any red lines in the editor, they usually appear because some referenced files haven’t been generated yet, but the agent will create them in the next steps.</p>
<p>One important thing to keep in mind is the model you’re using, as its ability to handle complex tasks directly affects how smoothly the project is generated and how accurately the files are implemented.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/690ed197-e701-4b63-9228-15b493355017.png" alt="Generated code sample" style="display:block;margin:0 auto" width="3356" height="1864" loading="lazy">

<p>Once all files are generated, Antigravity will request permission to run <code>flutter analyze</code>. This process checks the project for syntax errors, unused imports, and other potential issues. After the analysis, the agent generates a walkthrough of all changes, summarizing what was created, modified, or adjusted in the project, and at this point, you can also review the walkthrough by adding comments to places you think can be made better or changed.</p>
<p>For our workflow, Antigravity generated a Walkthrough file with this content:</p>
<details>
<summary>Walkthrough content</summary>
<p>We have successfully translated the 4 provided Stitch screens into a Flutter application using Clean Architecture and the BLoC pattern for state management. This document provides a summary of the accomplishments.</p><h2 id="heading-application-structure"><strong>Application Structure</strong></h2><p>The code is organized into three primary layers, ensuring a clean separation of concerns and a testable architecture.</p><h3 id="heading-1-domain-layer"><strong>1. </strong><code>domain</code><strong> Layer</strong></h3><ul><li><p><strong>Entities</strong>: Created core business objects including</p><p><strong>User</strong>,</p><p><strong>Product</strong>, and</p><p><strong>CartItem</strong> located in <code>lib/domain/entities/</code>.</p></li><li><p><strong>Repositories</strong>: Defined the abstract interface <code>AppRepository</code> that outlines the contract for data fetching (e.g., <code>getUserProfile()</code>, <code>getFeaturedProducts()</code>).</p></li></ul><h3 id="heading-2-data-layer"><strong>2. </strong><code>data</code><strong> Layer</strong></h3><ul><li><p><strong>Mock Implementation</strong>: Implemented <code>MockAppRepository</code> in <code>lib/data/repositories/mock_app_repository.dart</code> to substitute a remote backend. This repository returns static data that closely resembles the information provided in the original Stitch HTML files.</p></li></ul><h3 id="heading-3-presentation-layer"><strong>3. </strong><code>presentation</code><strong> Layer</strong></h3><ul><li><p><strong>State Management (BLoC)</strong>: Created four BLoCs to manage state seamlessly across the UI:</p><ul><li><p><code>ProfileBloc</code></p></li><li><p><code>HomeBloc</code></p></li><li><p><code>CartBloc</code></p></li><li><p><code>WishlistBloc</code></p></li></ul></li><li><p><strong>UI Pages</strong>: Converted the 4 Stitch screens into Flutter Widgets:</p><ul><li><p><code>profile_page.dart</code>: Displays the user avatar with gradient borders, stats row, and menu items.</p></li><li><p><code>home_page.dart</code>: Contains the horizontal scrollable search/categories, a hero banner showcasing a gradient with a "Shop Now" button, horizontal scrolling featured products, and a grid view for best sellers.</p></li><li><p><code>cart_page.dart</code>: Features a promo banner, individual cart item cards with increment/decrement UI, and a checkout summary section.</p></li><li><p><code>wishlist_page.dart</code>: Incorporates tab filters (All Items/On Sale) and interactive lists displaying wishlist products.</p></li></ul></li><li><p><strong>Navigation Structure</strong>: Created a <code>MainScaffold</code> in <code>lib/presentation/pages/main_scaffold.dart</code> configuring the bottom navigation bar and floating action button exactly as depicted in the designs.</p></li></ul><h3 id="heading-4-core"><strong>4. </strong><code>core</code></h3><ul><li><p><strong>Theme configuration</strong>: Defined a cross-app <code>AppTheme</code> within <code>lib/core/theme.dart</code>, adhering to the primary colors (<code>#E31651</code>), <code>GoogleFonts</code> properties ("Plus Jakarta Sans"), and Dark/Light mode logic dictated by Tailwind configuration from the HTML.</p></li></ul><h2 id="heading-verification"><strong>Verification</strong></h2><ul><li><p>We verified the build and dependency resolution via <code>flutter analyze</code>. The codebase is cleanly structured and robust.</p></li><li><p>All Flutter packages (<code>flutter_bloc</code>, <code>equatable</code>, <code>google_fonts</code>) were dynamically fetched and correctly configured.</p></li></ul><h3 id="heading-next-steps"><strong>Next Steps</strong></h3><p>You can now run the app on an iOS simulator or Android emulator by executing:</p><pre class="not-prose"><code class="language-shell">cd /Users/atuoha/Documents/Flutter_Apps/care_app
</code></pre><p><code>flutter run</code></p><p></p><p></p>
</details>

<p>At this stage, you can also review all the populated files and their code. This is where your role as the driver comes into play: the AI acts as the sidekick, providing a full implementation, while you inspect the code, identify areas for optimization, and make improvements to ensure better performance, cleaner architecture, and minimal bottlenecks.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/d97f46dc-fa0e-405e-a882-dff9dc687b35.png" alt="Generated code sample" style="display:block;margin:0 auto" width="3406" height="1946" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/2e19696e-b268-4284-ab16-b5ef434467c7.png" alt="Walkthrough screenshot" style="display:block;margin:0 auto" width="3422" height="1924" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/2d1e4ef1-d7f8-4b1d-a67a-0deb18fbc230.png" alt="Walkthrough screenshot2" style="display:block;margin:0 auto" width="3406" height="1940" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/cc86f7b0-9e67-4d12-ae6e-ee1e429652db.png" alt="Walkthrough edit screenshot" style="display:block;margin:0 auto" width="2800" height="1942" loading="lazy">

<p>With all tasks completed and checked off, the project is now ready to move forward. The next step is to run the application, which will compile the Flutter code and launch it on your target platform so you can see the fully generated app in action.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/1822c913-5fe8-48f6-869f-9a63224dad42.png" alt="Screenshot of task list completion" style="display:block;margin:0 auto" width="1018" height="498" loading="lazy">

<h2 id="heading-running-the-application">Running the Application</h2>
<p>Once the project has been generated, open the project directory and run:</p>
<pre><code class="language-plaintext">flutter pub get
flutter run
</code></pre>
<p>Alternatively, you can let the agent run the app for you. To run it on Android, you’ll need either an emulator through Android Studio or a simulator through Xcode for iOS.</p>
<p>You can also run the app directly on your physical device. In this case, instruct the agent to bundle the APK (or IPA for iOS) and provide step-by-step instructions on how to install and launch it locally.</p>
<p>For Android:</p>
<ul>
<li><p>Connect your phone via USB (with USB debugging enabled in Developer Options).</p>
</li>
<li><p>Run <code>flutter run</code>, and Flutter will detect the device and install the app directly.</p>
</li>
</ul>
<p>For iOS:</p>
<ul>
<li><p>You’ll need a physical iPhone connected to your Mac.</p>
</li>
<li><p>Trust the computer on your device, and you can run the app through Xcode or Flutter directly.</p>
</li>
</ul>
<p>Without an emulator, simulator, or physical device, you cannot run the app, because Flutter needs a target platform to build and display the interface.</p>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/beb05710-2eb0-44e5-b97a-74a7f303e8b0.png" alt="Flutter run screenshot" style="display:block;margin:0 auto" width="1526" height="992" loading="lazy">

<h2 id="heading-some-screenshots">Some Screenshots</h2>
<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/d6377198-04ab-4a26-b4a8-f91419dd21ca.png" alt="Screenshot of Home screen" style="display:block;margin:0 auto" width="1521" height="1016" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/7e7b2b5b-fa5b-4bbd-ad6b-8dc02a9a7aa9.png" alt="Screenshot of Cart screen" style="display:block;margin:0 auto" width="1550" height="978" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/d21e390f-e441-4675-baee-11e34210ace2.png" alt="Screenshot of Wishlist screen" style="display:block;margin:0 auto" width="1544" height="981" loading="lazy">

<img src="https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/b23237a1-09bd-4d85-9221-84845b0bd69c.png" alt="Screenshot of profile screen" style="display:block;margin:0 auto" width="1551" height="985" loading="lazy">

<p><strong>Generated code on Github:</strong> <a href="https://github.com/Atuoha/care_app">https://github.com/Atuoha/care_app</a>  </p>
<p><strong>Link to Stitch Design:</strong> <a href="https://stitch.withgoogle.com/projects/2811186611775892217">https://stitch.withgoogle.com/projects/2811186611775892217</a></p>
<h2 id="heading-using-antigravity-skills">Using Antigravity Skills</h2>
<p>Antigravity also supports a system called Antigravity Skills, which are extensions that enhance the capabilities of the agent beyond basic project generation. One of the best examples of this is Stitch Skills, which integrates directly into Antigravity to streamline UI generation and automate design workflows.</p>
<p>Stitch Skills allow the agent to interpret UI layouts, generate reusable design components, and automatically structure screens according to your prompts. This is especially useful when building complex applications, as it reduces repetitive work and ensures consistency across your project.</p>
<p>The official Stitch Skills repository is available here:<br><a href="https://github.com/google-labs-code/stitch-skills">https://github.com/google-labs-code/stitch-skills</a></p>
<p>To install Stitch Skills in Antigravity, you can clone the repository using the following command:</p>
<pre><code class="language-bash">npx skills add google-labs-code/stitch-skills --global 
</code></pre>
<p>Once installed, Stitch Skills can be accessed and managed <strong>directly from within Antigravity</strong>. They allow you to:</p>
<ul>
<li><p>Generate reusable UI components that can be used across multiple screens.</p>
</li>
<li><p>Automate layout generation based on prompts from Stitch.</p>
</li>
<li><p>Streamline workflows by having the agent automatically apply design patterns consistently.</p>
</li>
</ul>
<p>Once Stitch Skills are installed in Antigravity, they unlock advanced capabilities for UI generation and workflow automation. Essentially, they allow the agent to take your design prompts or generated layouts and turn them into structured, reusable components automatically.</p>
<p>Here’s what you can do with Stitch Skills after installation:</p>
<ol>
<li><p><strong>Generate Reusable Components:</strong> You can select parts of your design, like a product card, navigation bar, or profile widget, and the skill will create a reusable Flutter component. This means you can replicate it across multiple screens without manually rewriting code.</p>
</li>
<li><p><strong>Automate Layout Structures:</strong> Instead of manually arranging each screen, Stitch Skills can interpret the layout from your Stitch design and automatically create a structured UI hierarchy in your Flutter project. This saves time and ensures consistency.</p>
</li>
<li><p><strong>Apply Design Patterns Consistently:</strong> The skills can enforce styling, spacing, and layout rules across the app, so all screens follow the same design language and visual patterns.</p>
</li>
<li><p><strong>Modify Generated Components:</strong> You can provide instructions to adjust components—for example, change padding, color, or alignment—and the skills will update the corresponding Flutter widgets automatically.</p>
</li>
<li><p><strong>Integrate with MCP Workflows:</strong> When used through Antigravity’s MCP server, Stitch Skills can automatically fetch the latest design assets from Stitch and regenerate or update components without breaking existing code.</p>
</li>
</ol>
<h3 id="heading-how-to-use-stitch-skills-in-antigravity"><strong>How to use Stitch Skills in Antigravity:</strong></h3>
<ul>
<li><p>Open the Skills panel in Antigravity after installation.</p>
</li>
<li><p>Select the specific skill you want to use (e.g., “Generate Reusable Component” or “Build Screen Layout”).</p>
</li>
<li><p>Point it to the layout, screen, or component you want to work on.</p>
</li>
<li><p>Provide optional instructions for adjustments or refinements.</p>
</li>
<li><p>Run the skill, and it will generate the Flutter code or update existing components automatically.</p>
</li>
</ul>
<p>In short, Stitch Skills turn design prompts into actionable code components, making it faster and easier to move from design to fully functional Flutter screens while maintaining control and flexibility.</p>
<p>By using Stitch Skills through Antigravity, you can maximize the efficiency of AI-assisted development while maintaining full control over the design and structure of your application. It’s a prime example of how AI acts as a sidekick, executing repetitive or complex tasks, while you remain the driver guiding the project.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>Artificial intelligence is changing the way software is built, but it is not eliminating the need for developers.</p>
<p>Instead, it is pushing developers toward higher levels of abstraction.</p>
<p>Rather than spending most of their time writing syntax, developers increasingly focus on system design, architecture, and guiding intelligent agents that generate implementations.</p>
<p>Tools like Stitch and Antigravity represent the early stages of this transformation.</p>
<p>They allow developers to translate ideas into interfaces and working applications faster than ever before.</p>
<p>In this new era of development, the most valuable skill is no longer typing code quickly.</p>
<p>It is understanding systems well enough to guide the tools that build them.</p>
<h2 id="heading-references">References</h2>
<p><strong>Anthropic CEO Predicts AI Models May Approach End‑to‑End Engineering Capabilities</strong>  </p>
<p>Yahoo Finance — <em>Anthropic CEO Predicts AI Models Could Handle Most Software Engineering Tasks Within 6 to 12 Months</em><br><a href="https://finance.yahoo.com/news/anthropic-ceo-predicts-ai-models-233113047.html">https://finance.yahoo.com/news/anthropic-ceo-predicts-ai-models-233113047.html</a></p>
<p><strong>Spotify’s Top Developers Have Not Written a Single Line of Code in 2026</strong>  </p>
<p>Yahoo Finance — <em>Spotify CEO Says Top Developers Are Supervising AI‑Generated Code Rather Than Writing It</em><br><a href="https://finance.yahoo.com/news/spotify-ceo-says-top-developers-103101995.html">https://finance.yahoo.com/news/spotify-ceo-says-top-developers-103101995.html</a></p>
<p><strong>Block Announces Layoffs as Part of AI‑Driven Restructuring</strong>  </p>
<p>AP News — <em>Block Layoffs Highlight Industry Shift Toward Artificial Intelligence</em><br><a href="https://apnews.com/article/block-dorsey-layoffs-ai-jobs-18e00a0b278977b0a87893f55e3db7bb">https://apnews.com/article/block-dorsey-layoffs-ai-jobs-18e00a0b278977b0a87893f55e3db7bb</a></p>
<p><strong>Antigravity Agent Modes and Settings Documentation</strong>  </p>
<p>Antigravity Official Documentation<br><a href="https://antigravity.google/docs/agent-modes-settings">https://antigravity.google/docs/agent-modes-settings</a></p>
<p><strong>Antigravity Announcement — Google Developers Blog</strong>  </p>
<p>Google Developers Blog — <em>Build with Google Antigravity: Our New Agentic Development Platform</em><br><a href="https://developers.googleblog.com/build-with-google-antigravity-our-new-agentic-development-platform/">https://developers.googleblog.com/build-with-google-antigravity-our-new-agentic-development-platform/</a></p>
<p><strong>Stitch Skills Repository</strong>  </p>
<p>GitHub — <em>Stitch Skills</em><br><a href="https://github.com/google-labs-code/stitch-skills">https://github.com/google-labs-code/stitch-skills</a></p>
<p><strong>Flutter Documentation</strong><br><a href="http://Flutter.dev">Flutter.dev</a> — <em>Official Flutter Documentation</em><br><a href="https://flutter.dev">https://flutter.dev</a></p>
<p><strong>Dart Documentation</strong><br><a href="http://Dart.dev">Dart.dev</a> — <em>Official Dart Language Documentation</em><br><a href="https://dart.dev">https://dart.dev</a></p>
 ]]>
                </content:encoded>
            </item>
        
            <item>
                <title>
                    <![CDATA[ How to Build an AI-Powered Flutter App with Google Antigravity: A Hands-On Tutorial ]]>
                </title>
                <description>
                    <![CDATA[ As a Flutter developer who’s building a cloud-based ecosystem for digital media lifecycle management, I’m constantly looking for ways to speed up the transition from idea to prototype. In November 2025, Google launched antigravity, a new interactive ... ]]>
                </description>
                <link>https://www.freecodecamp.org/news/build-an-ai-powered-flutter-app-with-google-antigravity/</link>
                <guid isPermaLink="false">695e974f4085b2f621c87405</guid>
                
                    <category>
                        <![CDATA[ AI ]]>
                    </category>
                
                    <category>
                        <![CDATA[ #ai-tools ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Google Antigravity ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Flutter ]]>
                    </category>
                
                    <category>
                        <![CDATA[ gemma ]]>
                    </category>
                
                    <category>
                        <![CDATA[ Gemma3 ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Anna Muzykina ]]>
                </dc:creator>
                <pubDate>Wed, 07 Jan 2026 17:26:39 +0000</pubDate>
                <media:content url="https://cdn.hashnode.com/res/hashnode/image/upload/v1767806742391/846769af-4cbe-482c-b884-8f9ca50d7456.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p>As a Flutter developer who’s building a cloud-based ecosystem for digital media lifecycle management, I’m constantly looking for ways to speed up the transition from idea to prototype.</p>
<p>In November 2025, Google launched <a target="_blank" href="https://antigravity.google/blog/introducing-google-antigravity"><strong>antigravity</strong></a>, a new interactive coding platform that has fundamentally shifted my workflow.</p>
<p>Antigravity has completely <a target="_blank" href="https://www.youtube.com/watch?v=SVCBA-pBgt0&amp;t=2s">changed how fast you can prototype</a> and iterate on projects. Instead of writing boilerplate code or spending hours searching through documentation, you can describe your needs in natural language, review the plan, and let AI agents create, test, and even run the code.</p>
<p>This "coding in the air" approach creates the feeling of working with a very capable junior developer who never tires.</p>
<p>Based on my positive experience, I decided to share my first steps and thoughts about Antigravity. In this hands-on tutorial, we’ll create Water Tracker, a beautiful, modern Flutter app that helps users track their water intake with smart progress visualization and gentle reminders.</p>
<p>We’ll use Antigravity to let AI agents plan, write, test, and show video walkthroughs of your app. This “<a target="_blank" href="https://www.freecodecamp.org/news/how-to-use-vibe-coding-effectively-as-a-dev/">vibe coding</a>” style means that you describe what you want, review plans, and approve changes – all while agents handle the heavy lifting.</p>
<p>The app will feature a <a target="_blank" href="https://www.freecodecamp.org/news/glassmorphism-how-to-create-a-glass-card-in-figma/">glassmorphism</a> design: frosted glass cards, blurred backgrounds, subtle borders, and soft translucency. This will give the app a premium, modern feel that’s both elegant and calming.</p>
<h2 id="heading-heres-what-well-cover">Here's what we'll cover:</h2>
<ul>
<li><p><a class="post-section-overview" href="#heading-prerequisites">Prerequisites</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-understanding-the-antigravity-engine">Understanding the Antigravity Engine</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-prompts-the-key-to-successful-vibe-coding-in-antigravity">Prompts - the Key to Successful Vibe Coding in Antigravity</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-step-1-open-antigravity-and-create-a-workspace">Step 1: Open Antigravity and Create a Workspace</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-step-2-mastering-the-art-of-agentic-prompting">Step 2: Mastering the Art of Agentic Prompting</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-step-3-implement-the-glassmorphic-main-screen">Step 3: Implement the Glassmorphic Main Screen</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-step-4-add-persistence-and-daily-logic">Step 4: Add Persistence and Daily Logic</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-step-5-add-on-device-smart-reminders-with-gemma">Step 5: Add On-Device Smart Reminders with Gemma</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-step-6-final-polish">Step 6: Final Polish</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-antigravity-quota-limit">Antigravity quota limit</a></p>
</li>
<li><p><a class="post-section-overview" href="#heading-conclusion">Conclusion</a></p>
</li>
</ul>
<p>In this tutorial, we will build <strong>Water Tracker</strong>: a modern Flutter app featuring an attractive glassmorphism design. We will use Antigravity’s agentic workflow to handle the heavy lifting, including a circular progress visualization and on-device smart reminders powered by Gemma.</p>
<h2 id="heading-prerequisites">Prerequisites</h2>
<p>To follow along, you’ll need:</p>
<ul>
<li><p>Flutter SDK installed (Flutter doctor should be clean)</p>
</li>
<li><p>Android emulator or physical device</p>
</li>
<li><p>Google Antigravity installed (you can use the free public preview from <a target="_blank" href="https://antigravity.google/">antigravity.google</a>)</p>
</li>
</ul>
<h2 id="heading-understanding-the-antigravity-engine">Understanding the Antigravity Engine</h2>
<p>Before we dive into the code, it is important to understand what is happening under the hood. Unlike standard LLM chat interfaces that simply provide code snippets for you to copy-paste, Google Antigravity is an agentic development platform.</p>
<p>While the core is a familiar AI-powered IDE experience that uses the best of Google’s models, Antigravity is evolving the IDE towards an agent-first future with browser control capabilities, asynchronous interaction patterns, and an agent-first product form factor. Together, all this enables agents to autonomously plan and execute complex, end-to-end software tasks.</p>
<p>It connects to powerful Large Language Models, but it also has "tools" or "skills" that allow it to interact with your file system, run terminal commands like <code>flutter create</code>, and even execute the app in an emulator.</p>
<p>When you send a prompt, the system doesn't just guess the next word. It uses a reasoning loop to plan actions, execute them, and verify the output.</p>
<p>But because these agents can make autonomous decisions, your role shifts from "writer" to "editor and supervisor." You must verify the agents’ plans to ensure they follow best practices and don't introduce security or performance regressions.</p>
<h2 id="heading-prompts-the-key-to-successful-vibe-coding-in-antigravity"><strong>Prompts: the Key to Successful Vibe Coding in Antigravity</strong></h2>
<p>While building my platform, I learned that prompts for Google Antigravity are completely different from regular AI chats or code completers.</p>
<p>Antigravity is <strong>agentic</strong>. It means that AI agents can run commands, create files, launch apps, and test everything autonomously. This power means prompts must be structured like detailed instructions to a very capable junior developer, not short requests.</p>
<p>That's why every prompt in this tutorial follows the same pattern:</p>
<ul>
<li><p><strong>High-level goal + vibe</strong>: I describe the feature and the desired feel (for example, glassmorphism with soft blues, premium and calming).</p>
</li>
<li><p><strong>Detailed requirements in bullets</strong>: Functionality, UX, design, performance, accessibility – everything the agent needs to deliver quality on the first try.</p>
</li>
<li><p><strong>Plan-first safety</strong>: Always include something like, "Before any commands/code: generate a detailed plan artifact (folder tree, dependencies, steps) and ask for approval." This forces the agent to think first and lets me review/correct before anything changes.</p>
</li>
<li><p><strong>Verification request</strong>: Ask for screenshots and video walkthrough artifacts so I can visually check the result.</p>
</li>
<li><p><strong>No roles or fluff</strong>: Use direct, natural language. Agents don't need "You are an expert..." to work well.</p>
</li>
</ul>
<p>This style helps prevent mistakes (so agents can't run wild), ensures consistent premium quality (glassmorphism done right), and creates the relaxed "vibe coding" flow: you can focus on vision, approve plans, and get polished features fast.</p>
<p>Without this structure, agents might skip steps or produce basic results. With it, you get the beautiful, functional app we built together. In this tutorial I’ll share the prompts which I’m using.</p>
<h2 id="heading-step-1-open-antigravity-and-create-a-workspace">Step 1: Open Antigravity and Create a Workspace</h2>
<p>To get started, you’ll need to download and install the Antigravity IDE. It’s important to note that Antigravity is a standalone application, not a plugin or extension for your existing editor.</p>
<p>It’s built as a <strong>fork of Visual Studio Code</strong>, which means the setup is incredibly straightforward. If you have ever used VS Code, the interface will be instantly familiar, and you can even bring over your favorite shortcuts and themes. It functions as a standalone development environment that integrates the editor, terminal, and AI agents into a single window.</p>
<p>Next, open the Agent manager by clicking “Open Agent Manager” (either the button at the top or in the center of the screen, as you can see below):</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766772585000/860da5bb-99f5-4e57-a3ef-18f93d4b6a54.png" alt="Open Agent Manager in Antigravity" class="image--center mx-auto" width="2382" height="1578" loading="lazy"></p>
<p>The panel on the left has an “+ Open Workspace” – just click that to create a new workspace:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766432535748/016d64c0-3869-48f7-860d-0a6b087db01e.png" alt="Click &quot;Open Workspace&quot; to create a new workspace in Antigravity" class="image--center mx-auto" width="3398" height="1934" loading="lazy"></p>
<p>Then go ahead and click “Open New Workspace”:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766432590892/24504fd9-e621-4ecd-b6d5-7d99ac0fd14a.png" alt="Open the workspace by clicking &quot;Open New Workspace&quot;" class="image--center mx-auto" width="3372" height="1340" loading="lazy"></p>
<p>Then just name it <code>water_tracker</code> and create it:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766432640664/3d9a3522-6199-4659-a62d-ec199c87be2e.png" alt="Name and create the workspace" class="image--center mx-auto" width="3358" height="1912" loading="lazy"></p>
<p>Now you have a clean workspace ready for prompts:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766432668236/e0df1845-6012-4732-97da-f45135d41680.png" alt="Workspace is now ready" class="image--center mx-auto" width="3376" height="1930" loading="lazy"></p>
<p>This creates a sandboxed environment where the AI agent can safely manage your files without affecting your other projects. And now your AI agents have the permission to build and test your Flutter code!</p>
<h2 id="heading-step-2-mastering-the-art-of-agentic-prompting">Step 2: Mastering the Art of Agentic Prompting</h2>
<p>In Antigravity, your success depends on how you communicate with your agents. Good prompts are detailed and always require a plan first. To create an effective prompt, you should think like a Project Manager: define the scope, set technical constraints, and establish a "checkpoint" before the agent executes any code.</p>
<h3 id="heading-the-anatomy-of-a-perfect-prompt">The Anatomy of a Perfect Prompt</h3>
<p>As we briefly discussed above, a strong prompt follows a clear structure: <strong>Context + Goal + Constraints + Verification</strong>. By explicitly asking for a plan, you prevent the agent from making assumptions about your architecture or UI style that might be difficult to undo later.</p>
<p>Copy and paste the following prompt into the Agent Manager:</p>
<pre><code class="lang-markdown">Create a new Flutter project named <span class="hljs-code">`water_tracker`</span>.

Design requirements:
<span class="hljs-bullet">-</span> Glassmorphism style throughout: frosted glass cards, blurred backgrounds, subtle borders, translucency
<span class="hljs-bullet">-</span> Soft color palette: light blues, whites, gentle gradients
<span class="hljs-bullet">-</span> Modern, premium feel with depth and elegance

Before any commands:
<span class="hljs-bullet">1.</span> Generate a detailed project plan artifact including:
<span class="hljs-bullet">   -</span> Full folder structure tree
<span class="hljs-bullet">   -</span> Recommended dependencies (e.g., shared<span class="hljs-emphasis">_preferences, glassmorphism package if available)
   - High-level architecture (simple state management to start)
2. Ask for my explicit approval.

After approval:
- Run `flutter create water_</span>tracker`
<span class="hljs-bullet">-</span> Add dependencies
<span class="hljs-bullet">-</span> Launch the blank app
<span class="hljs-bullet">-</span> Provide screenshots and video walkthrough artifact.
</code></pre>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766433166692/2e0ba4b8-dbb0-4101-a2c6-a250ec318dbf.png" alt="Paste the prompt into the Agent Manager chat and click the blue &quot;+&quot; button" class="image--center mx-auto" width="3380" height="1928" loading="lazy"></p>
<h3 id="heading-analyzing-the-prompt-strategy">Analyzing the Prompt Strategy</h3>
<p>I crafted this prompt with specific "hooks" to ensure high-quality output:</p>
<ol>
<li><p>First, the <strong>Design requirements</strong> block uses sensory language ("frosted," "soft," "depth") to guide the agent's aesthetic choice.</p>
</li>
<li><p>Second, the <strong>"Before any commands"</strong> section is the most important element as it creates a safety gate. This forces the agent into a "Plan-First" mode, where it must present its logic as a readable document (an Artifact) before touching your file system.</p>
</li>
<li><p>Finally, the <strong>Verification</strong> requests (screenshots/video) ensure the agent is responsible for proving the setup was successful.</p>
</li>
</ol>
<h3 id="heading-reviewing-the-implementation-plan">Reviewing the Implementation Plan</h3>
<p>After running this prompt, agent will give you plan to review. Scroll down and read everything carefully, making sure the plan looks solid. If it does, reply by clicking on the <strong>"Proceed"</strong> button:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766777527328/cceff62d-9cf3-4794-b8e6-65565598b4d8.png" alt="Review the response/plan and click proceed if you're happy with the results" class="image--center mx-auto" width="3358" height="1956" loading="lazy"></p>
<h3 id="heading-authorizing-commands-in-the-agent-manager">Authorizing Commands in the Agent Manager</h3>
<p>After you proceed with the plan, the agent will begin the <strong>Initializing Project</strong> phase. In Antigravity, agents do not run terminal commands in the background without your knowledge. Instead, they present the specific command for your authorization.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766778411176/0ea3013b-e7b9-486f-ab3b-c65f2ef1b628.png" alt="&quot;Agent is running terminal commands&quot; - for you to review" class="image--center mx-auto" width="3344" height="1918" loading="lazy"></p>
<p>As shown in the above screenshot, the agent will ask to run: <code>flutter pub add provider shared_preferences intl flutter_animate google_fonts</code>.</p>
<p>Clicking <strong>"Accept"</strong> here is the specific action that gives the agent permission to actually execute the command in your workspace. This is the moment the project actually starts to exist, dependencies are added, and the initial folder structure is generated.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766436979535/d5b65713-761a-4b3d-ad6e-ebea5be343d9.png" alt="Accept the agent's work" class="image--center mx-auto" width="3382" height="1932" loading="lazy"></p>
<h3 id="heading-managing-commands-and-folders">Managing Commands and Folders</h3>
<p>The "Step Requires Input" gate ensures you maintain full control over what’s being installed on your machine.</p>
<p>Before any directories are actually made, the agent displays the exact <code>mkdir</code> command it plans to run. You’ll need to review this proposed folder structure and click the blue <strong>"Accept"</strong> button to authorize the agent to physically create those paths in your workspace.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766778588513/d348cab7-147a-4733-8a31-cf66010a2449.png" alt="Accept the agent creating specific paths in your workspace" class="image--center mx-auto" width="3366" height="1952" loading="lazy"></p>
<h3 id="heading-verifying-the-emulator-launch">Verifying the Emulator Launch</h3>
<p>Before launching on the emulator, the agent will ask for permission to launch it:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766779040373/7cfcaf88-ba61-40d2-8eda-f100a65c0151.png" alt="Agent asking permission to launch emulator" class="image--center mx-auto" width="3362" height="1952" loading="lazy"></p>
<p>The agent will then initialize the project and show you the running app in the integrated emulator:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766833166339/bab74ad2-d15a-4870-b767-1f8a08ca8836.png" alt="Agent showing the running app" class="image--center mx-auto" width="3422" height="1882" loading="lazy"></p>
<p>Also, the agent tests the app and records a few seconds of video to demonstrate that all buttons are working:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766833182488/dad906af-b0a4-450d-9fcd-68b914c54c85.png" alt="dad906af-b0a4-450d-9fcd-68b914c54c85" class="image--center mx-auto" width="2790" height="1934" loading="lazy"></p>
<h2 id="heading-switching-to-the-editor-for-verification">Switching to the Editor for Verification</h2>
<p>Once the agent has finished initializing the project and building the directory structure, you’ll want to see the results of its work.</p>
<p>Because Antigravity is an agentic IDE, it often keeps the focus on the <strong>Agent Manager</strong> while it runs terminal commands and generates code in the background. To switch from the agent's log to the actual source code, click the “Open editor” button (the <code>&lt; &gt;</code> icon) located at the top right of the interface.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1767653383038/5f84773b-0b04-4417-9c1b-c992f1a9e9c1.png" alt="Checking project folders/files" class="image--center mx-auto" width="2310" height="1934" loading="lazy"></p>
<p>Clicking this button reveals the <strong>Explorer</strong> view on the left, where you can now see the newly created <code>water_tracker</code> project. You should explore the <code>lib/</code> directory to verify that the agent successfully created <code>main.dart</code> and organized your files into the <code>core</code>, <code>data</code>, and <code>ui</code> folders as proposed in its earlier plan.</p>
<p>This is your chance to perform a sanity check on the code itself. Open <code>main.dart</code> to ensure the agent correctly set up the <code>WaterTrackerApp</code> and initialized your theme before you proceed to the next stage of development.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766783330487/83adf159-a017-40e6-9c93-299c243735ca.png" alt="Perform your sanity check" class="image--center mx-auto" width="2852" height="1770" loading="lazy"></p>
<h3 id="heading-understanding-orchestration-vs-verification">Understanding Orchestration vs. Verification</h3>
<p>Just to clarify, in Antigravity, the transition between the Agent Manager and the Open editor button (the <code>&lt; &gt;</code> icon) represents a shift from <strong>orchestration</strong> to <strong>verification</strong>:</p>
<ul>
<li><p><strong>The Agent Manager View (Orchestration)</strong>: When you click <strong>Open Agent Manager</strong>, you’re looking at the "command center" for the AI agents. In this view, you see a terminal-like interface where the agent proposes actions.<br>  For example, as seen in your screenshot, the agent shows a "Step Requires Input" and waits for you to click Accept on a terminal command like <code>flutter pub add</code>. You can’t edit code here – you can only approve or reject the agent's planned terminal operations.</p>
</li>
<li><p><strong>The Editor View (Verification)</strong>: When you click the <strong>'Open editor'</strong> button (the <code>&lt; &gt;</code> icon) in the top right, the IDE reveals the standard VS Code-style workspace. This is where the physical files (like <code>main.dart</code> and the folder structure you just authorized) actually appear.<br>  While the Agent Manager shows you the <em>log</em> of what the agent did, the Editor View allows you to open those files to verify that the code follows your standards and is ready for production.</p>
</li>
</ul>
<h3 id="heading-summary-of-workflow">Summary of Workflow</h3>
<p>In short: you use the Agent Manager to authorize the agent to run terminal commands and create folders, and you click the 'Open editor' button to actually see, explore, and edit the resulting files.</p>
<h2 id="heading-step-3-implement-the-glassmorphic-main-screen">Step 3: Implement the Glassmorphic Main Screen</h2>
<p>Now it’s time to create the beautiful UI. Glassmorphism relies on the <code>BackdropFilter</code> widget and <code>ClipRRect</code> to create that "frosted glass" effect. We want a central progress ring that shows how much water we’ve had and that feels physical and tactile.</p>
<p>Paste in the following prompt:</p>
<pre><code class="lang-markdown">Implement the main water tracking screen with glassmorphism design.

Detailed requirements:
<span class="hljs-bullet">-</span> Large central circular progress ring (frosted glass style, blurred background visible through it)
<span class="hljs-bullet">-</span> Big floating "+" button with glass effect and subtle glow on tap
<span class="hljs-bullet">-</span> Current intake text in large, elegant font
<span class="hljs-bullet">-</span> Glassmorphic card below showing "X glasses · Y ml of 2000 ml"
<span class="hljs-bullet">-</span> Scrollable history list in frosted cards
<span class="hljs-bullet">-</span> Empty state with calming illustration/text
<span class="hljs-bullet">-</span> Smooth fill animation on progress ring when adding water

Before coding:
<span class="hljs-bullet">1.</span> Plan artifact with:
<span class="hljs-bullet">   -</span> Glassmorphism implementation approach (BackdropFilter, ClipRRect, etc.)
<span class="hljs-bullet">   -</span> Widget hierarchy
<span class="hljs-bullet">   -</span> Animation details
<span class="hljs-bullet">2.</span> Ask approval.

After approval:
<span class="hljs-bullet">-</span> Generate code
<span class="hljs-bullet">-</span> Hot reload
<span class="hljs-bullet">-</span> Provide video walkthrough showing:
<span class="hljs-bullet">   -</span> Adding water multiple times
<span class="hljs-bullet">   -</span> Progress ring filling with glass effect
<span class="hljs-bullet">   -</span> History cards appearing
</code></pre>
<p>If all looks good, approve the plan. The agent should build a stunning glassmorphic interface. Tap “+” and watch the ring fill with a silky animation through the frosted glass.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766835614486/1930f868-07a9-4264-95cc-af48f163549f.png" alt="Demo of the animation" class="image--center mx-auto" width="3428" height="1894" loading="lazy"></p>
<h2 id="heading-step-4-add-persistence-and-daily-logic">Step 4: Add Persistence and Daily Logic</h2>
<p>An app is only useful if it remembers your data. We’ll use <code>shared_preferences</code> for simple local storage. We also need logic that checks the current date and resets the counter to zero at midnight.</p>
<p>We’ll now ask the agent to add persistence and daily reset logic using shared_preferences.</p>
<p>The app should save the intake and the last reset date. Before implementing, explain how the midnight reset check will be triggered.</p>
<p>Use this prompt:</p>
<pre><code class="lang-markdown">Add persistence and daily reset.

Requirements:
<span class="hljs-bullet">-</span> Use shared<span class="hljs-emphasis">_preferences to save intake and last reset date
- Auto-reset to 0 ml at midnight
- Preserve today's history until reset
- Simple settings dialog to change daily goal

Before changes:
1. Plan with storage and reset logic
Ask approval.

After:
- Implement
- Test app close/reopen
- Video: add water → close → reopen → data persists</span>
</code></pre>
<p>Review the agent’s logic for the reset. A common pitfall is only checking the date when the app first opens – so make sure that the agent accounts for the app staying open in the background overnight.</p>
<p>Your progress now survives:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766837605166/93c57ff2-c279-4897-b8b3-e2697b76064b.png" alt="Saved progress" class="image--center mx-auto" width="3380" height="1960" loading="lazy"></p>
<h2 id="heading-step-5-add-on-device-smart-reminders-with-gemma">Step 5: Add On-Device Smart Reminders with Gemma</h2>
<p>The most advanced feature of our Water Tracker is the smart reminder system powered by <strong>Gemma 3n</strong>. Unlike traditional reminders that use static, repetitive text, these reminders are generated dynamically to keep the user engaged and motivated. The primary goal of these reminders is to track the user's progress against their daily hydration goal and provide personalized nudges that ensure they stay on schedule throughout the day.</p>
<p>To achieve this, we’ll use Gemma 3n, which is a specialized variant of Google’s open-weight model family designed specifically for on-device performance. Gemma 3n acts as our AI Hydration Coach by analyzing the user's current intake status. For example, it notices if a user has only consumed 500ml out of their 2000ml goal by mid-afternoon. It then uses this context to generate a friendly, unique message.</p>
<p>We’re using Gemma 3n here for several critical reasons:</p>
<ul>
<li><p><strong>Privacy and data sovereignty</strong>: Because Gemma 3n runs fully locally on the user's phone, no personal health data or daily habits ever leave the device, providing a "privacy-first" experience where no data leaks to the cloud.</p>
</li>
<li><p><strong>Next-generation architecture</strong>: Gemma 3n uses the same architecture as the latest Gemini Nano, which allows it to offer incredible speed and efficiency while maintaining a minimal footprint on the device's battery and memory.</p>
</li>
<li><p><strong>Native multimodal support</strong>: This model is unique because it features native audio support for the first time, meaning that while we are currently using it for text notifications, the app is future-proofed for voice-based logging and interaction.</p>
</li>
</ul>
<p>Copy and paste in this prompt:</p>
<pre><code class="lang-markdown">Add on-device hydration reminders using Gemma.

Requirements:
<span class="hljs-bullet">-</span> Use flutter<span class="hljs-emphasis">_gemma or similar 2025 package for Gemma 3n
- Every 2 hours, check progress
- If behind schedule, show local notification: friendly, motivational message like "Time for a refreshing glass! You've had X of Y ml today."
- Use simple on-device prompt for variety
- Toggle in settings
- Privacy badge: "Reminders powered locally"

Before implementation:
1. Plan with package, notification setup, and timing logic
Ask approval.

After:
- Implement
- Test (simulate time or wait)
- Video showing notification appearing.</span>
</code></pre>
<p>You should verify that the agent is not making frequent, battery-draining calls to the model. The reminders should be scheduled efficiently using background tasks.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766838947780/f051ad6e-383d-4965-ae41-dd939cb181c9.png" alt="Reminders with Gemma" class="image--center mx-auto" width="2822" height="1964" loading="lazy"></p>
<p>To test the AI Hydration Coach:</p>
<ol>
<li><p>Go to Settings (gear icon).</p>
</li>
<li><p>Enable the "AI Hydration Coach" toggle.</p>
</li>
<li><p>You should receive a simulated notification immediately with a motivational message like: <em>"Hydration Buddy 💧: Stay hydrated! You're at X% of your daily goal."</em></p>
</li>
</ol>
<h2 id="heading-step-6-final-polish">Step 6: Final Polish</h2>
<p>To finish the app, we will add micro-interactions – the small details that make an app feel premium. This includes a confetti celebration when the daily goal is met and a wave animation for the empty state.</p>
<p>Use this prompt:</p>
<pre><code class="lang-markdown">Add final polish:
<span class="hljs-bullet">-</span> Confetti explosion when reaching 100% goal
<span class="hljs-bullet">-</span> Glassmorphic settings screen
<span class="hljs-bullet">-</span> Better empty state with subtle wave animation
<span class="hljs-bullet">-</span> Optimize performance

Implement one at a time with quick video updates.
</code></pre>
<p>Run the app on your phone. Add water throughout the day and enjoy the glassmorphic beauty, gentle reminders, and celebration when you hit your goal.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766840697130/8227c083-76af-4ab3-9b59-fd645e429dad.png" alt="Screenshot showing various app features like setting goals and saving" class="image--center mx-auto" width="3334" height="1938" loading="lazy"></p>
<p>Then go back to your app and click the ‘+’ button to get the results. After you get a score of 100%, the confetti will be visible:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766839488270/7e9f12ce-0d68-45e5-a01d-1634f367e311.png" alt="Showing confetti when you reach your goal" class="image--center mx-auto" width="2992" height="1926" loading="lazy"></p>
<h3 id="heading-reviewing-the-final-changes">Reviewing the Final Changes</h3>
<p>As the agent works, use the <strong>'Open editor'</strong> button (the <code>&lt; &gt;</code> icon) to inspect the new animations. When checking the performance optimization, look for the agent's use of <code>RepaintBoundary</code> around the glassmorphic layers. This is a key indicator that the agent is following high-performance Flutter standards rather than just writing simple code.</p>
<p>Once every micro-interaction is verified, your Water Tracker is ready for primetime. Run it on your device, log your water throughout the day, and enjoy the combination of glassmorphic beauty, privacy-first reminders, and the celebration of your health goals.</p>
<h2 id="heading-antigravity-quota-limit"><strong>Antigravity Quota Limit</strong></h2>
<p>If your favorite model notifies you that it's reached its quota limit, you can switch to another model before the limit resets. As you can see in my screenshot, my favorite Gemini 3 Pro won’t be available until 8:26 PM, so I'll select another model from the drop-down menu to use before then.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1766831055155/c04b71e6-2949-4294-aa9b-3c8df8511c19.png" alt="Selecting another model to use" class="image--center mx-auto" width="1676" height="864" loading="lazy"></p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>In this tutorial, you built a helpful habit-tracking app using <strong>agentic development</strong>.</p>
<p>You learned about:</p>
<ul>
<li><p>Managing workspaces in Antigravity</p>
</li>
<li><p>Writing detailed, plan-first prompts</p>
</li>
<li><p>Creating glassmorphism designs</p>
</li>
<li><p>Integrating on-device AI with Gemma</p>
</li>
<li><p>Rapid, high-quality prototyping</p>
</li>
</ul>
<p>This is how modern Flutter development feels: focused on creativity, not boilerplate.</p>
<p>Happy vibe coding!</p>
 ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
