Skip to content

feat(mobile): Flutter 双端重写替代 Kotlin 版(GEOCON 设计语言) - #138

Merged
fanquanpp merged 6 commits into
mainfrom
feat/flutter-mobile-rewrite
Oct 25, 2026
Merged

fanquanpp merged 6 commits into
mainfrom
feat/flutter-mobile-rewrite

Conversation

@fanquanpp

Copy link
Copy Markdown
Owner

概要

以 Flutter 重写 FANDEX 移动端(app-mobile),替代原 Kotlin/Compose 版本,iOS + Android 双端统一。设计语言采用 GEOCON 几何构成风格。

主要变更

  • app-mobile 全新 Flutter 工程(Riverpod 3 + markdown 渲染 + GEOCON 令牌管线)
  • 删除 app-Android-new / app-Android-old 两个 Kotlin 工程
  • 令牌生成脚本 generate-tokens-kt.ts 迁移为 generate-tokens-dart.ts
  • 导航返回体系重构、分类对齐 web、真机视检修复批次
  • README / CONTRIBUTING / CONTENT-GUIDE 结构图与说明同步
  • 合入 origin/main(fx 字符海系列与 dependabot 更新)

验证

  • 分支 CI 全绿后合并
  • 真机与模拟器视检已完成(见提交 48cd2b0 / e6fbdaf)

- 新增 app-mobile:Flutter 3.47 工程,iOS + Android 双端,applicationId 沿用
  com.fandexpp.fandex,覆盖安装即完成迁移
- GEOCON 设计系统:斜切面/动能括弧/线框多边形/刻度尺/速度线,GLSL 蓝图网格
  着色器背景(带 CustomPainter 回退),页面对角扫掠转场 + 速度线,全部交互
  带动效与触感反馈(Kotlin Vibrator / Swift UIImpactFeedbackGenerator 通道)
- 功能:首页/模块/阅读器(markdown 块级原生渲染 + flutter_math_fork 数学 +
  mermaid WebView 手势宿主 + highlight 高亮)/语法速览/学习路线/搜索/抽屉;
  新增学习进度持久化与完成标记;不含前端实验室
- 混合技术栈:Dart + Kotlin(APK 更新安装/触感/外链) + Swift(触感) + GLSL + JS
  + Node 管线(generate-content.mjs 产出 2044 篇文档 assets,mermaid 运行时
  vendored 化)
- 令牌管线重接:generate-tokens-kt.ts 改为 generate-tokens-dart.ts,
  check-tokens-drift 门禁重定向到 app-mobile/lib/core/token_colors.dart,
  GeoPalette 全部语义色改由生成令牌驱动
- 删除 app-Android-new 与 app-Android-old,清理全仓引用(README/CONTRIBUTING/
  CONTENT-GUIDE/tsconfig/release.mjs 发版脚本改同步 pubspec/内容文档)
- 门禁:flutter analyze 0 issue、flutter test 全过、assembleDebug 构建成功、
  check-tokens-drift 双段通过
- 修复 ListView 内 Row crossAxisAlignment.stretch 触发无限高布局异常导致整页
  不渲染(首页模块卡/路径卡/引用警告块改用 IntrinsicHeight,本地组件测试锁定)
- 修复 GeoBackdrop Ticker 每帧 setState 重建整棵子树:入场动画被反复重置且
  性能劣化;改为 ValueNotifier + painter repaint 通道,零子树重建
- 修复着色器 vec3 uniform 对齐歧义:全部改用 float uniform
- 修复 assets/docs 不入包:Flutter 目录资产只展开一层,generate-content.mjs
  现将 46 个模块目录写入 pubspec content-assets 标记块
- 阅读器目录锚点补建(headingKeys 预填充,ensureVisible 跳转生效)
- 抽屉接入应用更新 UI(检查/刻度进度/下载安装/忽略版本)
- 品牌文案清理:首页主标题改 FANDEX,删除抽屉中文标语
- release 构建验证通过(77.5MB),门禁 analyze 0 issue / test 6 全过
- 前进导航全面 push 化(模块卡/文档行/语法卡/路径卡/路径节点/搜索结果/
  相关文档),返回链由物理栈决定:文档→模块→首页逐级返回,不跳级
- AndroidManifest 启用 enableOnBackInvokedCallback:系统全面屏手势/
  返回键从关闭 app 修正为返回上一级,真机验证进程存活
- 抽屉全部导航项点击先关抽屉再跳转
- 删除最近浏览功能(首页区块/阅读历史写入/数据层全链路)
- 首页分类筛选对齐 web 端:无模块归属的分类(数学)不再显示
- 真机全链路回归:三级返回链/明暗双主题/TOC/语法/路线/搜索全部通过
sdkmanager 经 cmd 调用时 C:\Atian\android-sdk 被解为相对路径
Atianandroid-sdk,2.8GB 模拟器二进制装入工程目录并被 git 收录,
导致 push 被 pre-receive 拒绝。已从索引与磁盘双重清除。
@fanquanpp
fanquanpp merged commit a7dc8ce into main Oct 25, 2026
3 checks passed
@fanquanpp
fanquanpp deleted the feat/flutter-mobile-rewrite branch October 25, 2026 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant