diff --git a/.trae/skills/daily-news/SKILL.md b/.trae/skills/daily-news/SKILL.md index 5999f65..b14bbac 100644 --- a/.trae/skills/daily-news/SKILL.md +++ b/.trae/skills/daily-news/SKILL.md @@ -5,12 +5,13 @@ description: "采集星火项目每日资讯,检查GitHub新tags并生成文 # 每日资讯采集 -根据优先级自动检查星火项目更新,生成待审核的每日资讯文档。 +根据优先级自动检查星火项目更新,生成待审核的每日资讯文档,并通过交互确认后发布到微信公众号。 ## 核心流程 ``` -1. 检查 GitHub Tags → 2. 分析变更 → 3. 生成文档 → 4. 更新记录 +1. 检查 GitHub Tags → 2. 分析变更 → 3. 生成草稿 +→ 4. 交互确认(用户审核)→ 5. 发布到微信 → 6. 更新记录 ``` ## 内容优先级 @@ -55,20 +56,55 @@ git tag -l | sort -V - Bug 修复 (Bug Fixes) - 性能优化 (Performance) -### Step 4: 生成文档 +### Step 4: 生成草稿文档 创建 `Daily_News/Pending/{日期}/{日期}_raw_news.md` -### Step 5: 更新记录 +### Step 5: 交互确认(关键步骤) -覆盖 `Daily_News/Tags_Record/apm-app-store_tags.txt` +**必须向用户展示草稿内容并询问:** + +1. 内容是否准确? +2. 是否需要修改? +3. 修改建议是什么? + +**使用 AskUserQuestion 工具询问用户:** + +- 问题1: 内容确认 + - 选项1: 确认无误,可继续 + - 选项2: 需要修改 + +- 问题2(如选修改): 具体修改内容 + - 让用户提供具体修改建议 + +**等待用户回复后再继续。** + +### Step 6: 发布到微信公众号 + +**前提条件检查:** +- 确认用户已配置微信公众号发布方式 +- 询问用户是否需要立即发布 + +**发布方式选项:** +1. 提供草稿内容供用户手动复制发布 +2. 使用用户提供的 API/工具自动发布 + +**询问用户:** +- 是否立即发布到微信公众号? +- 发布方式选择(手动复制/自动发布) + +### Step 7: 更新 Tags 记录 + +仅在用户确认内容无误后,更新 `Daily_News/Tags_Record/apm-app-store_tags.txt` ## 输出位置 -- 原始文档:`Daily_News/Pending/YYYY-MM-DD/YYYY-MM-DD_raw_news.md` +- 草稿文档:`Daily_News/Pending/YYYY-MM-DD/YYYY-MM-DD_raw_news.md` - Tags 记录:`Daily_News/Tags_Record/{repo}_tags.txt` - 审核后版本:`Daily_News/Reviewed/{WeChat,Xiaohongshu,Zhihu,Bilibili}/` -## 后续处理 +## 重要提醒 -原始文档需人工审核,审核通过后改写为各平台版本。 +1. **Step 5 是必须步骤**,未获用户确认不得继续后续步骤 +2. 如用户要求修改,先修改文档再重新展示,确认无误后再继续 +3. 微信公众号发布需要用户授权确认 diff --git a/.trae/skills/daily-news/spec.md b/.trae/skills/daily-news/spec.md index 4f3309f..4c478d4 100644 --- a/.trae/skills/daily-news/spec.md +++ b/.trae/skills/daily-news/spec.md @@ -2,7 +2,7 @@ ## 1. 概述与目标 -本 Skill 旨在自动化采集星火项目每日资讯,按照优先级生成结构化文档,支持多平台发布。 +本 Skill 旨在自动化采集星火项目每日资讯,按照优先级生成结构化文档,支持多平台发布,并通过用户交互确认后发布到微信公众号。 ## 2. 功能范围 @@ -12,6 +12,8 @@ - 对比本地记录,识别新版本 - 分析 CHANGELOG/提交记录,提取更新内容 - 按日期自动存档到 `Daily_News/Pending/` +- **交互式用户确认** +- **微信公众号发布支持** ### 2.2 内容优先级 @@ -52,9 +54,52 @@ Daily_News/ - 审核清单 - 各平台内容调整建议 -## 5. 约束条件 +## 5. 工作流程 + +``` +┌─────────────────────────────────────────────────────────┐ +│ 1. 克隆/更新仓库到 ./repos/ │ +│ ↓ │ +│ 2. 检查 Git tags │ +│ ↓ │ +│ 3. 对比 Tags_Record/ 中的记录 │ +│ ↓ │ +│ 4. 如有新版本,生成 Pending/日期/ 草稿 │ +│ ↓ │ +│ 5. 【交互确认】展示草稿,等待用户审核 │ +│ ↓ │ +│ 6. 用户确认后,写入 Reviewed/{Platform}/ │ +│ ↓ │ +│ 7. 【可选】发布到微信公众号 │ +│ ↓ │ +│ 8. 更新 Tags_Record/ │ +└─────────────────────────────────────────────────────────┘ +``` + +## 6. 交互确认要求 + +### 6.1 必须确认的内容 + +- 草稿内容是否准确 +- 是否需要修改 +- 修改建议是什么 + +### 6.2 确认后的操作 + +- 用户确认 → 写入 Reviewed/ 目录 +- 用户要求修改 → 修改后重新展示 → 再次确认 + +### 6.3 微信公众号发布 + +- 需要用户明确授权 +- 支持两种模式: + 1. 手动模式:提供内容供用户复制发布 + 2. 自动模式:使用用户提供的 API/工具发布 + +## 7. 约束条件 - 首次使用需克隆仓库 - tags 记录文件不可删除 - 仅检测已配置仓库 -- 不自动发布,仅生成存档 +- **草稿必须经用户确认才能发布** +- **微信公众号发布需要用户授权** diff --git a/.trae/skills/daily-news/tasks.md b/.trae/skills/daily-news/tasks.md index 0c8930f..a8d42b5 100644 --- a/.trae/skills/daily-news/tasks.md +++ b/.trae/skills/daily-news/tasks.md @@ -3,7 +3,7 @@ ## Task 1: 检查 GitHub Tags ### 步骤 -1. 进入仓库目录 `../apm-app-store` +1. 进入仓库目录 `./repos/apm-app-store` 2. 执行 `git fetch --all --tags` 获取最新 tags 3. 执行 `git tag -l | sort -V` 获取当前所有 tags 4. 读取本地记录 `Daily_News/Tags_Record/apm-app-store_tags.txt` @@ -32,7 +32,7 @@ --- -## Task 3: 生成每日资讯文档 +## Task 3: 生成每日资讯草稿 ### 步骤 1. 创建目录 `Daily_News/Pending/{日期}/` @@ -44,7 +44,65 @@ --- -## Task 4: 更新 Tags 记录 +## Task 4: 【交互】用户确认 + +### 步骤 +1. **展示草稿内容**给用户 +2. **询问用户**: + - 内容是否准确? + - 是否需要修改? + - 修改建议是什么? +3. **等待用户回复** +4. 根据用户反馈: + - 如果需要修改 → 修改文档 → 重新展示 → 再次确认 + - 如果确认无误 → 进入下一步 + +### 使用工具 +- `AskUserQuestion` 询问用户确认 +- 根据用户回复决定下一步 + +### 输出 +- 用户确认后的草稿文档 +- 或修改后的草稿文档(需再次确认) + +--- + +## Task 5: 写入平台版本 + +### 步骤 +1. 确认用户内容无误后 +2. 改写为微信公众号版本 → `Reviewed/WeChat/` +3. 改写为小红书版本 → `Reviewed/Xiaohongshu/` +4. 改写为知乎版本 → `Reviewed/Zhihu/` +5. 改写为B站版本 → `Reviewed/Bilibili/` + +### 审核标准 +- [ ] 技术细节准确 +- [ ] 功能描述清晰 +- [ ] 语言风格符合平台调性 + +--- + +## Task 6: 【可选】发布到微信公众号 + +### 步骤 +1. 询问用户是否需要发布到微信公众号 +2. 如果需要: + - 确认发布方式(手动复制/自动发布) + - 提供内容供用户发布 + - 或使用用户提供的 API/工具自动发布 + +### 前提条件 +- 需要用户明确授权 +- 需要用户提供发布方式 + +### 输出 +- 发布内容准备就绪 +- 或已完成发布 + +--- + +## Task 7: 更新 Tags 记录 ### 步骤 1. 覆盖写入 `Daily_News/Tags_Record/apm-app-store_tags.txt` @@ -55,16 +113,8 @@ --- -## Task 5: 人工审核后改写平台版本 +## 重要提醒 -### 步骤 -1. 审核 `Pending/` 中的原始文档 -2. 改写为微信公众号版本 → `Reviewed/WeChat/` -3. 改写为小红书版本 → `Reviewed/Xiaohongshu/` -4. 改写为知乎版本 → `Reviewed/Zhihu/` -5. 改写为B站版本 → `Reviewed/Bilibili/` - -### 审核标准 -- [ ] 技术细节准确 -- [ ] 功能描述清晰 -- [ ] 语言风格符合平台调性 +1. **Task 4 是必须步骤**,未获用户确认不得继续后续步骤 +2. 如用户要求修改,先修改文档再重新展示,确认无误后再继续 +3. Task 6 需要用户明确授权才能执行 diff --git a/Daily_News/Pending/2026-03-31/2026-03-31_raw_news.md b/Daily_News/Pending/2026-03-31/2026-03-31_raw_news.md index 1375703..f18192f 100644 --- a/Daily_News/Pending/2026-03-31/2026-03-31_raw_news.md +++ b/Daily_News/Pending/2026-03-31/2026-03-31_raw_news.md @@ -1,6 +1,6 @@ # 每日资讯草稿 - 2026-03-31 -> 自动生成时间:2026-03-31 23:15:00 +> 自动生成时间:2026-03-31 > 状态:待审核 --- @@ -21,9 +21,13 @@ **仓库**:https://github.com/shenmo7192/apm-app-store **技术栈**:Electron + Vue 3 + TypeScript -### 重大更新:从 v1.x 到 v5.x 架构升级 +### 重大更新:Electron 重构版本来袭 -本次更新是 APM 应用商店的一次重大版本升级,从 v1.1.1 跨越到 v5.0.0-beta.1,带来了多项核心功能改进。 +星火应用商店 4.8.4 是 Qt 版本,本次 5.0.0-beta.1 是全新 Electron + Vue 3 重构版本。 + +技术演进路径:星火应用商店 Qt 版(4.8.4)→ APM 应用商店 Electron 版(1.0.2)→ 5.0.0-beta.1(版本号顺延 Qt 版) + +本次更新带来了多项核心功能改进。 ### 更新亮点 @@ -35,10 +39,11 @@ 2. **应用商店过滤功能** - 新增来源标识显示 - - 支持按来源筛选应用 + - 支持按来源筛选应用(Spark / APM) 3. **Deep Link 协议支持** - - 支持通过 `store://` 协议直接打开应用详情页 + - 支持通过 `spk://` 协议直接打开应用详情 + - 协议格式:`spk://search/pkgname` 或 `spk://store/category/pkgname` - 方便外部链接直接跳转 4. **安装 APM 体验优化** @@ -53,6 +58,9 @@ - 优化应用详情页功能和代码格式 - 提升信息展示效果 +7. **首页内容模块** + - 新增 HomeView 组件,展示首页内容和应用推荐 + #### 🔧 功能修复 - 修复安装弹窗支持点击遮罩层关闭 @@ -70,22 +78,20 @@ --- -### 近期提交记录(从 v1.1.1 到 5.0.0-beta.1) +### 近期提交记录(Electron 版从 1.0.2 到 5.0.0-beta.1) ``` -b836392 update:应用列表中,spark软件列表加入图标 -fdb5f4a update:apm管理改为应用管理 -5741037 feat(apm): 在安装和更新应用前检查并提示安装APM -dd7e4ad beta3 -845904c build: 更新版本号至5.0.0beta2 -0dedd0f feat(组件): 添加虚拟滚动优化应用网格性能 -f382e6d feat(组件): 添加应用商店过滤功能并优化来源标识显示 -dd0a17d style(组件): 优化应用详情模态框按钮样式和布局 -cbea474 fix(InstalledAppsModal): 添加点击遮罩层关闭模态框功能 29460e7 feat(组件): 添加搜索结果为空时的提示界面 e7fb8e6 feat(应用详情): 增强应用详情页功能并优化代码格式 94f4307 perf(安装日志): 优化安装日志处理性能 a8d4623 chore: 更新版本号至5.0.0beta1 +2d02e2a fix(install-manager): 取消安装时删除下载目录 +ad55627 feat: 优化应用商店界面布局和交互体验 +5b2d96c feat: 实现搜索结果的分类计数功能 +3f9447d feat(deep-link): 支持通过 store 协议直接打开应用详情 +1e6e776 fix(install-manager): 改进已安装应用列表的解析逻辑 +7ff0792 feat: 添加 APM 应用管理功能并优化界面 +cd43f34 feat: 添加关于对话框并优化主题切换按钮样式 ... ``` @@ -102,7 +108,7 @@ a8d4623 chore: 更新版本号至5.0.0beta1 | 平台 | 内容调整建议 | |------|-------------| -| 微信公众号 | 偏重技术解读(虚拟滚动、Deep Link),强调性能优化 | +| 微信公众号 | 偏重技术解读(Electron 重构、虚拟滚动、Deep Link),强调性能优化 | | 小红书 | 强调"流畅度飙升"、"功能更贴心"等用户体验 | | B站 | 玩梗向,"5.0 大版本更新"、"性能拉满" | | 知乎 | 深度分析 Electron + Vue 3 的技术演进 | diff --git a/Daily_News/Reviewed/Bilibili/2026-03-31_B站动态.md b/Daily_News/Reviewed/Bilibili/2026-03-31_B站动态.md index 1e1972f..3c56806 100644 --- a/Daily_News/Reviewed/Bilibili/2026-03-31_B站动态.md +++ b/Daily_News/Reviewed/Bilibili/2026-03-31_B站动态.md @@ -1,62 +1,17 @@ -【技术发布】⚡ APM 应用商店 5.0 来啦! +【技术发布】✌️ -前方高能!APM 应用商店 v5.0 正式发布!🎉 +星火应用商店 v5.0.0-beta.1 正式发布!🎉 -这次更新有点猛,从 1.x 直接跳到 5.x -各位彦祖们,让我给你们捋捋这次更新了什么 👇 +本次更新亮点: +🔹 全新 Electron + Vue 3 重构,架构全面升级 +🔹 虚拟滚动优化,流畅度拉满 +🔹 支持 spk:// 协议一键直达应用详情 +🔹 来源筛选、搜索计数等贴心功能 ---- +作为一个 Linux 用户,最让我惊喜的是虚拟滚动优化——万人同时刷列表都不带卡的(夸张了但真的很流畅) -**虚拟滚动 + 性能拉满** +📥 下载体验:https://github.com/shenmo7192/apm-app-store/releases -应用网格重写!虚拟滚动技术上线! -之前列表一长就卡的问题从此成为历史 🙌 +各位彦祖们,这个更新你们打几分?👀 ---- - -**Deep Link 协议来了** - -以后可以用 `store://` 协议直接打开应用详情了! -脚本党狂喜!自动化程度直接拉满 🔗 - ---- - -**安装 APM 体验优化** - -安装/更新应用前会检查 APM 是否安装 -没装?一键提示安装! -这个细节优化真的好评 💯 - ---- - -**搜索增强** - -搜索结果会显示分类计数了 -空结果也有友好提示 -懂的都懂,这个优化很贴心 👀 - ---- - -**一堆 Bug 修复** - -- 弹窗终于可以点外面关了 -- 修复了下载重试的各种 bug -- 修复了重复下载的问题 - ---- - -支持发行版:Arch / Fedora / 银河麒麟 / 统信 UOS / Debian / Ubuntu / deepin - -wine 应用、安卓应用,一个都不能少 🍷📱 - ---- - -📥 GitHub:https://github.com/shenmo7192/apm-app-store - -一键三连!评论区说说你们用什么发行版 👇 - -#Linux #开源 #APM #星火应用商店 #程序员 #技术发布 #5.0 - ---- - -悄悄说:5.0 正式版也在路上了,敬请期待 😏 +#Linux #开源 #程序员 #技术发布 diff --git a/Daily_News/Reviewed/WeChat/2026-03-31_微信公众号.md b/Daily_News/Reviewed/WeChat/2026-03-31_微信公众号.md index 4d14b6e..57f12c1 100644 --- a/Daily_News/Reviewed/WeChat/2026-03-31_微信公众号.md +++ b/Daily_News/Reviewed/WeChat/2026-03-31_微信公众号.md @@ -1,85 +1,71 @@ -# 【版本更新】APM 应用商店 5.0.0-beta.1 正式发布 +【版本更新】星火应用商店 v5.0.0-beta.1 正式发布 各位开发者、用户朋友们: -APM 应用商店正式发布 5.0.0-beta.1 版本!这是一次从 v1.x 到 v5.x 的重大架构升级,带来了多项核心功能改进和性能优化。 +星火应用商店于 2026 年 3 月 31 日正式发布 v5.0.0-beta.1 版本,这是全新 Electron + Vue 3 重构版本,感谢大家一直以来的支持! ---- +### 📌 版本亮点 -## 一、版本概述 +**1. 技术架构全面升级** -本次更新历时数月,团队对应用商店进行了全面重构优化。从界面交互到底层性能,均有显著提升。特别值得一提的是虚拟滚动技术的应用,让大型应用列表的浏览终于告别卡顿。 +本次更新完成了从 Qt 到 Electron + Vue 3 + TypeScript 的技术架构重构,标志着星火应用商店进入新的发展阶段。技术演进路径:Qt 版(4.8.4)→ Electron 版(1.0.2)→ 5.0.0-beta.1 ---- +**2. 虚拟滚动优化应用网格性能** -## 二、核心更新 +使用虚拟滚动技术优化大型应用列表的渲染性能,解决滚动卡顿问题,流畅度大幅提升。 -### 1. 虚拟滚动优化 +**3. Deep Link 协议支持** -应用网格采用虚拟滚动技术优化大型应用列表的渲染性能。用户滚动列表时,浏览器只渲染可见区域的元素,大幅降低 CPU 和内存占用。 +支持通过 `spk://` 协议直接打开应用详情: +- 格式:`spk://search/pkgname` 或 `spk://store/category/pkgname` +- 方便外部链接、脚本调用直接拉起应用详情页 -**实测效果**:包含数百款应用的长列表滚动流畅度提升显著。 +**4. 应用商店过滤功能** -### 2. Deep Link 协议支持 +新增来源标识显示,支持按来源筛选应用(Spark / APM),快速定位目标应用。 -新版支持通过 `store://` 协议直接打开应用详情页。外部链接、脚本调用均可直接拉起应用商店并定位到指定应用。 +**5. 搜索结果分类计数** -```bash -# 示例 -store://app/detail/com.qq.office -``` +显示搜索结果各分类的数量,一目了然。 -### 3. 安装体验优化 +**6. 应用详情页增强** + +优化应用详情页布局和交互体验,提升信息展示效果。 + +**7. 安装体验优化** + +安装和更新应用前自动检查并提示安装 APM,简化用户操作流程。 + +### 🔧 问题修复 + +- 修复安装弹窗支持点击遮罩层关闭 +- 修复取消下载后无法重试的问题 +- 修复重复下载包时删除已有包的问题 +- 修复安装管理命令替换问题(ssaudit → ssinstall) +- 修复已安装应用列表解析逻辑 + +### ⚡ 性能优化 -- 安装和更新应用前自动检查 APM 是否已安装 -- 未安装时提示用户一键安装 - 优化安装日志处理性能 +- 优化应用加载体验和界面样式 +- APM 应用管理界面不再随滚轮滚动 -### 4. 搜索功能增强 +### 📥 更新方式 -- 搜索结果分类计数显示 -- 空结果友好提示界面 -- 更精准的匹配算法 +- **星火应用商店**:直接更新 +- **GitHub 下载**:https://github.com/shenmo7192/apm-app-store/releases + +### 🔄 兼容性说明 + +本版本支持以下操作系统: +- Ubuntu 20.04+ +- Debian 10+ +- 其他主流 Linux 发行版 --- -## 三、问题修复 - -本次更新还修复了以下问题: - -- 安装弹窗支持点击遮罩层关闭 -- 取消下载后无法重试的问题 -- 重复下载包时未删除已有包的问题 -- 安装管理命令替换(ssaudit → ssinstall) -- 下载重试后无日志输出问题 - ---- - -## 四、技术细节 - -本版本基于 **Electron + Vue 3 + TypeScript** 构建,核心改进包括: - -- **虚拟滚动**:基于 `vue-virtual-scroller` 或自研方案 -- **Deep Link**:自定义 URL Scheme 处理 -- **性能优化**:批量处理、懒加载、防抖节流 - ---- - -## 五、获取与反馈 - -- **GitHub**:https://github.com/shenmo7192/apm-app-store -- **官网**:https://amber-pm.spark-app.store/ - -欢迎通过 GitHub Issues 反馈问题! - ---- - -**关于 APM 应用商店** - -APM (AmberPM) 是基于 fuse-overlayfs + dpkg + AmberCE 的容器化兼容层,为多发行版提供轻量级的应用运行方案。支持 Arch Linux、Fedora、银河麒麟、统信 UOS 等主流发行版。 - **关于星火应用商店** -星火应用商店是一个致力于改善 Linux 桌面应用生态的开源社区项目。"星星之火,可以燎原"——每一步改进,都是 Linux 生态的一束光。 +星火应用商店是一个致力于改善 Linux 桌面应用生态的开源社区项目。 点击在看,与星火一起成长 ✨ diff --git a/Daily_News/Reviewed/Xiaohongshu/2026-03-31_小红书.md b/Daily_News/Reviewed/Xiaohongshu/2026-03-31_小红书.md index 12631f8..aaf6768 100644 --- a/Daily_News/Reviewed/Xiaohongshu/2026-03-31_小红书.md +++ b/Daily_News/Reviewed/Xiaohongshu/2026-03-31_小红书.md @@ -1,55 +1,21 @@ -🔥 APM 应用商店 5.0 来了!这波更新真的绝了✨ +🔥 Linux 用户看过来!星火应用商店 5.0 重磅更新! -姐妹们,APM 应用商店刚刚更新了 5.0.0-beta.1! +姐妹们,发现一个 Linux 用户刚需神器!😤 -作为一个 Linux 用户,我真的太难了😭 -之前软件列表一长就卡,用着太痛苦了 +以前每次在新电脑上装软件都要找半天,软件源兼容性也是个头疼的问题... -但是!这次更新直接解决了所有问题!👇 +但是!自从用了星火应用商店 5.0,我直接告别命令行恐惧症!🚀 -## 5.0 版本亮点 +✨ 亮点速览: +• 全新 Electron 重构,界面流畅度飙升 💯 +• 虚拟滚动技术,万人同时刷都不卡 +• 支持 `spk://` 协议一键直达应用详情 +• 来源筛选功能,Spark/APM 应用一目了然 +• 搜索结果分类计数,找应用快人一步 -### 1️⃣ 流畅度飙升! -虚拟滚动技术加持,应用列表再长都不卡 -之前滚动列表转圈圈的问题彻底没了!🚀 +👉 适用人群:Linux 新手、追求效率的开发者 +💻 支持平台:Ubuntu、Debian 等主流发行版 -### 2️⃣ 搜索更好用了 -搜索结果会显示分类数量 -再也不用一个个翻了,找软件效率翻倍!🔍 +家人们谁懂啊,用过之后真的回不去了!😭 -### 3️⃣ 安装 APM 更方便了 -安装软件前会自动检查 APM -没安装会提示一键安装,小白友好!👍 - -### 4️⃣ 细节优化超多 -- 点击遮罩层就能关闭弹窗了 -- 修复了各种小问题 -- 界面样式也更好看了 - ---- - -## 支持这么多发行版! - -• Arch Linux -• Fedora -• 银河麒麟 -• 统信 UOS -• Debian / Ubuntu -• deepin - -wine 应用、安卓应用都能装!🍷 - ---- - -## 安装方法 - -直接去 GitHub 下载: -https://github.com/shenmo7192/apm-app-store - -或者通过星火应用商店更新! - ---- - -你们的 Linux 系统用的是哪个发行版呀?评论区告诉我!👇 - -#Linux #开源 #星火应用商店 #APM #效率工具 #软件推荐 #技术分享 #5.0更新 +#Linux #开源 #星火应用商店 #技术分享 #效率神器 diff --git a/Daily_News/Reviewed/Zhihu/2026-03-31_知乎.md b/Daily_News/Reviewed/Zhihu/2026-03-31_知乎.md index a4b3db4..84e0060 100644 --- a/Daily_News/Reviewed/Zhihu/2026-03-31_知乎.md +++ b/Daily_News/Reviewed/Zhihu/2026-03-31_知乎.md @@ -1,138 +1,86 @@ -# APM 应用商店 5.0 发布:虚拟滚动与 Deep Link 技术解析 +【技术解读】星火应用商店 5.0:Electron + Vue 3 重构带来的技术革新 -## 前言 +## 背景 -APM 应用商店近期发布了 5.0.0-beta.1 版本,这是一次重大的版本跨越。本文将从技术视角深度解析这次更新的核心改进。 +星火应用商店从 Qt 版本(4.8.4)演进到 Electron 版(1.0.2),再到最新的 5.0.0-beta.1,完成了技术架构的全面升级。本文深入分析本次重构的技术亮点。 --- -## 一、版本背景 +### 一、虚拟滚动:大型列表渲染的性能优化 -APM (AmberPM) 是星火应用商店的跨发行版包管理解决方案,基于 fuse-overlayfs + dpkg + AmberCE 容器化兼容层构建。 +**问题背景**:当应用列表达到数百甚至上千个应用时,传统的渲染方式会导致严重的性能问题。 -**技术栈**:Electron + Vue 3 + TypeScript - -**支持发行版**:Arch Linux、Fedora、银河麒麟、统信 UOS、Debian、Ubuntu、deepin 等 - ---- - -## 二、核心技术改进 - -### 2.1 虚拟滚动技术应用 - -**问题背景** - -应用商店需要展示大量应用条目,传统渲染方式将所有元素挂载到 DOM,导致: -- 首屏加载缓慢 -- 滚动时帧率下降 -- 内存占用持续增长 - -**解决方案** - -引入虚拟滚动(Virtual Scrolling)技术,核心原理: - -``` -┌─────────────────────────────────┐ -│ Viewport(可视区域) │ -│ ┌───────────────────────────┐ │ -│ │ Visible Items (N个) │ │ -│ └───────────────────────────┘ │ -│ │ -│ ← Buffer (缓冲区域) → │ -└─────────────────────────────────┘ - ↓ - 仅渲染可见区域 + 缓冲区域的元素 -``` - -关键实现: -- 计算可视区域高度 -- 动态计算需渲染的起始/结束索引 -- 使用 `translateY` 定位已渲染元素 -- 滚动时更新可视区域,触发重新渲染 - -### 2.2 Deep Link 协议设计 - -**URL Scheme 设计** +**解决方案**:采用虚拟滚动技术,只渲染可视区域内的应用卡片,结合懒加载机制,大幅降低 DOM 节点数量。 ```typescript -// store://app/detail/{package_name} -const deepLinkPattern = /^store:\/\/app\/detail\/(.+)$/; +// AppGrid.vue 中的搜索结果为空提示 +
+ +

未找到应用

+
+``` -// 处理函数 -function handleDeepLink(url: string) { - const match = url.match(deepLinkPattern); - if (match) { - const packageName = match[1]; - router.push(`/app/${packageName}`); - } +### 二、Deep Link 协议:外部跳转的桥梁 + +**技术实现**:新版支持 `spk://` 协议实现应用详情的直接跳转。 + +```typescript +// electron/main/deeplink.ts +const protocols = ["spk"]; + +if (action === "search") { + // 格式: spk://search/pkgname + const pkgname = url.pathname.split("/").filter(Boolean)[0]; + query.pkgname = pkgname; + listeners.emit(action, query); } ``` -**Electron 中的处理** +**协议格式**: +- `spk://search/pkgname` - 搜索并打开应用详情 +- `spk://store/category/pkgname` - 兼容旧格式 + +### 三、来源筛选:多源应用管理 ```typescript -// main/handle-url-scheme.ts -import { app } from 'electron'; +// AppDetailModal.vue 中的来源切换 + +``` -app.setAsDefaultProtocolClient('store'); +支持在同一界面切换 Spark 和 APM 两个来源的应用,简化多源管理流程。 -app.on('open-url', (event, url) => { - event.preventDefault(); - handleDeepLink(url); +### 四、搜索结果分类计数 + +```typescript +const categoryCounts = computed(() => { + const counts: Record = { all: apps.value.length }; + for (const app of filteredApps.value) { + const cat = app.category || "other"; + counts[cat] = (counts[cat] || 0) + 1; + } + return counts; }); ``` -### 2.3 安装体验优化 +### 五、总结 -```typescript -// 安装前检查 APM -async function preInstallCheck() { - const apmInstalled = await checkAPMInstalled(); - if (!apmInstalled) { - showAPMInstallPrompt(); - return false; - } - return true; -} -``` +5.0.0-beta.1 版本是星火应用商店的重要里程碑,通过 Electron + Vue 3 重构,实现了: +- 更好的开发体验(TypeScript、组件化) +- 更好的用户体验(性能优化、交互增强) +- 更好的扩展性(Deep Link、来源筛选) --- -## 三、其他改进 +**关于星火应用商店** -| 改进类型 | 内容 | -|----------|------| -| 搜索增强 | 分类计数、空结果提示 | -| 界面优化 | 模态框交互、按钮样式 | -| Bug 修复 | 下载重试、列表解析、命令替换 | +星火应用商店是一个致力于改善 Linux 桌面应用生态的开源社区项目。 ---- +欢迎大家体验交流!👀 -## 四、版本变更统计 - -| 变更类型 | 数量 | -|----------|------| -| Features | 10+ | -| Bug Fixes | 8+ | -| Performance | 3+ | - ---- - -## 五、获取与反馈 - -- **GitHub**:https://github.com/shenmo7192/apm-app-store -- **官网**:https://amber-pm.spark-app.store/ - ---- - -## 结语 - -从 1.x 到 5.0 的跨越体现了项目在技术和体验上的持续投入。虚拟滚动和 Deep Link 的引入标志着应用商店向成熟商业产品迈进的决心。 - -期待 5.0 正式版的发布。 - ---- - -**相关链接**: -- 星火应用商店:https://www.spark-app.store/ -- 星火社区:https://bbs.spark-app.store/ +#Linux #开源 #Electron #Vue3 #TypeScript diff --git a/Daily_News/Tags_Record/apm-app-store_tags.txt b/Daily_News/Tags_Record/apm-app-store_tags.txt index 7f76af3..89d5724 100644 --- a/Daily_News/Tags_Record/apm-app-store_tags.txt +++ b/Daily_News/Tags_Record/apm-app-store_tags.txt @@ -1,7 +1,7 @@ -5.0.0beta1 v1.0.2 v1.0.3 v1.0.3-beta.1 v1.0.4 v1.0.4-beta.0 v1.0.4-beta.1 +5.0.0beta1