ITADN
msasikanth/twine · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Twine - RSS 阅读器

CI-MAIN Crowdin

banner

Twine 是一款使用 Kotlin 和 Compose Multiplatform 构建的现代跨平台 RSS 阅读器应用。它提供了出色的用户体验, 方便您浏览订阅源,并支持动态主题,根据内容更改应用环境色。

下载

Get it on Google Play Download on the App Store Get it at IzzyOnDroid

功能 ✨

  • 支持 RDFRSSAtomJSON
  • 源管理:添加、编辑、删除、固定和分组源
  • 主屏幕底部栏,用于访问固定的源和分组
  • 智能获取:当提供任意网站主页时,Twine 会查找源
  • 文章快捷方式,在阅读器视图中获取完整文章
  • 用于播客和 HTML 音频标签的音频播放器
  • 阅读器视图自定义(字体、颜色)
  • 将帖子加入书签以便稍后阅读
  • 搜索帖子
  • 屏蔽词:基于关键词过滤内容
  • 后台同步
  • 支持 FreshRSS(GReader)、Miniflux、Dropbox (Alpha ⚠) 的云同步
  • 主屏幕小组件
  • 使用 OPML 导入和导出您的源
  • 应用图标自定义
  • 支持浅色、深色和 amoled 主题

项目结构 🏗️

该项目遵循模块化的 Kotlin Multiplatform 结构:

  • androidApp:Android 特定的应用代码和入口点。
  • iosApp:iOS 特定的应用代码(Swift/Xcode 项目)。
  • shared:包含使用 Compose Multiplatform 的核心 UI 逻辑、ViewModels(使用 kotlin-inject)以及共享的展示逻辑。
  • core/:模块化的业务逻辑。
    • base:基础工具、通用接口和平台抽象。
    • data:包含仓库、本地数据库(SQLDelight)和同步逻辑的数据层。
    • model:在整个项目中使用的领域模型。
    • network:使用 Ktor 进行源获取和解析的网络层。
  • resources/icons:共享图标资源。

技术栈 📚

如需查看所使用的完整依赖列表,请参阅 catalog 文件。

开发 🛠️

您可以直接克隆仓库并在本地构建,无需进行任何更改。

该项目需要 JDK 21+,并根据 libs.versions.toml 文件中定义的 AGP 版本, 您可以使用相应的 Android Studio 来导入该项目。

贡献 🛠️

您可以通过 PR 为该项目贡献 bug 修复,对于其他事项,请打开一个 issue 以开始讨论。

该项目使用 ktfmt,通过 spotless gradle 插件提供,并使用捆绑的项目 IntelliJ 代码风格。在提交 PR 之前,请运行 ./gradlew spotlessApply 来格式化代码。

翻译

您可以在 Crowdin 上帮助翻译该项目。我们使用 Compose 资源 来处理字符串,您可以在此处 here 阅读更多相关信息。

隐私政策 🔒

您可以在此处 here 阅读隐私政策。

由 💖 制作

错误报告由

bugsnag logo

许可证

GNU GPLv3 Image