Ember, a native iOS Hacker News reader I built around accessibility

49 pointsposted 2 hours ago
by sylwester

12 Comments

shelled

14 minutes ago

HN is quite nice inside a desktop browser, but mobile browsers are a different story altogether. But even there, it fares slightly better than old.reddit.com. So looks like I should dust off that xcode.

newdee

an hour ago

Looks great, do you plan on publishing to the AppStore?

sylwester

an hour ago

If it is possible and Apple accepts the app.

gavinmckenzie

2 hours ago

Well done. As a colour blind person (and iOS developer) I am thrilled anytime an app doesn’t rely on colour cues alone. I’ve used Hack and Octal but I am going to give your app a try.

_dharmik_

10 minutes ago

Are you planning to release Android version as well ?

charrondev

an hour ago

I love to see an open source implementation.

I’ve been using [Octal](https://apps.apple.com/us/app/octal-for-hacker-news/id130888...) for a while now but it’s not open source.

Would you be opposed to a pull request adding login/posting support? I think the way it works in Octal is webview for login, snatching the cookies out of the webview, then using the same posting endpoints as the website with the cookie.

roger_

an hour ago

Any chance of HN getting angry about this, à la Reddit?

rkagerer

2 minutes ago

Ok. I don't need or want this.

Doesn't mean others can't find it useful. e.g. I bet some portion of users would appreciate Dark mode without resorting to CSS tweaks. /rant

sylwester

2 hours ago

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 into a web view. Links, italics, quotes and code blocks behave like the rest of the OS, text selection works, and threads collapse instantly. The whole comment tree comes back from the Algolia API in a single request, which felt a lot nicer than walking the Firebase API node by node.

Accessibility. Nothing depends on color on its own, so points, read state and selection all carry a shape or an icon too. VoiceOver reads each story as one coherent element with proper actions, Dynamic Type and Reduce Motion are respected, and there's a color-blind mode. The first-run setup actually looks at your device's accessibility settings, switches on the matching options, and tells you what it changed instead of making you hunt for them.

Then the usual things you'd expect: Top/New/Best/Ask/Show/Jobs, search, saved stories, read tracking, an in-app reader, light and dark, and a handful of accent colors.

It only talks to the public HN APIs, there's no account and nothing is tracked. Source and screenshots are in the repo.

I'd most like feedback on the comment rendering and the accessibility choices, since those were the parts I cared about getting right. Happy to answer anything about how it's put together.

ios-contractor

an hour ago

Looks great. Does it support pinch zoom like webpage hn does