一、摘要
我是大一建筑工程专业的学生,出于对防灾技术的兴趣,用 TRAE SOLO 在 6 天 内开发了 RhythmQuake —— 一个跨平台(Windows + Android)实时地震预警应用。它通过 WebSocket 同时接入全球 31 个地震数据源 (中国地震台网、日本气象厅、美国 USGS、欧洲 EMSC 等),支持实时预警推送、S 波到达倒计时、语音播报和交互式地震地图。全程由 SOLO 辅助完成,彻底改变了我一个人从零开始的开发效率。
二、背景
我是一名 大一建筑工程专业的学生 。虽然目前专业课还没深入讲到抗震设计,但我一直对地震预警和防灾技术有浓厚兴趣。一次偶然的机会了解到,全球不同国家的地震预警数据是各自独立的 —— 日本的 JMA、中国的 CENC、美国的 USGS……都需要分别关注。
市面上缺乏一个能 聚合多国数据、统一展示、实时预警 的应用。我之前只是入门了 Flutter,原本觉得做个这样的项目至少要大半个月。但之前在学校参加竞赛时被推荐了 TRAE SOLO ,这次决定真正用它来挑战一下。
三、实践过程
任务拆解
这个项目我拆成了 4 大模块逐步实现:
数据源层 —— 通过 WebSocket 接入多个地震数据平台
计算引擎 —— 震中距离计算、S 波到达时间、烈度预估
可视化层 —— 交互式地震地图 + 多图层叠加
预警交互层 —— 语音播报、窗口置顶、历史记录管理
SOLO 在各个环节的帮助
① API 连接(帮助最大的部分)
接入 WebSocket 数据源是整个项目最基础也最关键的环节。我需要连接到 Wolfx、FanStudio、P2PQuake 等多个 WebSocket 服务端,每个数据源的 JSON 格式都不一样。
我的 Prompt:
“帮我写一个 Flutter WebSocket 服务基类,支持自动重连、
指数退避策略、心跳检测,并能够广播解析后的地震消息”
SOLO 帮我生成了基础的 WebSocket 框架,我在这个基础上扩展支持了多种数据源格式的自动识别。其中 连接问题和重连逻辑的 bug 大部分都是 SOLO 帮我修复的 —— 比如 WebSocket 断开后无法自动恢复、心跳超时处理等问题,我自己调试可能要花很久,但 SOLO 很快就能定位到问题所在并给出修复方案。
② 地图图层(另一个大难点)
地震地图需要叠加多个图层:底图、震度图层、测站标记、地震波扩散动画。我用的是 flutter_map ,但对地图图层渲染并不熟悉。
通过和 SOLO 多轮交互,逐步实现了:
- NIED 日本强震测站震度图层
- KMA 韩国气象厅震度图层
- S-net 海底地震观测网数据层
- 地震波扩散动画(P 波/S 波)
③ 数据模型与去重逻辑
31 个数据源的消息格式各不相同,需要统一的数据模型。我让 SOLO 帮我设计了 QuakeMessage 模型,并用工厂方法实现多格式解析。去重逻辑也是 SOLO 建议用 时间+坐标 作为组合键的方案,比我想的简单多了。
踩过的坑
坑 解决方式 WebSocket 断线后不重连 SOLO 帮我加入了线性退避重连 + 多服务器故障转移 多个数据源重复上报同一地震 SOLO 建议用时间+坐标组合去重,缓存 1 小时自动清理 地图性能问题(大量测站标记渲染) 优化了图层渲染策略,只加载可视区域内的标记 Windows 托盘图标集成 SOLO 帮忙调试了 window_manager 和 tray_manager 的配置
四、成果展示
代码仓库:当前项目仍在开发,部分内容未经人工审查,为不造成可能的错误信息不被传播,当前并未上传
五、效果与总结
提效对比
任务 如果没有 SOLO(预估) 实际用 SOLO 提效 WebSocket 多源连接框架 3-4 天 ~1 天 ~75% 数据模型与解析 2-3 天 ~0.5 天 ~80% 地图图层集成 5-7 天 ~1.5 天 ~75% Bug 调试修复 3-4 天 ~1 天 ~70% 整体项目完成 15-20 天 6 天 ~70%
我对 AI 工作方式的思考
-
SOLO 在流程中的角色: SOLO 处理了约 70% 的基础代码生成和 bug 修复 ,我专注于架构设计和业务逻辑验证。这种协作模式让我这个 Flutter 新手也能做出有一定规模的项目。
-
最让我惊喜的是: 以前写代码遇到 bug 要翻半天 Stack Overflow,现在直接把报错贴给 SOLO,它不仅能指出问题,还能直接给出修复代码。 项目里大部分的连接问题都是 SOLO 帮我修复的。
-
可复用的经验:
- BaseSourceService 抽象基类可以复用到任何 WebSocket 数据聚合项目
- 数据去重算法适用于多源数据聚合场景
- 和 AI 协作的最佳实践: 把大任务拆成小模块,让 AI 逐个击破
下一步计划
这个项目我会继续做下去!下一步计划加入 测站摇晃检知 功能 —— 利用设备加速度传感器检测本地震动,结合地震波到达时间做本地验证,进一步提高预警的可信度。
附:项目技术栈
框架:Flutter + Dart
状态管理:Provider
地图:flutter_map + 多图层叠加
实时通信:WebSocket(Wolfx / FanStudio / P2PQuake)
数据库:SQLite(历史记录存储)
语音播报:flutter_tts
定位:geolocator
桌面集成:window_manager + tray_manager
数据源覆盖:31 种(中国/日本/韩国/台湾/美国/欧洲等)
代码规模:60+ 源文件,10000+ 行代码
开发周期:6 天


