回声 · Resonance
A local-first RSS reader built with Flutter for desktop and mobile.
Resonance(回声) 是一个使用 Flutter 构建的 local RSS 阅读器。
它是一个一个轻量、安静的个人阅读工作台:管理订阅、拉取内容、筛选未读、沉浸阅读,并把阅读状态与设置保存在本地。
当前项目已经完成 RSS / Atom 订阅解析、本地 JSON 持久化、桌面三栏阅读工作区、移动端适配、文章富文本渲染与文本模式、主题与语言切换、HarmonyOS / OpenHarmony 打包骨架等核心能力,已经具备比较完整的阅读闭环。
Resonance 不是“什么都做”的内容平台,而是一个偏个人效率和阅读体验的 RSS 阅读器。
它的重点是:
- 用 Flutter 同时覆盖桌面端与移动端
- 保持 local-first,减少外部依赖
- 用更清晰的界面组织订阅、文章列表和阅读详情
- 让项目可以在现有基础上持续扩展,例如同步、通知、引导、字体调节等能力
- 手动添加、编辑、删除、刷新、重排订阅源
- 支持 RSS / Atom 解析
- 本地 JSON 持久化保存订阅、文章、阅读状态与设置
- 文章按发布时间倒序展示
- 已读 / 未读、收藏、稍后读
- 未读筛选
- 桌面端三栏工作区:订阅源、文章列表、阅读面板,阅读面板支持顶部进度栏与模糊效果
- 移动端适配,支持抽屉 / rail / 自适应侧栏模式
- 文章支持富文本阅读与纯文本阅读模式
- 支持换行、图片等媒体适配
- 安卓状态栏沉浸
- 订阅源页部分和添加订阅合并
- 支持主题切换,并已提供当前主题方案
- 支持界面语言切换:简体中文 / 繁体中文 / English
- HarmonyOS / OpenHarmony HAP 工程骨架与打包说明
- Windows 桌面端窗口样式适配
- 订阅源文章页选择
- 订阅源内选择是否通知
- 设置页面独立
- 添加更多主题,并进一步优化 UI
- WebDAV 同步
- 自动更新订阅,提醒
- 字体大小 px 调节
- 新手引导 + 动画
- OPML 导入 / 导出
-
完整的全文内容提取(远期调整) - 文章搜索
- Flutter + Dart
httpxmlflutter_widget_from_html_corepath_providerurl_launcherwindow_manager- OpenHarmony Flutter SDK(HarmonyOS / OpenHarmony 打包)
lib/
├─ main.dart # 应用入口
└─ src/
├─ localization/ # 语言模式与文案
├─ models/ # 文章、订阅源、路由、设置
├─ services/ # JSON 持久化、RSS / Atom 解析
├─ state/ # ReaderController 状态管理
├─ theme/ # 主题与调色板
└─ ui/ # 应用壳层、页面、组件
ohos/ # HarmonyOS / OpenHarmony Stage 模型工程
flutter pub get
flutter runflutter analyze
flutter testflutter build apk --releaseflutter build windows --release仓库已提供 ohos/ 工程骨架,需要使用 OpenHarmony 适配版 Flutter SDK 构建:
flutter build hap --release --target-platform ohos-arm64插件兼容性、签名和环境配置见 HarmonyOS / OpenHarmony 打包适配。
仓库当前已经整理了基于 GitHub Release 的发布流程。
正式发布时可自动构建:
- Android Release APK
- Windows Release ZIP
HarmonyOS / OpenHarmony HAP 目前作为手动或专用 CI 构建路径维护,需要使用对应 Flutter SDK 与签名配置。
Resonance is a local-first RSS reader built with Flutter.
It is designed as a lightweight personal reading workspace: manage subscriptions, fetch articles, filter unread items, read in a focused interface, and keep reading state and preferences locally instead of relying on an account system or backend service.
At its current stage, the project already includes RSS / Atom parsing, local JSON persistence, a desktop three-pane reading workspace, mobile adaptation, rich article rendering with text-only fallback, theme / language switching, and a HarmonyOS / OpenHarmony packaging scaffold. In other words, the core reading loop is already in place.
Resonance is not trying to be an all-in-one content platform.
It is a reading-focused product with a few clear priorities:
- one Flutter codebase for desktop and mobile
- a local-first foundation with minimal external dependency
- a cleaner structure for subscriptions, article lists, and reading detail
- room for future expansion such as sync, notifications, onboarding, and typography controls
- Manual feed management: add, edit, delete, refresh, and reorder sources
- RSS / Atom support
- Local JSON persistence for feeds, articles, reading state, and settings
- Reverse chronological article list
- Read / unread, starred, and read-later actions
- Unread-only filtering
- Desktop three-pane workspace: sources, article list, and reader panel with a progress toolbar and blur effects
- Mobile adaptation with drawer / rail / adaptive sidebar modes
- Rich article rendering with a text-only reading mode
- Better media adaptation, including line breaks and images
- Immersive Android status bar
- Updated Android package name
- Merged subscription management with the add-subscription flow
- Theme switching with the current built-in theme set
- Interface language switching: Simplified Chinese / Traditional Chinese / English
- HarmonyOS / OpenHarmony HAP project scaffold and build notes
- Windows desktop window styling support
- Per-source notification toggle
- Source-specific article page selection
- A more independent settings page
- More themes and further UI refinement
- WebDAV sync
- Automatic subscription refresh and reminders
- Adjustable font size in px
- Onboarding flow and animations
- OPML import / export
- Better full-content extraction
- Article search
- Flutter + Dart
httpxmlflutter_widget_from_html_corepath_providerurl_launcherwindow_manager- OpenHarmony Flutter SDK for HarmonyOS / OpenHarmony packaging
lib/
├─ main.dart # app entry
└─ src/
├─ localization/ # language mode and strings
├─ models/ # article, feed source, route, settings
├─ services/ # JSON persistence and RSS / Atom parsing
├─ state/ # ReaderController state management
├─ theme/ # themes and palette
└─ ui/ # app shell, views, widgets
ohos/ # HarmonyOS / OpenHarmony Stage-model project
flutter pub get
flutter runflutter analyze
flutter testflutter build apk --releaseflutter build windows --releaseThe repository includes an ohos/ scaffold. Build it with an OpenHarmony-enabled Flutter SDK:
flutter build hap --release --target-platform ohos-arm64See HarmonyOS / OpenHarmony packaging for plugin compatibility, signing, and environment notes.
The repository is already structured around a GitHub Release based build flow.
For formal releases, it can build:
- Android Release APK
- Windows Release ZIP
HarmonyOS / OpenHarmony HAP is currently maintained as a manual or dedicated-CI build path and requires the matching Flutter SDK and signing config.