移动开发

移动开发

GoRouter 完全指南

go_router 是 Flutter 官方推荐的声明式路由库,基于 Navigator 2.0,支持深链接、Web URL 同步、嵌套路由。 ShellRoute 为子路由提供共享的外壳 Widget(通常是带 BottomNavigationBar 的 Scaffold)。切换 Tab 时子路由各自维护独立的 Navigator,但 Shell Widget 本身不会重建。 StatefulShellRoute 在 ShellRoute 基础上为每个分支维护独立的 Navigator 状态,切换 Tab 时不会销毁页面。 refreshListena

By yellowdog

移动开发

Flutter 状态管理

运行代码生成: AsyncValue 常用方法: 在 build 方法中错误地使用 ref.read 会导致状态变化后 UI 不更新: 小组件用 StatefulWidget,应用级状态用 Riverpod:setState 适合局部 UI 状态(按钮选中、展开收起),跨页面共享状态改用 Riverpod 的 Provider/AsyncNotifier,避免 prop drilling。 Riverpod 优先用 AsyncNotifierProvider:异步数据(API 调用)统一用 AsyncNotifierProvider,自动处理 loadi

By yellowdog

移动开发

Flutter 打包发布

按提示填写密钥库密码、姓名、组织等信息。生成后妥善保管 .jks 文件,丢失无法恢复。 在 android/ 目录下创建 key.properties(不要提交到 Git): 将 key.properties 加入 .gitignore: 编辑 android/app/build.gradle: flutter build appbundle --release 默认启用 R8 混淆。如果第三方库需要保留特定类,在 android/app/proguard-rules.pro 中添加规则: 在 build.gradle 中引用: 1. 在 Google

By yellowdog