乐于分享
好东西不私藏

五天,我把一套交易系统的原生 App 做出来了

五天,我把一套交易系统的原生 App 做出来了
从 Flutter 工程到 Android v1.0.0 正式包的一次开发记录

前几天,我在项目目录里建了一个新的 Flutter 工程。经过五天的 AI 深度配合,Android v1.0.0 正式签名包生成,大小 41M,签名校验通过,可以安装、覆盖升级,也具备了正式分发的条件。

这套 App 接在一套已经运行的交易系统后面。账户、行情、订单、资产和后台配置都有现成的数据,目标不是摆几张演示页面,而是把这些能力重新组织成一套适合手机使用的原生界面。同一个账号在网页端和 App 登录,看到的资产和订单必须一致;运营在后台调整菜单,App 也要跟着变化;涉及下单和资金的地方,前后端口径必须对得上。

五天里,我先拆需求、定架构、安排开发顺序、验证接口和真机验收。Claude Code 负责读已有仓库,找到后端接口和网页端的业务实现,再完成代码开发工作。以前一个项目里由产品、前端、后端和测试分别处理的事情,这次集中到了我一个人手里。

第一天,先把最难的交易闭环跑起来

工程建好后,我先接网络层、登录和安全存储,再做行情列表与 K 线。App 使用 Flutter,接口层接入原系统后端,登录凭证保存在手机的安全存储里。行情页拿到真实币种和实时价格,K 线接入 TradingView,支持多周期、MA、成交量和 MACD,顶部报价跟随行情更新。

接下来是M合约和 永续。M合约要从选择周期、确认方向和金额,一直走到倒计时、自动结算与订单记录;U 本位要完成资金划转、开仓、持仓、实时盈亏和最终平仓。它们不是几个按钮的组合,每一步都连着账户余额、保证金、手续费、结算时间和订单状态。

我没有用模拟数据把页面先“演”出来,而是直接对接真实接口,在 Android 真机上跑完整流程。M合约的上涨和下跌两条结算路径都做了实际验证,U 本位从划转到开仓、再到平仓,前后余额逐笔核对。页面显示出来只是第一步,订单能落库、状态能更新、钱能对上,才算这一段真正完成。

接下来的两天,把它从“能交易”补成一套完整 App

核心交易跑通以后,我重新整理了整套移动端界面。首页、行情、交易、资产和“我的”使用同一套深色视觉,币币现货、闪兑、M合约和 U 本位收进统一的交易入口。用户可以在首页看资产和热门行情,也可以直接进入充值、提现、划转、邀请和服务中心。

资产部分接入了平台、理财和合约三个账户。总资产、账户分布、币种明细、资金流水、充值网络、提现手续费和实际到账金额都在 App 内显示。理财、质押、DeFi、助力贷、申购、推广中心、公告、帮助中心、实名认证、邮箱认证和银行卡等功能,也都做成了原生页面。

我还把 App 接进了原系统的运营配置。底部导航、首页服务宫格、“我的”菜单和资产页签,都由后台决定开关、顺序和跳转。运营人员调整功能时,不需要为改一个入口重新发版。语言最终做了七种:简体中文、繁体中文、英语、日语、韩语、越南语和泰语,同一套功能在不同语言下保持相同的字段和操作顺序。

最后两天,只做真机验收和正式发布

功能集中完成后,我把工作重心全部转到真机。每轮打包后都通过 adb 安装到真实 Android 设备,从首页开始逐屏点击:登录、行情刷新、K 线、四种交易入口、资产、充提、理财、推广、语言切换,再完整走一遍账户退出和重新登录。

将安卓手机连接到 Macos ,先让 Claude 完成自测,然后我再真机上再进行实测。

交易类 App 的验收不能只看界面。价格是否连续更新、倒计时是否按服务端时间运行、订单到期后能否拿到结算结果、平仓前后的余额能否对上、后台关闭一个入口后 App 是否同步变化,这些都要实际操作以后才有答案。我把每一项结果写回项目记录,再继续下一项,最后留下了一套可以重复执行的真机检查清单。

Android release 构建接入正式签名证书,同时开启代码与资源压缩,去掉正式包不需要的模拟器架构。最终 APK 为 41M,签名身份和完整性校验通过。桌面图标、启动页、登录保持、K 线加载、图片选择和外部链接也跟着正式包重新走了一遍。

到这里,这个项目不再只是“Flutter 工程能运行”,而是一套有真实账户、真实行情、真实订单和后台运营能力的原生 App,并且已经变成可以安装和持续升级的正式版本。

记一下这五天

这五天里,AI 写了绝大多数代码,但开发顺序不是 AI 决定的。先做哪条交易链路,哪些接口要对照后端源码,金额显示保留几位,什么结果可以进入下一轮,最后能不能发正式包,都由我判断。

过去我会先写 PRD、做原型,再找前端和后端分工,等联调以后交给测试。现在,AI Agent 把读代码和实现的速度提高了很多,我可以自己把产品、技术和验收连在一起。工作并没有变成输入一句话、等软件自己出现。我只是不用再把大量时间花在任务拆给谁、接口等谁、修改排到哪一天上,而是把注意力放在系统设计、拍板最后能不能正常使用。