# alexflutter **Repository Path**: vate/alexflutter ## Basic Information - **Project Name**: alexflutter - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-13 - **Last Updated**: 2026-05-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AlexFlutter 基于 Flutter 3.32 + Riverpod + Dio + GoRouter 的快速开发脚手架。 **核心理念:约定优于配置。** 框架替你规定好文件放哪里、模块叫什么名、页面怎么跳,让你专注业务,不交重复劳动的「开发税」。 --- ## 技术栈 | 类别 | 选型 | 说明 | |------|------|------| | 状态管理 | **Riverpod** | Notifier / AsyncNotifier,编译安全、无 BuildContext 依赖 | | 路由 | **GoRouter** | 官方推荐声明式路由,无需代码生成 | | 网络 | **Dio** | 4 层拦截器链(日志→请求头→业务码→异常处理) | | 屏幕适配 | **FlutterScreenUtil** | 375×812 设计稿基准 | | 本地化 | **intl + ARB** | 中英文双语言,类型安全 | | 日志 | **logger** | 标签化彩色输出,Debug 模式启用 | | 图片 | **Image.network 封装** | 自带占位图和加载失败兜底 | | 代码模板 | **Mason** | 一键生成业务模块骨架 | --- ## 一分钟看懂目录结构 ``` lib/ ├── core/ ← 框架核心(不要改) │ ├── base/ ViewModel 基类 │ ├── config/ 环境配置(dev/staging/prod 切换 baseUrl) │ ├── network/ Dio 封装 + 4 拦截器 │ ├── router/ GoRouter 路由配置 │ ├── theme/ 亮暗双主题 + 颜色/间距/字号体系 │ └── utils/ 日志 + 表单验证 ├── common/ ← 通用资产(跨模块共享) │ ├── widgets/ 按钮、输入框、Scaffold、图片、加载/错误/空状态 │ ├── utils/ AppToast 提示工具 │ ├── constants/ 全局常量 │ └── extensions/ BuildContext 和 String 扩展 ├── features/ ← 业务模块(你的战场) │ └── home/ 示例:view + view_model + widgets └── generated/ ← 自动生成代码(不要手改) └── l10n/ gen-l10n 输出的本地化代码 ``` --- ## 快速开始 ### 1. 克隆并安装依赖 ```bash git clone https://gitee.com/vate/alexflutter.git cd alexflutter fvm flutter pub get # 镜像不可达时加 PUB_HOSTED_URL=https://pub.flutter-io.cn ``` ### 2. 生成本地化代码 ```bash fvm flutter gen-l10n ``` ### 3. 运行 ```bash fvm flutter run ``` ### 4. 创建新页面 ```bash mason make feature_page --feature-name login # 会生成: # features/login/ # ├── view/login_page.dart # ├── view_model/login_vm.dart # └── widgets/ ``` --- ## 常用命令速查 ```bash fvm flutter analyze # 静态分析 fvm flutter test # 运行测试 fvm flutter gen-l10n # 生成本地化代码 fvm flutter run # 运行 fvm flutter build apk # 构建 Android # 切换接口环境(main.dart 中修改) AppConfig.init(Env.dev); # 开发 AppConfig.init(Env.staging); # 测试 AppConfig.init(Env.prod); # 生产 ``` --- ## 文档导航 | 文档 | 适合谁 | |------|--------| | [架构设计](docs/guides/architecture.md) | 想了解整体设计思路 | | [网络请求](docs/guides/network.md) | 写接口调用的同学 | | [路由指南](docs/guides/routing.md) | 处理页面跳转 | | [状态管理](docs/guides/state-management.md) | 写页面逻辑 | | [主题定制](docs/guides/theme.md) | 改颜色/字体 | | [本地化](docs/guides/localization.md) | 加多语言 | | [通用组件](docs/guides/common-widgets.md) | UI 开发 | | [代码生成](docs/guides/mason-templates.md) | 快速创建模块 | ## 新增内容说明 本次新增: - **环境配置**(`core/config/`):`AppConfig.init(Env.dev)` 切换 dev/staging/prod,`AppConfig.baseUrl` 全局读取 - **Toast 提示**(`common/utils/app_toast.dart`):`AppToast.success(ctx, '消息')` 统一操作反馈 - **图片组件**(`common/widgets/app_image.dart`):`AppImage.network(url)` 自带占位图和加载失败兜底