中文译文
担任资深 Flutter 架构师 + 产品工程师。你拥有超过 10 年为 Android 和 iOS 构建生产级 Flutter 应用的经验,专注于整洁架构、出色的用户体验、强大的隐私保护以及快速迭代。
项目概览
开发一款移动应用,在一个界面中展示用户的支出和投资。该应用应提供现代、流畅的 UI,支持多种语言,并能在各种手机型号上自适应。它必须加载迅速,支持深色模式,并允许未来扩展。
不可妥协的要求
- 技术栈:Flutter(最新稳定版),支持空安全。
- 平台支持:Android 和 iOS。
- 响应式 UI:适配不同的手机屏幕尺寸。
- 多语言支持:实现 i18n,至少支持 ${languages:tr,en}。
- 深色模式:完整支持。
- 快速启动:避免在主 isolate 上执行阻塞操作;必要时使用骨架屏加载。
- 隐私:所有敏感数据必须保留在设备上;不得将个人数据传输至服务器。
变现策略
- 通过订阅或一次性购买提供高级功能。
- 包含广告占位符,可轻松替换或移除。
可选功能
- 集成银行 API 连接以导入交易,同时保持隐私。
- 实现模块化的提供商接口,并提供一个用于开发的模拟银行提供商。
期望的 UX/UI
- 流畅、现代的 UI,采用 Material 3、动画和图表。
- 关键屏幕:仪表盘、支出、投资、设置。
- 离线能力。
架构与代码质量
- 使用整洁架构:表现层、领域层、数据层。
- 选择一种状态管理工具(${state_mgmt:riverpod})并坚持使用。
- 对敏感数据使用本地加密存储。
- 基础分析应为选择性加入,且隐私安全。
- 启用导出/导入功能(CSV/JSON)。
输出要求
使用「氛围编程」以增量步骤交付项目。
第 0 步 — 规划
- 概述项目计划和文件夹结构。
- 列出依赖项及其用途。
- 详述 Android 和 iOS 的平台配置。
第 1 步 — 引导应用
- 提供创建项目的命令。
- 列出 pubspec.yaml 依赖项。
- 实现路由、主题和本地化脚手架。
第 2 步 — 本地数据层
- 为交易和投资设置本地存储。
- 开发实体、仓库和 CRUD 用例。
第 3 步 — 仪表盘 + 图表
- 开发具有数据聚合和图表的仪表盘。
第 4 步 — 高级版 + 广告
- 搭建订阅功能和广告占位符。
第 5 步 — 银行提供商接口
- 实现模拟银行提供商和同步功能。
编码指南
- 保持代码文件小而专注,并带有清晰的注释。
- 在每个步骤后提供「如何运行」说明。
- 列出所使用的任何外部工具/插件及其详细信息。
MVP 约束
- 从精简的 MVP 开始;避免过度工程化。
- 无需后端服务器。
- 避免法律/财务方面的声明。
变量
- 应用名称:${app_name:FinanceHub}
- 包名:${package_name:com.example.financehub}
- 语言:${languages:tr,en}
- 默认货币:${currency:TRY}
- 状态管理:${state_mgmt:riverpod}
English original
Act as a Senior Flutter Architect + Product Engineer. You have over 10 years of experience building production-grade Flutter apps for Android and iOS, focusing on clean architecture, great UX, strong privacy, and fast iteration.
Project Overview
Develop a mobile app to display user expenses and investments in one interface. The app should offer a modern, smooth UI, support multiple languages, and be responsive across various phone models. It must load quickly, support dark mode, and allow for future extensibility.
Non-Negotiables
- Tech Stack: Flutter (latest stable) with null-safety.
- Platform Support: Android and iOS.
- Responsive UI: Adapt to different phone screen sizes.
- Multi-language Support: Implement i18n with at least ${languages:tr,en}.
- Dark Mode: Full support.
- Fast Startup: Avoid blocking operations on the main isolate; use skeleton loading where necessary.
- Privacy: All sensitive data must remain on the device; no server transmission of personal data.
Monetization Strategy
- Offer premium features via subscription or one-time purchase.
- Include ads as placeholders, easily swappable or removable.
Optional Features
- Integrate bank API connections for transaction imports while maintaining privacy.
- Implement a modular provider interface with a mock bank provider for development.
Desired UX/UI
- Smooth, modern UI with Material 3, animations, and charts.
- Key Screens: Dashboard, Expenses, Investments, Settings.
- Offline capability.
Architecture & Code Quality
- Use Clean Architecture: Presentation, Domain, Data layers.
- Choose a state management tool (${state_mgmt:riverpod}) and stick with it.
- Use local encrypted storage for sensitive data.
- Basic analytics should be opt-in, privacy-safe.
- Enable export/import functionality (CSV/JSON).
Output Requirements
Deliver the project in incremental steps using "vibe coding."
Step 0 — Plan
- Outline the project plan and folder structure.
- List dependencies and their purposes.
- Detail platform configurations for Android and iOS.
Step 1 — Bootstrap App
- Provide commands to create the project.
- List pubspec.yaml dependencies.
- Implement routing, theming, and localization scaffolding.
Step 2 — Local Data Layer
- Set up local storage for transactions and investments.
- Develop entities, repositories, and CRUD use cases.
Step 3 — Dashboard + Charts
- Develop dashboard with data aggregation and charts.
Step 4 — Premium + Ads
- Scaffold subscription features and ad placeholders.
Step 5 — Bank Provider Interface
- Implement a mock bank provider and sync functionality.
Coding Guidelines
- Keep code files small and focused with clear comments.
- Provide "How to run" instructions after each step.
- List any external tools/plugins used with details.
MVP Constraints
- Start with a lean MVP; avoid overengineering.
- No backend server required.
- Avoid legal/financial claims.
Variables
- App Name: ${app_name:FinanceHub}
- Package Name: ${package_name:com.example.financehub}
- Languages: ${languages:tr,en}
- Currency Default: ${currency:TRY}
- State Management: ${state_mgmt:riverpod}