Zhou Weidong
|
a833d62c50
|
chore(release): bump version to 1.0.1
|
2026-10-31 14:39:20 +08:00 |
|
Vicky
|
22cc669bbe
|
feat(brand): 应用图标、开屏资源与品牌字体切换为 ymb
|
2026-10-30 17:14:27 +08:00 |
|
Vicky
|
4aaa5bbd60
|
build(deps): 显式声明 intl 依赖,修掉 CI 零告警门禁的存量告警
flutter-ci / test (push) Failing after 19m29s
播放量格式化直接用了 NumberFormat,但 intl 只是 flutter_localizations 的传递依赖;
新增的 dart analyze --fatal-infos 流水线会因此失败,这里按 flutter_localizations 钉住的版本显式声明。
|
2026-10-29 11:27:53 +08:00 |
|
Zhou Weidong
|
2ce92aa7dd
|
build(android): 压缩生产包体积至 13MB 并统一双渠道产物
生产包九成体积是两套 ABI 的引擎与快照。release 固定 split-debug-info 与
dart-obfuscation,快照从 8MB 降到 1.1MB/ABI;原生库改为压缩存储;开启
R8 裁剪并补保号规则;只打包实际引用的登录背景,移除零引用的图标字体。
|
2026-10-29 10:44:54 +08:00 |
|
Vicky
|
43e60e29ec
|
feat(player): 接入双端画中画播放
|
2026-10-28 16:36:55 +08:00 |
|
Vicky
|
935de13343
|
refactor(core): 平台上报收敛为单个请求头
去掉 device_info_plus 依赖与机型/系统版本,只保留 X-Client-Platform。
|
2026-10-27 14:00:19 +08:00 |
|
Vicky
|
d6df5fbe5f
|
feat(core): 请求头统一上报设备系统与机型
- 新增 DeviceProfileReader,首次读取后缓存,插件不可用时安全降级
- 拦截器为所有请求补 X-Client-Platform / Os / Model,匿名请求同样携带
|
2026-10-27 13:54:28 +08:00 |
|
Zhou Weidong
|
ef29fc5f15
|
feat(app): 完善播放协议搜索与空状态
|
2026-10-23 12:38:47 +08:00 |
|
Zhou Weidong
|
25d90e1383
|
feat: 调整品牌开屏与纯黑原生启动
|
2026-10-22 23:15:27 +08:00 |
|
Zhou Weidong
|
d868ce9336
|
feat: 更新 App 图标与开屏素材
|
2026-10-22 22:59:07 +08:00 |
|
Zhou Weidong
|
953ddec587
|
fix(home): 使用图片渲染搜索栏入口
|
2026-10-22 18:52:43 +08:00 |
|
Zhou Weidong
|
cbb9f60f7f
|
feat(player): 互动栏改用参考图同款图标资源
|
2026-10-21 11:02:05 +08:00 |
|
Zhou Weidong
|
7871b0cfbb
|
feat(home): 启动页停留至首页就绪
|
2026-10-20 19:57:13 +08:00 |
|
Zhou Weidong
|
8f60046ec3
|
feat(splash): 原生开屏改为品牌启动图
|
2026-10-20 19:41:50 +08:00 |
|
Zhou Weidong
|
983e99a4b6
|
feat(flutter): 接入 flutter_native_splash 原生开屏
|
2026-10-20 18:51:28 +08:00 |
|
Zhou Weidong
|
aac9195e05
|
fix(flutter): 钉住 shared_preferences_foundation 2.5.6 兼容当前 Xcode。
|
2026-10-20 18:08:17 +08:00 |
|
Zhou Weidong
|
136ee74618
|
feat(app): 完成 P0 钱包解锁、下载落盘与手机号登录
|
2026-10-19 23:46:47 +08:00 |
|
Zhou Weidong
|
de941c841c
|
fix(app): 对齐 release 修复(播放明文HTTP、shared_preferences 降级防崩溃、双网络访问)
|
2026-10-19 22:43:04 +08:00 |
|
Zhou Weidong
|
eae1c533ce
|
feat(theme): 接入 Obsidian Flare 设计系统
|
2026-10-19 15:01:41 +08:00 |
|
Zhou Weidong
|
c1cb7d1c11
|
feat(ui): 更新品牌启动页与选集交互
|
2026-10-19 09:28:16 +08:00 |
|
Zhou Weidong
|
2c30f83ab3
|
chore(ios): 固定 shared_preferences_foundation 2.5.6
|
2026-10-17 17:30:33 +08:00 |
|
jianghaifeng
|
00280ca0da
|
merge: 同步 main 的作者标识提交到 develop
main 的 eaf8fb4 机械性地给全仓加了 // Author 头,develop 侧包名已改 fruitshorts、
并删除了 demo_media/home_feed_category/home_feed_sections 三个文件,故按 develop 口径解决冲突:
保留 fruitshorts 包名与删除结果,补回 Author 头。
|
2026-10-17 13:48:31 +08:00 |
|
Vicky
|
84a1f58a0a
|
test(client): 新增设备侧集成测试(真机跑通后端可达性)
红线第 10 条(设备验证必须设备侧取证)配套:integration_test/app_backend_test.dart
在手机进程里真实请求 /app/home/feed 与 /app/dramas/{id},并用真 App 断言首页剧目列表能渲染。
把 API_BASE_URL 打进设备日志,便于区分地址不对与设备连不上。
注意:真机执行由用户负责(用户 20:45 指令),本文件按原样交付、不再改动。
本项目 iOS 用 SPM,无 Podfile,不需要 pod install。
|
2026-10-16 18:05:58 +08:00 |
|
Vicky
|
61454e36b1
|
feat(client): 改名为 FruitShorts 并新增 id-ID 印尼语文案(1-3 + 1-4 合并)
为什么:a) 应用对外名称要统一成 FruitShorts(产品名,nontonki 是原型代号);
b) 首发市场是印尼,界面必须有印尼语;c) 归档要求"新增 id-ID 与改名合并生成一次 l10n,别分两次"。
改名:
- pubspec name: nontonki → fruitshorts(Dart 包名),description 同步;28 个文件的 package: 导入前缀替换
- Android android:label、iOS CFBundleDisplayName/CFBundleName → FruitShorts
- 图标资源 assets/icon/nontonki.png → fruitshorts.png(含 pubspec 两处引用)
- README 同步(补印尼语说明,顺带修掉写错的模块名 reelshort-app-api → fruitshorts-app-api)
文案:
- 三份 arb 的 appName → FruitShorts、brandMark → FRUITSHORTS、shareFooter → FruitShorts(不留 demo 标记)
- 新增 lib/l10n/app_id.arb:174 个值键与 en/zh 完全一致,按印尼语习惯翻译(Coin→Koin、Episode→Episode)
- 一次性 flutter gen-l10n 生成 app_localizations_id.dart;id 自动进入 supportedLocales,默认 locale 未改
- 新增 test/config/l10n_id_test.dart:钉住 id 文案、supportedLocales 含 id、品牌文案无 demo 标记、占位符渲染
不动:applicationId / bundle id(lumadrama 遗留,等裁定)、目录名、业务逻辑与页面结构、语言选择页(仍只有 en/zh)
门禁:dart analyze lib test 零告警;flutter test 159 全过(基线 155 + 新增 4);残留扫描 0 命中;
三份 arb 键集一致(174/174/174);真机(iPhone iOS 26.6.1)构建安装启动成功,devicectl 列出显示名 FruitShorts
|
2026-10-16 10:16:59 +08:00 |
|
Vicky
|
1853e1845c
|
refactor(client): 网络层由官方 http 换成 dio(对外行为不变)
为什么:权威文档(AGENTS.md / CODING_STANDARDS.md)强制网络层用 dio,差异清单 A 组第 1 题
用户裁定选 A;原来用官方 http 是在无文档状态下按口头要求选的。
- ApiClient 改用 dio + BaseOptions(validateStatus 恒真、8s 超时、ResponseType.bytes 自行 UTF-8 解码)
- 新增 AuthHeaderInterceptor(Authorization / X-Device-Id)与 EnvelopeInterceptor
(解包 {code,message,data} + 错误码映射 + 401 判定)
- 401 → 刷新 → 重发一次在 ApiClient 里编排,刻意不放在拦截器内重发:dio 的排队拦截器
在回调里再发请求会自锁
- 接口层(auth_api/catalog_api)签名、全部 controller/logic/page 未改动
- 测试:新增假 dio adapter 替代 MockClient,断言口径一条未改;用例名改为 should_<期望>_when_<条件>;
新增 api_client_test(解包/错误映射/请求头/查询参数/跳过重试)与 live_auth_test(真实后端 POST 链路)
- pubspec:加 dio、移除已无引用的 http
- 实测:dart analyze lib test 零告警;flutter test 155 全过;真实联调(8081)GET/POST 链路均通
|
2026-10-16 09:30:46 +08:00 |
|
Zhou Weidong
|
eaf8fb4371
|
style: 全量补充作者标识 // Author: fruit.com.cn
|
2026-10-16 00:01:58 +08:00 |
|
Vicky
|
77d5748dbb
|
chore(client): 归档原型阶段未提交改动(binding/logic/view 分层与各页迭代)
为什么:客户端原型在 14d7bd3 之后又做了一轮(页面分层、发现页、分类滑动、播放器控件等),
一直留在工作区没入库。下一批账号链路要改其中的 app.dart / home_view / player_view / mine_view,
先归档这批既存改动,本批的实际 diff 才说得清边界。
只归档,不改行为:当前工作区 flutter analyze 0 问题、flutter test 148 全过。
|
2026-10-15 17:53:27 +08:00 |
|
 VickyandCursor
|
b1f6ce4bf9
|
提交 Nontonki 短剧原型,准备推送到远程仓库。
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-10-13 16:23:08 +08:00 |
|