你的个人 GitHub 版 Google Play:RepoStore 评测
这种情况很常见:你在 GitHub 上发现了一个很酷的开源项目,想在 Android 上测试一下,但必须经历一整套流程。先要去 Releases 部分,然后在大量源文件中翻找正确的 APK,下载它,允许来自浏览器的安装……一周后你还在想是不是有新版本发布了。
印度开发者 Samyak Kamble 决定简化这个流程,于是开发了 RepoStore。这是一款原生 Android 客户端,可将仓库转换为精美的应用卡片。
既然有 F-Droid,为什么还需要这个
F-Droid 很棒,但并非每个项目都能入驻。许多开发者不想处理其收录标准,或者更倾向于直接通过 GitHub 部署。结果,数百个实用的工具仍然"游离"于便捷的应用商店之外。
RepoStore 的运作方式不同。它不需要应用作者在任何地方注册。如果仓库有包含 APK 文件的公开版本——该应用就已经在 RepoStore 上了。
内部运作原理
这款应用采用纯 Kotlin 和 Material 3 编写。视觉上,它类似于现代 Play Store:有趋势、类别和最近更新项目的版块。
我在分析中注意到的主要功能:
- 智能过滤。RepoStore 不会显示垃圾内容。它会扫描发布资源,只显示实际附带了现成安装包的项目。
- 功能完整的应用页面。你不只是看到链接——你还能看到渲染后的 README(作为描述)、star 和 fork 数量,以及仓库根目录中的截图。
- 更新追踪。该应用知道你已在系统上安装了什么,当 GitHub 上出现新标签时会突出显示更新按钮。
- API 限制。默认情况下,GitHub 仅允许未认证用户每小时 60 次请求。RepoStore 内置了 OAuth(设备流),因此你可以登录并将限制提升至 5,000 次请求。
项目技术栈
对于 Android 开发者来说,在实现方面有很多值得研究的地方。作者没有把事情复杂化,选择了久经考验的工具:
- 架构:经典 MVVM 配合仓储模式。代码被拆分为多个 Fragment,存活在单个 Activity 中。
- 网络层:Retrofit + OkHttp 组合。使用 Gson 进行 JSON 解析。
- 数据库:Room 存储已安装应用的信息并缓存数据,以避免不必要的网络调用。
- 界面:完整的 Material You 支持(基于主屏幕壁纸的动态颜色)。Markwon 库负责 Markdown 渲染。
如果你计划为自己的 API 编写自己的客户端,RepoStore 的源代码是一个不错的示例,展示了如何毫无痛苦地使用 GitHub API。
如何让你的应用进入 RepoStore
如果你是开发者,想让你的应用出现在这个商店里,几乎不需要做什么。你只需要满足四个条件:
- 仓库必须是公开的。
- 你需要创建至少一个 Release(仅打一个 tag 是不够的)。
- 发布资源(Assets)中必须包含一个
.apk扩展名的文件。 - 建议在仓库描述中添加
android或apk标签——这有助于搜索算法将你排在更靠前的位置。
值得下载吗
RepoStore 对于经常浏览 4PDA 或 XDA 寻找有趣 mods 和开源工具的人来说绝对有用。这是一个整理"自制"安装包的好方法,可以避免手动检查每个广告拦截器或替代社交媒体客户端的更新。
这个项目还很年轻,README 诚实警告:软件安装风险自负。RepoStore 只是一个便捷的应用商店——它不会审核它所找到的应用的代码安全性。
你可以通过下载项目的官方 Release或通过 F-Droid/IzzyOnDroid 来试用这个 APK。
相关项目