# swift_app-dev2 **Repository Path**: kazeik/swift_app-dev2 ## Basic Information - **Project Name**: swift_app-dev2 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-01-07 - **Last Updated**: 2026-01-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # swift_app ## 项目固定版本 Flutter Version3.38.3 > 开发请先阅读并严格遵守flutter项目开发规范 `STANDARD.md`。 ## 环境与启动 - Flutter 3.38.3(务必保持一致,避免构建偏差)。 - chmod +x setup_fvm_and_lock_flutter.sh (赋予权限) - ./setup_fvm_and_lock_flutter.sh 3.38.3 (运行脚步) - ./scripts/check_flutter_version.sh (检查版本) - 代码/资源生成(添加image svg资源后都要跑):`dart run build_runner build` - 运行真机web: flutter run -d web-server --web-hostname=0.0.0.0 --web-port=8080 (然后查看本地ifconfig | grep "inet " | grep -v 127.0.0.1,去真机浏览器运行http://(你的电脑ip):8080, 注意手机电脑处于同一网络) ## 目录脉络(仅要点) - `lib/core`:基础服务、主题、国际化、网络、生成代码等,按规范新增核心能力。 - `lib/page`:业务、通用和公共页面模块,严格按 `STANDARD.md` 的目录层级和命名。 - `lib/widget`:全局简单 UI 组件;复杂且业务无关的组件放 `lib/core/component`。 - `assets/`:`image/` 放位图或复杂图;`svg/` 只放轻量切图图标;`fonts/` 自定义字体。 ## 状态管理与页面写法(GetX) - 每个页面文件必须同时包含 `View` + `Logic`(不单独拆 logic 文件)。 - 继承选择:需要请求/loading/empty/fail 的页面用 `RequestLogic` 配合 `RequestView`;纯状态页面用 `GetxController`。 - 依赖注入:`final logic = Get.put(XXXLogic());`,跨组件取用 `Get.find()`,销毁遵循 GetX 生命周期。 - 命名:文件用 `snake_case`,类名 `[Module][Feature]View/Logic`,与路由及文件路径保持同样的层级含义。 ## 路由(全路径模式) - 全部路由集中在 `lib/app_router.dart`,初始路由为 `AppRouter.splash`。 - 路由参数统一使用 `Map` 传递/接收:`Get.toNamed(AppRouter.movieDetail, arguments: {'id': id});` ## 主题(ThemeService) - 主题入口:`lib/core/theme/theme_default.dart`(开发时改这里),动态主题 JSON 由 `ThemeService` 拉取并应用。 - 使用时从 `ThemeService.get` 取色/取配置,例如 `ThemeService.get.color('primary')` ## 国际化 - 语言包位置:`lib/core/locale/translations/zh_CN.dart` 与 `en_US.dart`,默认语言 `zh_CN`,`LocaleService` 负责切换。 - key 统一定义在 `lib/core/value/locale_key.dart` ,页面取文案用 `LocaleKey.xxx.tr`. ## 资源管理与生成 - `assets/svg/` 仅放小图标类 SVG;大图 复杂图片放 `assets/image/`。 - 所有资源都通过 `lib/core/gen/assets.gen.dart` 引用,避免手写字符串路径;新增/删除资源后运行 `build_runner` 更新。 如有疑问,优先查阅 `STANDARD.md`,再对照现有实现,保持风格一致。