8 ms·
Show HN: I made an iOS HN app to navigate large threads without getting lost
I was struggling with navigating HN discussions using existing solutions, so I decided to implement a completely different approach, think of it as depth-first reading vs breadth-first reading. Visually it looks like swipeable stacks of comments and it offers several advantages over traditional interfaces:
- Comment width doesn't get narrower no matter how deep in the comment tree you are
- You always see the parent of the comment you're currently reading
- Swiping allows you to move in and out of subtrees with animated transitions that you fully control
- You can easily skip subtrees that don't interest you by scrolling
As a result it's easier to maintain the context and to keep track of where you are in the discussion tree. The app is fully featured, it does all the things that you would expect it to do, and there's extra: custom boards, search, in-thread search, anchors, reading list, recent items.
Video preview: https://imgur.com/a/tzBdpXw https://imgur.com/a/tzBdpXw
or https://streamable.com/arq45m https://streamable.com/arq45m
- davely 3y agoOverall, nice. But it immediately hits a pet peeve of mine: requiring an in-app purchase to enable native features built into my device’s OS. In this case, $6 US for dark mode.
- prepend 3y agoI get annoyed by these things too based on some sort of perceived cost/value of the feature being available and implemented, but paygated. Id rather just have a “donate $6 to help dev” in app purchase as it seems more authentic. However, maybe there are really people who think dark mode is worth $6. Kids raised on Roblox seem to have no ethical issue with paying $5 for a digital hat that is just flipping a bit.
- spiderice 3y agoIt isn’t flipping a bit, it’s designing an entire free to play game, getting millions of users, designing a hat, then flipping a bit. And about a million other things not mentioned.
- jallen_dot_dev 3y agoNot to mention pretty much anything these days can be reduced down to "flipping a bit." As a software developer I flip bits for my employer, and in exchange, they tell my bank to flip some bits in their DB.
- satvikpendem 3y agoIndeed, the sort of reductionistic argument that the GP is making is simply too simplistic to be useful. It's like saying making a chair is just rearranging atoms and therefore it should be free as well.
- prepend 3y agoThe difference is that making a chair involves labor and atoms. Enabling a digital hat involves neither. If a wizard could magically duplicate chairs, I’d have the same argument. Why charge $5 for something that costs $0 to replicate. The design of the hat and the system to run it costs something. The design of the chair and the workshop to build it costs something. Those are fixed costs. It’s the marginal cost that is very different. I’m not even against charging people for digital hats (I paid $5 after all), I’d just rather companies be more straightforward. Id rather pay $60 for a game once and not be microtransactioned. Id rather pay $6 (or not since I don’t like this app) once than pay to enable features that clearly cost nothing or very little to implement. App makers can charge whatever they like. And potential customers can complain about how much it sucks trying to convince app makers to build in a way I think is better for society (ie, straightforward prices for things rather than income streams from payments). But I could be wrong.
- prepend 3y agoThat particular hat is flipping a bit. Designing the game is a separate cost. I played many a game that cost $20 and had thousands of hats so there’s many successful business plans that don’t involve free to play and then charging $5 for flipping a bit to enable my character to have a hat.
- kumarm 3y ago>>donate $6 to help dev No other profession probably degrades themselves as much as developers. If his app is worth it, people would pay or else they don't. No developer need to beg for money if they are good at their craft.
- satvikpendem 3y agoAgreed, no one who sells chairs will make them for free then ask for a $X "donation." But somehow people think devs should make their own stuff free too and ask for donations. If you like the product at a given price, buy it, and if you don't like either, don't buy it, same as any other good. And people will pay $60 for physical items but balk at $0.99 apps and digital goods, it's strange.
- prepend 3y agoId rather also pay for the software. My point is charging $6 for dark mode is still “begging.” I like the shareware model where people pay what they can, or what they perceive the value to be. I don’t think this is begging. Programming is kind of unique because the marginal cost of production is near zero. I think this is a feature, not a bug and why it’s possible to have single person dev companies that are quite lucrative.
- satvikpendem 3y agoPeople who offer their labor as shareware will tend towards making 0 dollars. That's just the reality of it, if people don't have to pay, they won't. If you want to make money, you should...charge people money.
- prepend 3y agoThat’s not true at all. Check out id software. They made gobs of money through shareware. And of course there’s lots of open source developers who are excellent and donate their time with only expecting $0.
- coin 3y ago> that is just flipping a bit The bit is flipped at runtime or compile time. In the old days you'd pay for an upgrade and get a new binary with the feature compiled in. Nowadays the feature is compiled in and gated at runtime. In the end it's the same.
- rollcat 3y agoAgree. Apps using AppKit support dark mode by default, with zero input from the developer. This isn't even a matter of preference, but basic accessibility. If the author really wishes to put this feature behind a purchase, "follow system settings" should be the free default.
- tarentel 3y agoIt does not work by default and it does require input from the developer. The UIKit API allows you to detect that you have it enabled but it doesn't magically redefine all the colors for you.
- marcellus23 3y agoNot quite. If you use the UIKit system colors, it requires no work from the developer. The colors are semantic and automatically adapt to light/dark mode and high contrast mode. It only requires manual work if you have custom colors, or you do your own drawing.
- hnand 3y agoI'll think about a better approach of monetizing the app. I always struggle when trying to choose what should be behind an in-app purchase. In this case I just picked the least restrictive option of what the popular competitor apps do (you can still use the dark mode, but it gets switched back when the session ends). Judging from the feedback on these apps I assumed that people are fine with it.
- nikodunk 3y agoI think you made a good call. The counter-suggestion is “make a donate option” which generally is ignored by most and I doubt will pay you for your time. At $6 for dark mode, this is essentially a donate option anyway. People like free stuff.
- leesalminen 3y agoFWIW, I think the pricing scheme you’ve come up with is fine. People will complain about anything, even free stuff. It’s clear you put some thought into pricing and have avoided the subscription route which is what most people will complain about. I wouldn’t put much stock into the complaints here.
- zamnos 3y agoIt's fine. Not all complaints deserve a response, some people just like complaining. The other thing is follow through is non-existent. Outside of a signed business contract, when an individual says "I'd pay if only X", assume they won't have the patience to wait for X to be implemented, and then find you again to pay you. It's far more likely they'll just deal with their problem a different way.
- wahnfrieden 3y agoapple has a rule against charging for platform-default available features
- joshmanders 3y agoDark mode is not a platform-default available feature. It's a setting in the OS that tells apps that you may prefer a darker variant, but it's still up to the app to implement the work required to make that happen. That is a feature of the app and can be charged for, hence why he does it and the app is still in the app store approved.
- wahnfrieden 3y agoin swiftui you get it by default by using any system component, it is NOT only a flag the developer receives. they have this rule against restricting icloud/cloudkit sync too, which the dev needs to opt into. the reason they can charge for it is that apple review is uneven and unpredictable.
- hombre_fatal 3y agoI don’t see the problem. The app is basically a generous demo lacking only creature comforts until you pay. That’s better than every other pay scheme I can think of since you have the option to do without.
- tinus_hn 3y agoI’m not complaining about a free/cheap app from a small developer but the guidelines say you’re not supposed to gate OS or hardware features behind in-app purchase, so it may lead to refusal at any time.
- livinglist 3y agoAt $6, you really are not paying to use the dark mode, you are paying to appreciate the value it brings to you, nobody is forcing you to use the app.
- iknowstuff 3y agoYou get a full app for free, no subscription, and still complain? man you are so cheap.
- davely 3y agoI think I was clear in my criticism with regard to the app pricing, which has nothing to do with your points.
- abhayhegde 3y agoSeems interesting, but the video preview is not working.
- hnand 3y agoAdded another link. Video preview is the same as on the App Store page.
- jacobp100 3y agoNeat! A few things I feel you should be able to tap a comment to expand, rather than just swipe. Also it’d be neat if you just kept the new scroll position when expanding rather than scrolling back The orange flashes when navigating back are distracting. Just use the default system behaviour here (grey) If you tap the active tab (both in the heading and tab bar), it should scroll to the top
- hnand 3y ago> I feel you should be able to tap a comment to expand, rather than just swipe One frustration that I had with existing apps is collapsing a subtree by accident when tapping the upvote button. I feel like it would be even more frustrating with how my app works, it'd just expand/collapse if you miss the hitbox. > Also it’d be neat if you just kept the new scroll position when expanding rather than scrolling back The issue with that is that if you expand a subtree, scroll way way down and then collapse, your scroll position will be so far away from the initial node that you'd get lost. > The orange flashes when navigating back are distracting. Just use the default system behaviour here (grey) I'll add an ability yo choose the color in the Settings. > If you tap the active tab (both in the heading and tab bar), it should scroll to the top Nice idea, I'll add that.
- carlos-menezes 3y agoInteresting. I just installed this yesterday after migrating to the 12 Mini. I like the app, but there's too many features behind the paywall.
- tkgally 3y agoNice! My first impressions were quite positive—the app scratches several itches I’ve had with HN’s UI—and I like the full feature set, so I bought the paid version. I hope that gives me the right to make one request: a native iPad version.
- hnand 3y agoThanks! I want to perfect the experience on iPhones first, but iPad version is definitely in my backlog.
- NaN1352 3y agoPet peeve : wish "iOS" term was banned and use "iPhone only" instead. -iPad user
- zuhsetaqi 3y agoiOS is iPhone only. iPads are running iPadOS
- david422 3y agoHmmm, never even knew that. Thought iOS covered both iphone and ipad.
- loloquwowndueo 3y agohttps://www.apple.com/ipados/ipados-16/ https://www.apple.com/ipados/ipados-16/
- jadtz 3y agoIt used to be like that until 2019 when iPadOS was introduced.
- deleted 3y ago[deleted]
- web3-is-a-scam 3y agoIt used to but they separated them a few years ago.
- easeout 3y agoIt does except in recent marketing. iOS is still used as an umbrella term.
- easeout 3y agoIt's still one iOS SDK. As a developer and power user audience, we remember when iPhone OS was first renamed to iOS on iPad's release because they were the same. It hasn't been renamed back. Regarding usage, the term iOS development within Apple dev shops still refers to both iPhone and iPad code and App Store distribution. We generally use iOS as an umbrella term, and reach for the new term iPadOS in reference to the iPad-exclusive parts of the user experience like its multitasking capabilities and Universal Control.
- bazmattaz 3y agoWhy can’t a user reply in any of these HN apps?
- Jcowell 3y agoi’m replying right now from the HACK HN app.
- web3-is-a-scam 3y agoYou can in this one you just need the full paid version.
- jedi2610 3y agothere is glider. https://github.com/Mosc/Glider https://github.com/Mosc/Glider. but not sure if it's available for ios although it is written in flutter
- livinglist 3y agoIt’s not but you can build it from the repo with no extra hacking.
- asimpletune 3y agoVery nice, this is definitely the best UX for reading comments. Just one question. Is there no way to implement account log-in that integrates well with keychain? Thanks for the nice app!
- nikodunk 3y agoThere isn’t - they’d need access to the news.yc domain to implement that. Otherwise any app could suggest you auto fill your bank login if domain linking weren’t implemented!
- hnand 3y agoThanks! Under the "Sign In" button you can tap "Alternative method", it opens a webview and you can auto-fill you credentials from the keychain. It's a few more taps, because you have to choose from the list of saved credentials, but otherwise that would be a security risk, Apple wouldn't allow that.
- _zzaw 3y agoThe fact that this isn't grubby subscription pricing immediately puts this app on my radar as something worth buying. I was steeling myself to write it off as soon as I saw the "in-app purchases" section. I'll agree that charging $6 for dark mode does come off as nickel-and-diming. Honestly, I'd have avoided a free version and just made the basic price at least $6, one-time, with options for larger donations to the dev if you really like it.
- hnand 3y ago> I'd have avoided a free version and just made the basic price at least $6 I would definitely get less heat, but the user would paradoxically end up in a worse position. I feel like there's always a disconnect between the user and developer when it comes to a freemium model. Developer thinks that it's a paid app that the user can actually try and make an informed decision before buying. User thinks that it's a free app with arbitrary annoying restrictions. And I understand the user perspective. I think things would be better if refunding was less painful for the user and developer both. If there was a zero friction way of refunding things, we could just abandon freemium.
- causi 3y agoAs a user, I've found utility in apps that offer all features and customizations for free, but reset your preferences every time you start the app. It's like a demo except it never stops working and you can see the maximum amount of value the app can provide you.
- anonymouse008 3y agoCurious if you have an example app for this? I have a stored records based app I work on occasionally and I wonder if an X day storage would fit this bill… but it feels weird to say, “if you want to store data permanently then it’s $y a month”
- causi 3y agoMy personal experience with it is game emulators that reset your customized control layouts and such but I imagine it could work for other sorts of apps.
- web3-is-a-scam 3y agoThis is such a wonderful way to browse comment threads, I absolutely despise the “standard” way of just collapsing things and that’s it…this makes so much more sense and is a game changer for browsing this site. Well done! One of the easiest $8 to support a fellow solo dev I’ve ever spent.
- pindogu 3y agoSomewhat related: "Harmonic" is a GREAT viewer for Android https://play.google.com/store/apps/details?id=com.simon.harmonichackernews https://play.google.com/store/apps/details?id=com.simon.harm...
- expensive_news 3y agoI’ve been trying it out, and I like it a lot. But I wish that you could still tap a post to collapse it, like marking a comment chain as read.
- lambdaba 3y agoHonestly this is the best iOS HN app to date. I see you get a lot of comments about the paywall, I suggest you try offering a 7-day trial instead of the nag. Or, better yet, limit it to X number of openings or something like that.
- bdlowery 3y agoHACK is better.
- hugatest 3y agoThis is quite cool, but I'm wondering why we need to re-invent the wheel for all those threaded discussion platforms. The OG is definitely email. What would really rock would be an IMAP gateway which you subscribe to with your favorite email client which then gives you threading, read/unread markers etc. It could abstract different front-page days as folders and each submission as the root of a thread. Then you could use whatever email client you like the most, with all their decades of polishing. It could even support replying to threads. And it could support different "backends", like HN, reddit, whatnot. Anybody? That's something I'd pay for. Or do I need to keep dreaming?
- ciex 3y agoEmail has terrible thread navigation and I consider old.reddit.com with reddit enhancement suite the best in class.
- kevincox 3y ago> Email has terrible thread navigation This doesn't make sense. Email is a protocol, not a UI. It would be fairly easy to make a UI that displays email like Reddit threads (the hardest part is probably stripping quoted replies). Thunderbird can display the discussion tree, but doesn't inline the message content. GMail inlines message content but linearizes the thread. I am not aware of any clients that inline the discussion content in a tree view.
- hugatest 3y agoThen you need a better mail client.
- salted-fry 3y agoI've been using an incredibly stupid bash script to do this; you've finally given me the push to publish it here: https://github.com/krsiehl/hn2mdir https://github.com/krsiehl/hn2mdir Run mkdir -p /path/to/some/directory/{cur,new,tmp}, then ./hn2mdir.bash /path/to/some/directory/, and it'll crawl Algolia's HN API to dump a bunch of emails, one for each post/comment. You can read it with mutt -f /path/to/some/directory. Syncing with IMAP left as an exercise to the reader (I'm using mbsync). Note that it gets large, fast, and may break your IMAP server; I periodically run find ~/Mail/HN -type f -mtime +30 -delete to clear it out. Edit: should clarify, this is read-only, I've never bothered to set up any kind of response functionality
- marbletiles 3y agoMy main challenge with navigating large threads is seeing what's new when I return to them. If there was a view that helped with that, I'd be sold
- hnand 3y agoThat's an interesting UX problem. Have you tried Anchors ("#" buttons)? Do you feel like it would be convenient if there was an option to mark all new posts as anchors? You could jump between them with "previous/next" buttons.
- germinalphrase 3y agoHighlight “new comments since last thread visit” without altering thread structure?
- hnand 3y agoThread structure won't be altered, new comments will be marked like here https://github.com/devandsev/HackerNews-Support/wiki/Guide#anchors https://github.com/devandsev/HackerNews-Support/wiki/Guide#a... and you'll be able to iterate over them. Direct link to the video https://user-images.githubusercontent.com/17564071/236939878-f01d274b-c809-4511-9273-676e898d95f8.mov https://user-images.githubusercontent.com/17564071/236939878...
- jamies 3y agoOne feature request please: add an option to open links immediately in Safari (which has my preferred web extensions installed).
- hnand 3y agoGood idea, will do.
- smusamashah 3y agoThis looks so good and should probably give some interesting ideas to @busymom0 the developer of android app HACK.
- RockyMcNuts 3y agoLLMs might offer some creative ways around the trilemma of navigating threads chronologically, by topic/contextually, and by score.
- causi 3y agoFeature suggestion: a countdown so you know how many more times you and someone can reply to each other before you hit the limit and have to start repeatedly editing your last comment to carry on the conversation.
- hnand 3y agoDo you have more info on the max comment depth by any chance? I did a quick search and, unless the info is outdated, it looks like there's some kind of anti-flamewar mechanism in place, but no set max depth https://news.ycombinator.com/item?id=11429230 https://news.ycombinator.com/item?id=11429230
- causi 3y agoI couldn't tell you if it's a set depth or some kind of stochastic system. Many of HN's rules are subtle/invisible, to the point you can't even be sure whether they're being applied by an automatic system or by a moderator. For example, you can post a large number of highly-upvoted comments in a short timespan, but if their score is neutral or negative you'll get muted for an indeterminate amount of time; I've seen between ten minutes and a full 24 hours personally. You can also get muted for stepping on the wrong person's sacred cow; you can tell when that happens because you'll find yourself muted when your last day's comment history is, say, only three comments and all of them have positive scores and no flags. I've found it handy to keep a list of "things mods don't like opinions on".
- easeout 3y agoNice work :) Your on-page hierarchical navigation looks like something you could do with existing navigation view transitions, disclosure groups, or an outline view, though the sticky header solution is cool. What UI patterns did you consider and how did you settle on this one?
- hnand 3y agoThanks! I wanted to read comments in a breadth-first manner, and I knew from the start that using Apple navigation solutions wouldn't work for me, the visual change on the screen between two states would be too big and distracting. I made a few prototypes, experimented with omni-directional scrolling (comments don't change their relative position to each other, but you kind of move the viewfinder and it sticks to the edges of subtrees), color coding in different patterns and nothing felt good. I gave up and a few months later when I was thinking about a different problem, I just had a light-bulb moment about this one, mind works in mysterious ways I guess. It was unnecessary complicated at first (like dragging the designated "borders" with the comment staying fixed in one place), but I simplified it in the process quite a bit. It looks pretty straightforward now, but I think a lot of people would be surprised to see how many tricks are there for it to actually look and feel that way.
- bdlowery 3y agoHas no one heard of HACK? It’s like this app, but better.
- AHOHA 3y agoTo enable a dark mode you need to have a premium? No thanks! I’ve been using Hacki app so far and it’s awesome, need some improvements but generally speaking it’s been the best I tried, and it’s free.
- gnicholas 3y agoLove this! I regularly hit the minus button on the top comment to see what the next top-level comment is. Your interface shows me the most popular top-level comments so I can choose from among them. That's great! A couple thoughts: • I can't tell what the hashtag button is for • The numbers in the lower right corner of each stack seem like they refer to the number of sub-comments, but in my brief experience this doesn't seem to be the case. Is this a bug, of have I misunderstood what these numbers refer to? • I'd prefer to be able to tap a comment stack and have it open up. I get that swiping isn't that hard, but I typically one-hand and would prefer if mere tapping did the same thing as swiping (and I can't think of what else a tap would mean, so it shouldn't cause a conflict to have this as an option, right?) • There's no way to reach the settings from the discussion view. The presence of a ... icon makes this confusing, because that's where I'd expect to be able to change settings and such. I would suggest adding Settings to this menu, as an alternate way of reaching it. I know some people are upset about the freemium model, but I think you threaded the needle just about right here. You don't actually disable the night mode functionality in free mode — you just make it not a permanent setting. It would be slightly better if you were more explicit about when the temporary setting will expire, but I really don't see how someone can complain about how you've done this. You let people access every single functionality so they can try it out. Unless you're making this a pure hobby (in which case there would be less upkeep, support, and ongoing development), you can't rely on a tip jar.
- hnand 3y agoThanks! > I can't tell what the hashtag button is for It's demonstrated in the guide [1] I have to think about how to explain the feature in the app without overwhelming the user. Always open to suggestions! > The numbers in the lower right corner of each stack seem like they refer to the number of sub-comments, but in my brief experience this doesn't seem to be the case. Is this a bug, of have I misunderstood what these numbers refer to? It's the total number of comments in the subtree (including all the child subtrees and their subtrees and so on). > I'd prefer to be able to tap a comment stack and have it open up. I get that swiping isn't that hard, but I typically one-hand and would prefer if mere tapping did the same thing as swiping (and I can't think of what else a tap would mean, so it shouldn't cause a conflict to have this as an option, right?) I think it could be a frustrating experience when you mistap upvote or any other button, expanding/collapsing the stack instead. I will try it to see how it feels, it just might be one of those things that look good only on paper, and once implemented it'll be just an extra option that everybody ignores. There's also a good argument for that - accessibility [2], but there are alternatives for the tap gesture. > I would suggest adding Settings to this menu, as an alternate way of reaching it. I figured that on average users go to settings only a few times, mostly when they initially set up the app. Adding an entry point on the thread screen would increase the complexity, support and testing efforts, but further down the road when other things are ironed out it can be a good improvement. [1] https://github.com/devandsev/HackerNews-Support/wiki/Guide#anchors https://github.com/devandsev/HackerNews-Support/wiki/Guide#a... [2] https://github.com/devandsev/HackerNews-Support/issues/1 https://github.com/devandsev/HackerNews-Support/issues/1
- dvngnt_ 3y agothis is exactly how RES and baconreader for reddit works. impossible to go back
- dbtonez 3y agoi've been trying to be more active on the site, and i have just installed the app. initial impressions: great interface. excellent usability. i especially like the reading list feature. i tend to dump threads anywhere and everywhere on the browser and tend to forget about them. thanks for your hard work!