V2Reader 是一个用 SwiftUI 开发的,在 iOS 、iPadOS 和 macOS 上的 V2EX 第三方客户端。因为所有的数据都是通过访问 V2EX API 2.0 Beta 来获取的,而这份文档还在更新,有很多数据没有提供,所以 V2Reader 的功能还比较有限。之后随着 API 的更新,会有更多功能加入。
我前段时间看到 V2EX API 2.0 的页面,就试了试,当时还提了一个小 Issue,站长很快就修复了。那个时候刚好还在放假,想着入门一下 iOS 开发,然后用这些 API 写一个客户端练手。之后大概花了两周时间开发到当前版本,目前只用了 SwiftUI 原生的组件,没有使用第三方库。因为才刚接触 Swift ,基本是一边学一边写,很多地方的代码还有点乱,等以后整理好了应该会开源。
加入 Beta 版“V2Reader for V2EX” - TestFlight - Apple
iOS/iPadOS 15 以上,或者 macOS 12 Monterey 以上(使用了 Catalyst ,所以 Intel Mac 也可以安装)。
通过不同节点访问主题以及回复
搜索节点并关注或者将节点添加到主页
点击发布者或回复者的用户名查看用户信息
自动在 @用户 后添加楼层号,可以点击跳转到对应的楼层,然后点击蓝色箭头跳回原楼层
iPad 版本以三列视图显示,支持分屏或小窗模式
Mac Catalyst 版本
主要是因为我用了很多去年 WWDC 新加入的语法,比如 AsyncImage 、MainActor 、task 、refreshable 、searchable 之类的。
有两个原因:一、这个 API 获取的内容都是 HTML 格式的,我还没有考虑用什么方式去解析,不像帖子中的内容是 Markdown 格式的,可以用 iOS 15 新引入的 AttributedString 。二、这个提醒 API 还获取不到帖子的 id ,暂时也没办法实现点击跳转帖子的功能。
因为 AttributedString 还没有支持 Markdown 格式的全部语法,我猜测下次 WWDC 会支持更多。
我暂时打算只使用 API 2.0 Beta ,而这些数据目前还无法通过这些接口获取。当然如果需要的人很多,我之后可能会用解析网页之类的方式来实现。目前点击发帖回帖的按钮会跳转到网页版。
V2EX API 2.0 Beta 必须有 Token 才能够访问,用户需要在设置中自己创建 Token ,然后复制粘贴到 App 中,App 会将 Token 放入系统的 Keychain 保存。用 Token 是否安全,可以参考站长 @Livid 在这个帖子中的回复。
站长设置了每小时最多请求 API 600 次,这种情况可能是达到了限制,可以等整点后再尝试。
主页每次刷新时,每个节点都需要单独访问一次 API ,主页中包含的节点过多会导致很快达到 API 请求次数的上限,目前设置的是最多 5 个,如果觉得不够请在 TestFlight 里反馈,我会考虑在之后的版本里调整。
我写这个 App 只是作为学习 Swift 的练手,目前支持的功能还不多,并不能代替网页版或者别的优秀 App ,大家有兴趣的话欢迎加入 TestFlight 测试体验,反馈使用中的问题和需要改进的地方。
1
wanglz111 2022-01-19 11:41:31 +08:00
🐎住
|
2
beeyoung 2022-01-19 13:08:14 +08:00
是否需要 IPhone 走代理?
|
3
allenchen10 OP @beeyoung #2 不太清楚,我人不在国内
|
4
daolanfler 2022-01-19 16:13:04 +08:00
好像没没法回复啊
|
5
hackpro 2022-01-19 16:20:51 +08:00 via iPhone
支持 还需要打磨 可以参考下 v2er
|
6
allenchen10 OP @daolanfler #4 FAQ 里有提到
|
7
allenchen10 OP @hackpro #5 嗯,V2er 挺不错的,我一直在用
|
8
hackpro 2022-01-20 02:08:05 +08:00 via iPhone
@allenchen10 v2er 也有不少问题 如果大佬你的 App 能修复 我觉得也很有前景啊
|
9
hackpro 2022-01-20 02:09:08 +08:00 via iPhone
@allenchen10 可以拉一个群 前期收集大家的反馈
|
10
allenchen10 OP @hackpro 感谢建议,之后会考虑的,现在如果需要反馈请使用 TestFlight 或者发邮件到 [email protected]
|
11
hackpro 2022-01-22 11:45:53 +08:00 via iPhone
提两个很感动的点👍👏
1. 支持 token 登录 不用输密码 2. 没有 v2er 恼人的 URLSession error |
12
xiaozhoua 2022-05-14 14:30:41 +08:00
界面好看,功能再多点就好了,什么时候上线,支持👍
|