SwiftUI 原生 HN 客户端,离线+无障碍优先
推荐指数 51.0 NO. 005 · 2026.06.21
发布2026/06/20Score50Comments12
为什么值得看
Ember 是用 SwiftUI 开发的 Hacker News 原生客户端,支持 iPhone/iPad/Mac 三端自适应布局,核心卖点是将 HN 的 HTML 评论解析为原生渲染的折叠线程树。对需要高频刷 HN 的 iOS 开发者来说,这提供了一个研究 SwiftUI 跨平台适配和原生解析非结构化数据的完整开源参考。
编辑判断
HN 官方没有开放 API 的完整评论树,大多数第三方客户端直接用 WebView 套壳,导致评论折叠、代码高亮、深色模式体验割裂。Ember 选择自己解析 HTML 并重建为原生视图,这个工程决策在维护成本上更高,但换来了真正的原生交互手感。
对比同类工具,Octal 和 Hack 这两个老牌 HN 客户端已经多年未更新,且都不支持 Mac 版。Ember 的三栏自适应布局(iPhone 标签栏 → iPad/Mac 三栏)恰好是 SwiftUI 的 showcase 场景,想学习 NavigationSplitView 实际用法的开发者可以直接看它的实现。
最该关注的是它的无障碍设计:VoiceOver 朗读评论树、动态字体、Reduce Motion 全适配。很多独立开发者把无障碍当合规项,Ember 把它做成了差异化卖点,这个思路在工具类产品里值得复制。
社区反馈
正面 12 条评论
核心争论:原生解析 vs WebView 的技术取舍,以及开源客户端能否替代现有闭源方案
相关内容
Supporting specific accessibility needs with SwiftUI SwiftUI 提供多种环境属性描述用户自定义辅助功能设置,开发者应花时间阅读并尊重这些设置以支持特定无障碍需求。 了解 SwiftUI 中的辅助功能 - WWDC24 Apple 官方视频介绍 SwiftUI 如何轻松打造无障碍体验,探索辅助技术理解 App 的方式,以及使用修饰符自定义辅助功能体验。 Build accessible apps with SwiftUI and UIKit - WWDC23 介绍 VoiceOver 如何通过辅助功能特性和操作与 App 交互,分享 SwiftUI 最新更新以优化无障碍体验,以及 UIKit 中保持辅助功能信息同步的方法。 SwiftUI中为不可见元素添加无障碍标签的技术咨询 针对视觉上无需显示但需为视障用户提供引导的标签场景,介绍 SwiftUI 中更规范优雅的实现方式,比直接使用 Text 更专业。
I read HN on my phone every day and never really settled on a reader, so I wrote my own and finally tidied it up enough to put out there. It's plain SwiftUI with no third-party dependencies. A few things I spent the most time on: Comments are parsed and drawn as native text instead of being dumped i
Looks great. Does it support pinch zoom like webpage hn does
Thanks for the app. Wanted to remind you of the HN guidelines though: https://news.ycombinator.com/newsguidelines.html > Don't post generated text or AI-edited text. HN is for conversation between humans.