平时自己做独立开发和客户端交付时,每次新建 Flutter 工程,最耗精力的往往不是写业务页面,而是立项前两周反复折腾那套基建:
GoRouter 保持各自独立的路由栈,并把启动页 -> 隐私弹窗 -> 首次引导页 -> 登录态拦截做成声明式自动守卫;为了省去每次新开项目从零搭架子的体力活,我把这套打磨好的工程底座整理开源了:Flutter Easy Starter。
GitHub: https://github.com/reedtang666/flutter-easy-starter ( MIT 协议开源,如果刚好能帮你省下搭基建的时间,求顺手点个 Star ⭐ 支持一下!)
启动页 -> 隐私政策弹窗 -> 首次引导页 -> 登录检查 -> 首页 的状态流转,严格保证在用户点击“同意隐私政策”之后,才去初始化设备信息与敏感 SDK 。QueuedInterceptorsWrapper Token 无感续期
基于队列拦截器实现了并发锁无感刷新 Token ,多个请求同时过期时自动排队等待新 Token 并重放请求;刷新失败自动清理态并跳回登录页。StatefulShellRoute) 路由守卫
底部多分支独立路由栈(切 Tab 不丢状态),支持 Deep Link ,并且把隐私同意态、首次引导态、登录态全部收敛在全局路由 redirect 守卫里,不用在业务代码里到处写 Navigator.push 判断。Notifier) + 本地状态恢复
采用 Feature-first 的 Clean Architecture 分层结构,使用现代 Notifier 范式管理状态,配合本地持久化,冷启动自动恢复用户态与主题配置。为了方便直接改造成社交、内容或工具类 App ,模板里用亮/暗双主题 + 毛玻璃( Glassmorphism )+ Shimmer 骨架屏预置了一套完整的页面:
环境要求 Flutter 3.0+ / Dart 3.0+,无需配置后端即可直接跑通完整 UI 与交互流:
git clone https://github.com/reedtang666/flutter-easy-starter.git
cd flutter-easy-starter
flutter pub get
flutter run
如果你正好准备用 Flutter 起一个新项目,或者想找一个结构清晰的 Riverpod + GoRouter + Dio 实战参考模板,欢迎直接拿去用,有任何问题或建议欢迎提 Issue 交流!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.