软件开发始终与我们所开发的工具一同发展演变。
曾经有一段时间,开发者们需要用汇编语言来编写所有程序。后来,高级编程语言的出现使人们可以减少对硬件的关注,而更多地将精力投入到问题解决上。框架技术的出现进一步消除了重复使用相同代码模式的必要性。
如今,我们正在见证又一次变革,而且这一变革的发生速度比许多人预期的要快。
人工智能开始直接参与软件开发过程。
在2026年达沃斯世界经济论坛上,Anthropic公司的首席执行官Dario Amodei表示,在六到十二个月内,人工智能系统或许就能完全承担大部分软件工程任务。
大约在同一时间,Spotify的首席技术官Gustav Söderström透露了一个更加令人惊讶的事实:2026年,Spotify的一些顶尖开发者竟然没有编写过一行代码。这些人工智能系统负责生成具体的实现代码,而工程师们则负责审核和监督这些结果。
许多大型科技公司已经在根据这一变革调整自身的组织结构。金融技术公司Block最近宣布将裁员数千人,同时强调其在工程工作中对人工智能的依赖程度正在不断增加。
对于很多开发者来说,这样的新闻会引发一个令人不安的问题:人工智能是否会在未来取代软件开发人员呢?
最准确的答案是:软件开发本身正在发生变化。
开发者们不再把大部分时间花在编写代码语法上,而是越来越关注系统设计、架构选择,以及监督那些能够自动生成实现代码的人工智能系统。
人工智能正在成为开发者的得力助手,但开发者依然是整个开发过程的主体。
在本文中,你将通过使用现代工具——Antigravity、Stitch、Flutter和Dart来构建一个Flutter应用程序,从而了解这种新的开发工作流程在实际应用中的表现。
我们不会手动编写代码,而是让人工智能工具来生成用户界面和项目架构。
完成本指南的学习后,你将能够基于国际妇女节的主题,构建一个专门用于女性自我护理产品销售的Flutter应用程序。
目录:
先决条件
在开始之前,请确保您的开发环境已经准备就绪。
您需要在自己的机器上安装并运行Flutter。执行flutter doctor命令可以确认您的开发环境配置是否正确。由于Dart是与Flutter一起提供的,因此建议 also 通过dart --version命令来验证Dart的安装情况。
此外,您还需要能够使用Antigravity——这个我们在本教程后续部分会用到的基于智能代理的开发工具。同时,您也需要创建一个Stitch账户,这样才能生成应用程序的界面布局文件。
虽然本教程中的工作流程在很大程度上依赖于人工智能技术,但如果您对Flutter的架构有基本的了解,那么整个学习过程就会更加容易理解。在生成的代码中,会出现诸如“清晰架构”这样的设计理念,以及BLoC之类的状态管理模式。
在人工智能驱动的世界中,开发者的新角色
要理解为什么像Antigravity和Stitch这样的工具会变得越来越重要,就需要考虑开发者的角色是如何随着时间推移而发生变化的。
在计算机发展的早期阶段,编程意味着需要向机器提供极其详细的指令。开发者直接控制内存位置、寄存器以及各种硬件操作。
后来出现的高级编程语言通过抽象掉许多与硬件相关的内容,使开发工作变得更加高效。而开发框架则通过提供可复用的组件和架构模式,进一步提升了效率。
人工智能为软件开发带来了另一个层面的抽象化。
现在,开发者不再需要手动编写每一条代码或设计每一个界面,而是可以用自然语言来描述系统的需求。人工智能工具会解读这些描述,并自动生成大部分实现代码。
这种变化并没有消除对开发者的需求,而是改变了开发者主要花费时间从事的工作内容。
在使用人工智能工具时,开发者会更加专注于系统的设计、约束条件的定义、生成代码的审核,以及确保应用程序在现实环境中能够正常运行。
从很多角度来看,现在的工作重点已经不再是编写代码本身,而是协调和管理智能系统。
而像Antigravity这样的工作流程平台,正是为支持这种开发方式而设计的。
什么是Antigravity?
Antigravity是一个由人工智能驱动的开发平台,专为所谓的“基于智能代理的软件开发”而设计。
传统的AI编码辅助工具会在编辑器中提示开发者编写具体的代码片段。而Antigravity采取了不同的方式:它不是帮助开发者编写单行代码,而是让自主运行的智能代理来执行整个开发流程。
这些智能代理能够理解项目需求、规划实现方案、生成代码、运行测试并验证结果。虽然开发者仍然掌控着整个开发过程,但许多重复性的工作都已经被自动化处理了。
该平台与开发环境实现了深度集成。智能代理能够读取项目文件、运行终端命令、检测应用程序的行为,并与外部服务进行交互。
这种功能使得人工智能不再仅仅是一个提供建议的工具,而更像是一位与你共同工作的协作工程师。更多相关信息,请访问https://antigravity.google/

了解MCP服务器
使Antigravity的工作流程得以实现的核心技术之一,就是被称为“模型上下文协议”的技术,简称MCP。
MCP服务器充当了智能代理与外部系统之间的桥梁,使代理能够以结构化的方式与各种工具、API以及开发环境进行交互。
如果没有MCP服务器,智能代理就只能生成静态代码;而有了MCP服务器,它们就能主动与开发环境进行互动了。
例如,MCP服务器可以让代理从项目目录中读取文件、运行构建命令、访问数据库,或者从其他平台获取设计资源。
在我们的系统中,MCP服务器将使Antigravity能够与Stitch进行通信,并根据我们设计的用户界面生成Flutter代码。

什么是Stitch?
Stitch专注于开发流程中的另一个环节:用户界面设计。
手动构建用户界面往往非常耗时。开发者通常需要花费数小时来调整布局、优化间距,以及尝试不同的视觉层次结构,才能最终得到满意的设计结果。
Stitch通过让开发者使用自然语言来描述界面设计,简化了这一过程。
系统会解读这些描述,并生成一个结构化的布局图,这个布局图随后可以被转换成可运行的代码。
开发者无需手动安排每一个用户界面组件,而是可以专注于描述他们希望用户体验到的功能。更多关于Stitch的信息,请访问https://stitch.withgoogle.com/


Flutter与Dart
Flutter是由谷歌开发的一款开源UI框架,它允许开发者使用同一套代码为多个平台构建应用程序。
使用Flutter开发的应用程序可以在Android、iOS、网页浏览器以及桌面操作系统上运行,并且能够保持一致的性能和视觉效果。
Flutter采用Dart编程语言,这种语言专为支持响应式框架和高性能界面而设计。
由于Flutter应用程序的结构基于组件和声明式布局设计,因此该框架与基于AI的代码生成工具配合使用时效果尤为出色。您可以通过https://flutter.dev/和https://dart.dev/了解更多关于Flutter和Dart的信息。
我们将要构建的应用程序
为了演示这一开发流程,我们将为一家女性护理产品商店打造一款移动应用程序。
这个项目的灵感来源于国际妇女节,旨在宣传那些专注于健康与个人护理的产品。
该应用程序将包含四个主要界面屏幕。
-
首页会展示产品分类、推荐商品以及畅销产品。
-
心愿单页面允许用户保存日后想要购买的商品。
-
购物车页面会显示已加入购物车的商品,用户可以在下单前调整商品数量。
-
最后,个人资料页面可让用户查看账户信息并进行设置。
该应用程序的界面将使用以下配色方案:
#1A05A2
#8F0177
#DE1A58
#F67D31
步骤1:使用Stitch生成用户界面设计
我们首先会使用Stitch来生成应用程序的界面设计。
打开Stitch并创建一个新的任务。请严格按照以下内容输入提示信息:
为一家庆祝国际妇女节的女性护理产品商店,设计一款现代风格的移动购物应用用户界面。
该设计应体现出优雅、温馨且现代的感觉。
请使用以下配色方案:
#1A05A2
#8F0177
#DE1A58
#F67D31
应用程序应包含以下页面:
首页:
在顶部显示产品分类。
设置一个畅销商品专区。
包含一个展示重点产品的区域,每个产品都会用较大的卡片形式呈现。
心愿单页面:
显示用户保存的商品。
允许用户将某些商品从心愿单中移除。
购物车页面:
展示已加入购物车的商品。
提供增加或减少商品数量的控件。
显示总价信息。
设置一个下单按钮。
个人资料页面:
显示用户的圆形头像。
提供“个人资料”、“设置”、“订单”、“通知”和“帮助”等菜单选项。
请使用圆角卡片、现代的间距设计以及柔和的渐变背景效果。
为什么这个提示有效
在向Stitch提交设计请求时,清晰的结构比冗长的描述更为重要。这个提示之所以有效,是因为它将需求明确分解成了四个具体的部分:
1. 背景与主题
开篇语句明确指出了该应用程序的用途——这是一个为庆祝国际妇女节而设计的、专门针对女性用户的自我护理购物应用。这样的描述有助于Stitch生成与整体风格及目标受众相匹配的视觉效果。
2. 视觉设计方向
提示中明确规定了设计风格(优雅、温馨、现代),同时还提供了具体的色彩方案,这些信息为AI提供了指导,使其能够创造出统一且协调的视觉形象。
3. 界面结构
提示并非要求生成一个通用的应用程序界面,而是详细列出了所需的各种页面(首页、心愿单、购物车、个人资料页)以及每个页面应包含的内容。这样的设计确保了最终生成的UI更接近于一个真实的产品界面,而不仅仅是一个概念性设计。
4>用户界面设计细节>
诸如圆形卡片布局、现代的间距设置以及柔和的渐变背景等设计细节,能够帮助AI生成出更加精致的用户界面,而不仅仅是简单的线框图。
在向Stitch提供设计指令时,关键是要像产品设计师一样思考:明确说明应用程序的用途、所需的页面结构以及视觉风格。这样,AI才能有足够的依据来生成实用且真实的用户界面。




当Stitch完成设计生成后,它并不会限制你只能使用某种特定的开发流程。相反,它会根据你的需求提供多种导出方式,让你能够继续完善自己的产品。这种灵活性正是Stitch最强大的特点之一——因为它使得生成的设计能够在不同的设计工具、开发环境以及AI系统中无缝地迁移和使用。
在这个阶段,你仍然可以对设计结果进行完全的修改。Stitch生成的每一个设计元素都可以被编辑、重新排列或进一步优化,然后再进入下一步的开发流程。你可以调整布局、更新色彩方案、修改文字内容,甚至可以重新构建界面的整体结构。把生成的设计结果看作是一个良好的起点,而不仅仅是一个固定的最终成果吧。

Stitch提供了多种导出选项,这些选项能够帮助你在不同的环境中继续进行开发工作。
其中一个选择是直接使用AI Studio。通过这个工具,你可以立即开始利用人工智能辅助的开发流程来构建应用程序。在这种环境下,生成的设计方案会成为应用程序结构的基础,使你能够快速进行迭代开发,同时人工智能工具会帮助将界面设计转化为可运行的代码。
另一个选择是将设计方案导出到Figma中。当以Figma文件的形式导出后,该布局就会成为Figma中一个完全可以编辑的设计系统。使用标准的Figma工具,你可以调整其中的每一个组件、框架和布局元素。
设计师可以细致地调整间距、排版样式以及交互效果,而开发人员则可以在开始实施之前查看设计规格,并与设计团队进行协作。这对于那些设计和开发职责分开的团队来说,尤其十分有用。
Stitch还支持将项目导出到Jules这一同样以人工智能辅助开发流程为核心的工具中。通过这个选项,生成的设计方案可以纳入更广泛的自动化开发流程中,在其中人工智能工具会解读这些设计并将其转化为应用程序代码。
如果你更喜欢在本地进行开发,Stitch也允许你将生成的项目下载为ZIP文件。这样,你就可以将所有设计资源以及生成过程中创建的结构化文件手动集成到你的开发环境或版本控制系统中。
还有一个快捷方式是直接将生成的成果复制到剪贴板中。当你想要将某个布局或设计方案粘贴到其他工具或环境中时,这种方式非常方便,因为你无需下载额外的文件。
最后,Stitch还提供了通过MCP进行导出的选项。MCP即“模型上下文协议”。使用这个选项时,Stitch会通过Stitch MCP服务器生成一份专门为人工智能工具设计的使用提示文件。这样一来,像Antigravity这样的工具,或者任何支持MCP的智能集成开发环境,都能够访问这些生成的布局文件,并自动将其转化为可运行的应用程序代码。
Stitch甚至还会提供在将设计方案发送给人工智能工具时应使用的具体提示信息,这使得从设计生成到代码生成的整个过程能够非常顺畅地进行。
虽然这些导出选项各自对应着略有不同的开发流程,但它们的目的都是一样的:让生成的设计方案能够轻松地从概念阶段过渡到实现阶段,同时让开发人员和设计师在开发过程中有充分的自由去修改任何他们认为需要的内容。在本指南中,我们将使用MCP方法,并结合Antigravity工具来进行操作。



步骤2:将Stitch连接到Antigravity
接下来,我们需要打开Antigravity,创建一个目录,并使用Google进行身份验证。



接下来,我们需要在Antigravity中启用Stitch MCP服务器(Dart已经安装好了)。

打开MCP配置面板,启用Stitch集成。系统提示时,请输入您的Stitch API密钥。

获取您的Stitch API密钥
要生成API密钥,请点击个人资料图标,进入“Stitch设置”,然后前往API选项卡。创建一个新的密钥,并将其复制到MCP配置面板中。


步骤3:生成Flutter应用程序
现在Antigravity已经可以访问Stitch的布局数据了,我们可以开始生成Flutter项目了。安装Flutter以及Dart的相关扩展也是很有必要的。


现在这些工具都已经安装好了,我们可以在Antigravity中输入以下指令:
## Stitch使用说明
获取以下Stitch项目所需的所有图像和代码:
## 项目信息
标题:用户个人主页
ID:2811186611775892217
## 需要生成的页面:
1. 用户个人主页
ID:1768c58e5abb4c328a1837437d83875c
2. 自我护理首页
ID:41494ba340bf4d7b8df12112116645ce
3. 购物车页面
ID:e107a7a9fd034f83a302851021bbc468
4>您的愿望清单
ID:ecc8e0e7cea3437c939e04ceeb645b61
请使用`curl -L`这样的工具来下载这些托管在互联网上的资源。
根据Stitch生成的UI布局,使用Dart语言来构建Flutter应用程序。
该项目应遵循清晰的设计架构,将界面展示层、业务逻辑层和数据存储层明确区分开来。
状态管理方面,请采用BLoC模式。
确保UI组件与业务逻辑相互分离,并且整个项目结构要符合清晰的设计规范。
这种指令的结构非常清晰,这在使用像Antigravity这样的AI开发工具时非常重要。
这里有几个关键点需要注意:
1. 直接引用了Stitch生成的输出文件
指令中首先列出了Stitch项目的ID以及各个页面的ID,这样Antigravity就能直接获取到之前生成的设计布局和图像文件。
2>事先明确了应用程序的整体架构
我们并没有要求它快速生成一个原型,而是明确指定了要采用清晰的设计架构。具体来说,这个架构包括:
-
界面展示层:负责处理用户界面显示的相关逻辑
-
业务逻辑层:包含各种业务规则和用例处理逻辑
-
数据存储层:用于存储模型数据和数据库信息
这样的架构使得生成的Flutter代码更易于维护。
3>对状态管理进行了明确的规定
我们要求系统使用flutter_bloc来进行状态管理,这样购物车、愿望清单和首页的数据更新就能保持一致性。
这些细节能够确保AI不会只生成空壳的UI结构,而是真正生成一个可正常运行的应用程序框架。
在向Antigravity(或任何AI编码系统)发出指令时,应该像技术负责人编写项目需求文档一样来思考。你越清晰地定义好架构、依赖关系以及预期功能,生成的代码就越接近最终可投入使用的状态。你可以详细指定它如何处理路由逻辑、网络图像的加载、如何使用可重用的组件、购物车的具体实现方式,以及模拟产品数据的具体内容等等。

在对话模式中,我使用了规划模式。
在开始新的对话时,您可以在多种模式中选择:
-
规划模式:智能体在执行任务之前会先进行规划。这种模式适用于需要深入研究、处理复杂任务或进行协作工作的场景。在这种模式下,智能体会将工作分解为多个任务组,生成相应的成果,并采取其他措施来确保工作质量达到最佳水平。
-
快速模式:智能体会直接执行任务。这种模式适用于那些可以快速完成的简单任务,例如重命名变量、运行一些bash命令,或其他规模较小、较为简单的任务。当速度至关重要且任务本身很简单、不会影响最终效果时,这种模式非常有用。

对于这个项目,我将使用Gemini 3.1 Pro (High)版本,该版本在生成代码、处理复杂任务以及解读用户指令方面能够提供最高的性能和准确性。

Antigravity会生成一份任务列表,列明它为构建应用程序所需执行的所有步骤。您可以仔细查看每项任务并添加评论,系统也会根据这些反馈进行相应的更新。可以将这份任务列表视为智能体将要执行的清晰、分步的操作指南,而且不同的项目或工作流程所需的操作步骤也会有所不同。
对于这个项目,Antigravity生成的任务列表如下:
-
从Stitch项目中获取屏幕数据和代码
-
初始化并验证Flutter项目
care_app -
设置清洁架构的各层结构(
domain、data、presentation) -
使用
curl将图片下载到本地 -
将生成的UI代码集成到展示层中
-
为状态管理设置BLoC模式
-
将清洁架构的各个部分整合在一起
-
验证功能并完成构建过程
还需要说明的是,如果您在使用Antigravity时发现系统中没有安装Flutter、Dart、Java或Android SDK,系统会首先帮助您安装这些必备软件,然后再开始创建应用程序。


在完成审核和调整后,Antigravity会提示您进行确认,然后才会开始执行后续步骤。此时,它会请求您的批准,以便根据最终确定的实施计划生成适用于Android和iOS平台的Flutter应用程序。
当您对应用程序的结构感到满意并准备继续下一步时,只需点击“运行”按钮,系统就会开始创建该应用程序。

在这个阶段,Antigravity会请求允许它与Stitch进行通信,以便下载从设计结果中生成的所有资源文件。一旦您给予了许可,系统就会执行必要的命令来获取这些文件。
当这个过程完成后,Stitch会创建一个名为“stitch_data”的目录。该目录会整理项目中所有的设计资源和页面文件。应用程序中的每个界面或页面都会被保存为单独的“.HTML”文件,这样就可以方便地查看、编辑或引用各个布局了。
在“stitch_data”目录中,通常每个界面都会对应一个“.HTML”文件,例如“screen1_profile.html”、“screen2_home.html”、“screen3_cart.html”以及“screen4_wishlist.html”。每个文件都包含了布局结构、设计元素以及样式信息,AI会利用这些信息来生成相应的Flutter代码。
这个步骤确保了所有设计资源都能在本地被访问到,同时也让AI具备了将视觉布局准确转化为功能性应用程序组件所需的一切条件。



在生成初始设计结果后,Antigravity通常会先为您提供一份实施文档供您审阅,之后才会开始构建应用程序。
这份文档详细说明了代理程序为根据您的要求实现应用程序而计划遵循的结构方案。其中通常会包括架构设计、文件夹结构、所使用的技术与模式,以及应用程序各部分之间的交互方式等内容。
请将这份文档视为项目的蓝图,而非最终的实现方案。
在这个阶段,您有机会在任何代码生成之前仔细审查这个计划。您可以了解开发团队打算如何构建Flutter项目,如何将用户界面与业务逻辑分开,以及状态管理、导航和数据流等环节将如何被处理。
如果某些内容不符合您的预期,您可以直接在文档中提出反馈。您可以添加评论,建议进行结构上的调整,要求改进某些部分,或者明确表示希望某些实现细节能够有所不同。开发团队会根据这些反馈对计划进行相应的修改和更新。
需要记住的是,这份文档并非最终定稿。它是一个可以不断迭代完善的文件。您可以根据需要多次对其进行修订,而开发团队也会持续根据您的反馈调整计划内容。
# 实施计划:采用清洁架构构建Flutter应用
本计划旨在指导如何利用清洁架构和BLoC技术来实现这4个Stitch页面的功能。
## 建议的架构
该应用将被划分为以下几层:
1. 核心层:包含主题设置、路由机制以及通用工具函数。
2> 领域层:包含User、Product、CartItem等实体对象,以及抽象的仓库接口。
3> 数据层:包含数据模型(用于数据传输的对象)以及仓库的模拟实现。
4> 表现层:包含BLoC模块(用于状态管理)和用户界面页面。
## 建议的修改内容
### 1. 依赖项配置
更新pubspec.yaml文件,添加以下依赖项:
- flutter_bloc
- equatable
- googlefonts(用于“Plus Jakarta Sans”字体)
- materialsymbols_icons(用于HTML页面中使用的图标)
### 2> 核心层结构与主题设置
#### [新增] lib/core/theme.dart
根据Stitch Tailwind的配置来定义颜色值#e31651、#8F0177、#f8f6f6等,以及相关的排版样式。
#### [新增] lib/core/app.router.dart
为底部导航栏及各个页面定义路由规则。
### 3> 领域层与数据层
#### [新增] lib/domain/entities/...
创建User、Product、CartItem等实体类。
#### [新增] lib/data/repositories/...
创建模拟仓库,这些仓库会返回用于填充用户界面的静态数据(例如Sarah Mitchell的个人资料信息)。
### 4> 表现层(页面与BLoC模块)
#### [新增] lib/presentation/pages/main_scaffold.dart
构建一个包含底部导航栏的框架结构,该导航栏能链接到首页、收藏列表、购物车、优惠活动页面和个人资料页面。
#### [新增] lib/presentation/blocs/...
- ProfileBloc:个人资料模块
- HomeBloc:首页模块
- CartBloc:购物车模块
- WishlistBloc:收藏列表模块
#### [新增] lib/presentation/pages/profile_page.dart
将[screen1_profile.html](file:///Users/atuoha/Documents/Flutter_Apps/care_app/stitch_data/screen1_profile.html)文件转换成Flutter Widget形式。使用NetworkImage显示个人资料照片。
#### [新增] lib/presentation/pages/home_page.dart
将screen2_home.html文件转换成Flutter Widget形式。
#### [新增] lib/presentation/pages/cart_page.dart
将screen3_cart.html文件转换成Flutter Widget形式。
#### [新增] lib/presentation/pages/wishlist_page.dart
将screen4_wishlist.html文件转换成Flutter Widget形式。
## 验证计划
### 自动化测试
- 运行flutter analyze命令,确保代码质量良好且符合Dart的最佳实践规范。
- 如果为BLoC逻辑添加了基础单元测试,那么还需要运行flutter test命令。
### 手动验证
- 我们会要求用户在iOS模拟器或Android模拟器上使用flutter run命令运行应用程序。
- 验证底部导航栏是否能正常工作,同时确认所有4个页面的布局和外观是否符合Stitch提供的HTML模板设计。
这个评审阶段尤为重要,因为它能让你在代码生成开始之前就对整个架构进行规划。与其在项目构建完成后再去解决问题,不如尽早确定发展方向,确保最终生成的应用程序能够符合你预期的标准和结构。



接下来,Antigravity会请求权限来设置域名并安装所需的依赖项。一旦获得许可,它就会开始按照“清洁架构”原则来实现Flutter项目。
在这个阶段,它会建立文件夹结构,将表示层、业务逻辑层和数据层分开,并安装所有必要的依赖项,从而使项目准备好进行开发。这样就能为应用程序打下坚实的基础,确保代码组织有序、易于维护,并遵循最佳实践。

在所有这些操作进行的过程中,Antigravity会通过标记每项任务的成功完成情况来跟踪进度。这样你就可以实时了解已经完成了哪些工作,还有哪些任务尚未完成,从而逐步监控整个工作流程。

随后,Antigravity会开始创建项目中的各个文件。对于它生成的每一个文件,你都可以选择“接受”或“拒绝”。这样你就可以实时查看生成的结果,确保每一段代码都符合你的要求,然后再将其纳入项目中。
包含已生成代码的Antigravity界面截图” height=”400″ loading=”lazy” src=”https://cdn.hashnode.com/uploads/covers/63a47b24490dd1c9cd9c32ff/64242ab4-8b08-4f7b-9338-aab8174f3715.png” style=”display:block;margin:0 auto” width=”600″/>
当Antigravity完成各项设置后,它会逐步生成项目文件。请不要因为编辑器中出现的红线而担心,这些红线通常表示某些引用的文件尚未生成,但Antigravity会在后续步骤中创建这些文件。
需要牢记的一点是所使用的模型,因为它处理复杂任务的能力会直接影响项目生成的流畅程度以及文件实现的准确性。

一旦所有文件都被生成,Antigravity会请求权限来运行flutter analyze。这个过程会检查项目中是否存在语法错误、未使用的导入语句以及其他潜在问题。分析完成后,该工具会生成一份关于所有变更的说明文档,总结项目中新增了什么内容、修改了哪些部分,或者对哪些部分进行了调整。此时,你也可以通过在这些说明中添加评论来指出那些可以改进或修改的地方。
针对我们的工作流程,Antigravity生成了一份如下内容的说明文件:
说明文档内容
我们成功地将Stitch提供的4个界面转换成了一个使用Clean Architecture架构和BLoC模式进行状态管理的Flutter应用程序。这份文档总结了我们所完成的工作。
应用程序结构
代码被组织成了三个主要的层次,这样的结构确保了各功能模块之间的清晰分离,并使得整个系统具备可测试性。
1. domain 层
-
实体类:创建了核心的业务对象,包括
用户、
产品以及
购物车项,这些类位于
lib/domain/entities/目录下。 -
仓库接口:定义了抽象接口
AppRepository,该接口规定了数据获取的相关方法(例如getUserProfile()、getFeaturedProducts())。
2. data 层
-
模拟实现:在
lib/data/repositories/mock_app_repository.dart文件中实现了MockAppRepository,以此替代远程后端服务。这个仓库返回的数据与Stitch原始HTML文件中的信息非常相似。
3. presentation 层
-
状态管理(BLoC模式):创建了四个BLoC模块,用于在用户界面中无缝地管理状态:
-
ProfileBloc -
HomeBloc -
CartBloc -
WishlistBloc
-
-
用户界面组件:将Stitch的4个界面转换成了Flutter widgets:
-
profile_page.dart:显示带有渐变边框的用户头像、统计信息以及菜单选项。 -
home_page.dart:包含水平滚动的搜索/分类栏、展示渐变效果的标题横幅和“立即购买”按钮、水平滚动的推荐产品列表,以及畅销产品的网格视图。 -
cart_page.dart:包含促销横幅、带有增减操作界面的购物车项卡片,以及结账摘要区域。 -
wishlist_page.dart:提供标签筛选功能(所有商品/特价商品),并以交互式列表形式展示愿望清单中的产品。
-
-
导航结构:在
lib/presentation/pages/main_scaffold.dart文件中创建了MainScaffold,并按照设计要求配置了底部导航栏和浮动操作按钮。 -
主题设置:在
lib/core/theme.dart文件中定义了一个适用于整个应用程序的AppTheme,该主题遵循了指定的主色调(#E31651)、使用了Google Fonts中的“Plus Jakarta Sans”字体,并根据HTML文件中的Tailwind配置实现了深色/浅色模式切换功能。 -
我们通过运行
flutter analyze来验证了代码的结构和依赖关系的处理情况。整个代码库结构清晰且非常健壮。 -
所有Flutter相关包(
flutter_bloc、equatable、googlefonts)都已被动态加载并且配置正确。
4. core
验证结果
后续步骤
现在你可以通过执行以下命令,在iOS模拟器或Android模拟器上运行这个应用程序:
cd /Users/atuoha/Documents/Flutter_Apps/care_app
flutter run
在这个阶段,你还可以查看所有已生成的文件及其代码。这时,你就需要发挥自己的主导作用了:人工智能会充当你的助手,提供完整的实现方案,而你需要仔细检查这些代码,找出可以优化的地方,并进行相应的改进,从而确保应用程序的性能更好、架构更清晰,同时尽量减少瓶颈现象。




当所有任务都完成并经过检查后,项目就可以继续进行下去了。下一步就是运行应用程序——系统会编译Flutter代码,并在目标平台上启动它,这样你就能看到最终生成的应用程序的实际运行效果了。

运行应用程序
一旦项目生成完毕,打开项目目录,然后执行以下命令:
flutter pub get
flutter run
或者,你也可以让人工智能来帮你运行应用程序。在Android设备上运行应用程序时,你需要通过Android Studio使用模拟器;而在iOS设备上,则需要通过Xcode使用模拟器。
你也可以直接在真实的设备上运行应用程序。在这种情况下,只需让人工智能帮忙将APK文件打包好,然后按照步骤说明在本地安装并运行该应用程序即可。
对于Android设备:
-
通过USB将手机连接到电脑,并确保在“开发者选项”中开启了USB调试功能。
-
执行
flutter run命令,Flutter会自动检测到设备并安装应用程序。
对于iOS设备:
-
需要将一台真实的iPhone连接到Mac电脑上。
-
在设备上授权电脑,然后就可以通过Xcode或Flutter直接运行应用程序了。
如果没有模拟器、仿真工具或真实设备,你是无法运行应用程序的,因为Flutter需要目标平台才能构建并显示用户界面。

部分截图




在Github上生成的代码: https://github.com/Atuoha/care_app
Stitch Design的链接: https://stitch.withgoogle.com/projects/2811186611775892217
使用Antigravity Skills
Antigravity还支持一种名为“Antigravity Skills”的系统,这些扩展功能能够进一步提升代理程序的功能,使其不仅仅局限于生成基本的项目界面。其中最典型的例子就是Stitch Skills——它可以直接集成到Antigravity中,从而简化用户界面的生成过程,并实现设计工作流程的自动化。
Stitch Skills使代理程序能够解读用户界面布局,生成可重复使用的设计组件,并根据用户的指令自动构建页面结构。在开发复杂的应用程序时,这一功能尤为实用,因为它能减少重复性劳动,同时确保整个项目的一致性。
官方的Stitch Skills仓库地址如下:
https://github.com/google-labs-code/stitch-skills
若要在Antigravity中安装Stitch Skills,可以使用以下命令克隆该仓库:
npx skills add google-labs-code/stitch-skills --global
安装完成后,可以直接在Antigravity内部访问和管理这些插件。它们能帮助你实现以下功能:
-
生成可在多个页面中重复使用的UI组件。
-
根据Stitch提供的指令自动生成界面布局。
-
通过让代理程序自动应用统一的设计模式,简化工作流程。
一旦在Antigravity中安装了Stitch Skills,它们就能为你开启更高级的UI生成与工作流程自动化功能。本质上,这些插件能让代理程序根据你的设计要求或生成的布局,自动将其转化为结构化、可重复使用的组件。
<安装完Stitch Skills后,您可以使用它来执行以下操作:>
-
生成可复用的组件:你可以选择设计中的某些部分,比如产品卡片、导航栏或个人资料部件,该工具会生成可在多个页面中重复使用的Flutter组件。这样一来,你无需手动重新编写代码,就可以在不同的页面上使用这些组件。
-
自动构建布局结构:Stitch Skills能够解读你的设计布局,并自动为Flutter项目生成结构化的用户界面层次结构。这样既节省时间,又能确保设计的一致性。
-
统一应用设计模式:该工具能在整个应用程序中统一样式、间距和布局规则,从而使所有页面都遵循相同的设计语言和视觉风格。
-
修改生成的组件:你可以提供具体指令来调整这些组件,例如更改内边距、颜色或对齐方式,工具会自动更新相应的Flutter部件。
-
与MCP工作流程集成:通过Antigravity的MCP服务器使用Stitch Skills时,它能够自动从Stitch系统中获取最新的设计资源,并重新生成或更新组件,而不会破坏现有的代码。
如何在Antigravity中使用Stitch Skills:
-
安装完成后,在Antigravity中打开“技能”面板。
-
选择你想要使用的具体技能,例如“生成可复用组件”或“构建页面布局”。
-
将该技能应用于你需要进行操作的布局、页面或组件上。
-
如有需要,可以提供额外的调整说明或细节要求。
-
运行该技能,它就会自动生成Flutter代码或更新现有组件。
简而言之,Stitch Skills能够将设计思路直接转化为可执行的代码组件,从而让从设计到开发出功能完备的Flutter页面的过程变得更快更简单,同时还能让你保持对整个开发过程的掌控力与灵活性。
通过Antigravity使用Stitch Skills,你可以在充分利用人工智能辅助开发的同时,完全掌控应用程序的设计和结构。这正是人工智能作为得力助手、执行重复性或复杂任务的最佳例证——而你依然能够主导整个项目的进展方向。
结论
人工智能正在改变软件开发的模式,但它并不会取代开发者的作用。
相反,它推动开发者向更高层次的抽象思维迈进。
开发者不再需要花费大量时间编写代码语法,而是可以将更多精力投入到系统设计、架构规划以及指导智能工具生成具体实现上。
像Stitch和Antigravity这样的工具,正是这种变革进程的早期体现。
它们让开发者能够以前所未有的速度,将创意转化为实际可用的界面和功能完备的应用程序。
在这个新的发展时代,最有价值的技能已经不再是快速编写代码了。
真正重要的是要充分理解各种系统,从而能够指导那些用于构建这些系统的工具的使用。
参考资料
Anthropic的CEO预测AI模型可能具备端到端的工程能力
Yahoo Finance报道——Anthropic的CEO认为AI模型在6到12个月内就能处理大多数软件工程任务
https://finance.yahoo.com/news/anthropic-ceo-predicts-ai-models-233113047.html
Spotify的顶尖开发人员在2026年一句代码都没编写
Yahoo Finance报道——Spotify的CEO表示,这些顶尖开发人员目前是在监督AI生成的代码,而不是亲自编写它们
https://finance.yahoo.com/news/spotify-ceo-says-top-developers-103101995.html
Block宣布进行裁员,作为其人工智能驱动的重组计划的一部分
AP News报道——Block的裁员举措凸显了整个行业向人工智能发展的趋势
https://apnews.com/article/block-dorsey-layoffs-ai-jobs-18e00a0b278977b0a87893f55e3db7bb
Antigravity的代理模式与设置说明文档
Antigravity官方文档
https://antigravity.google/docs/agent-modes-settings
Google Developers Blog关于Antigravity的公告
Google Developers Blog报道——使用Google Antigravity进行开发:我们全新的智能开发平台
https://developers.googleblog.com/build-with-google-antigravity-our-new-agentic-development-platform/
Stitch Skills相关资源库
GitHub——Stitch Skills
https://github.com/google-labs-code/stitch-skills
Flutter官方文档
Flutter.dev — Flutter官方文档
https://flutter.dev
Dart语言官方文档
Dart.dev — Dart语言官方文档
https://dart.dev