8 ms·
Show HN: I developed a native macOS Hacker News client
- c17r 5y agoOn my "projects to do when I have lots more free time" list is to make a Hacker News NNTP server. Read only, of course. Few details to work out (edits, polls, making comments, etc) but I think it could work. It would solve the "what's new in this thread" problem.
- jll29 5y agoWould be great to get that and read it in Emacs (gnus).
- floss_silicate 5y ago“Mac-er News”, surely?
- themodelplumber 5y agoHrNReader 2000
- leecb 5y agoVery happy to see a "mac-assed" app! My only complaint so far is that I can only see about 12 items in the app on one screen, vs the whole front page in a browser. Adds a lot more scrolling.
- pcr910303 5y agoI guess I’ll have to add a compact mode that hides some of the UI. Thanks for the idea!
- geoah 5y agoThanks for sharing this. It looks really great and pretty minimal which I personally love. The main thing I'm missing from this would be read/unread indicators on stories. A roadmap of planned features would be nice or some tickets that other people could help with. I'm not sure how much time you plan on spending this, but I'd personally probably be willing to buy a version of this if it was able to do notifications on replies and similar features hn lurkers might want. Other interesting paid features could be read-later list, favourites, cross device syncing of read indicators and lists, etc. If you don't wanna deal with paid features maybe consider enabling the github sponsor feature so people could optionally pitch-in.
- pcr910303 5y agoFor me, right now, this is a hobby project — until now, the feature roadmap was basically the feature that I have in mind. I’m more than happy to get feature requests though — read/unread indication and favorites are something that I would definitely try implementing. Notifications are a bit harder because it would require polling HN — I’ll be thinking on it.
- samatman 5y agoI would love to see some user-related features a la Reddit Enhancement Suite. Displaying the total number of times I've upvoted someone, a flair which I could put next to their user name, and, sad but true, being able to put a user in the block bin. If I had those features I'd use this app in preference to the site.
- greggh 5y agoIf the app did what it already does, added in read/unread indications, and some of the features like RES I would be willing to pay for it. The app is already great, but those few things would make it something I could see having a small subscription for, to help keep development going.
- Jerry2 5y agoExcellent work! I really like the UI. I've been using some iOS app for HN because the UI offers easy and quick swipe-based upvotes and bookmarking. But your UI is more reminiscent of a mail app and that's better suited for a desktop app. So kudos!
- smoldesu 5y agoI feel like calling it "Hacker News" is a bit of a misnomer at this point, right? /s
- soheil 5y agoWhat name would you suggest?
- da4b3c01a3 5y agoChange the world news ? They can't make hacker news open source because that would show that hacker news is a voting ring and click farm for YC garbage. The most "extensible" language has been used to write the most ugly forum, filled with insecure losers who have to fake vote counts. News for failed language designers and total failures working in a dead end job. News for haskell faggots and mathematicians into fisting each other with chalk pieces who have failed to write any usable software despite 40 years of funding from microsoft sugar daddy. News for java apologists who are still recovering from the news that sun failed as a company and fake unfuckable fat cucks who think 40% of android apps that use webkit to render are really Java apps. News for benchmark freaks who like to compare precompiled code to compiled code and think its really the same comparison. News for adults with special needs who should have otherwise been aborted or abandoned in the garbage dumps for rats, but are now middle mangers who wonder why no one wants talks to them IRL except their ugly wife or pet.
- Jcowell 5y agoHacker Views
- 1123581321 5y agoThe developer wrote his own app for a website to make himself happy. Seems very hacker-ish to me.
- przemub 5y agoI like that you kept at it for 1.5 year - it is inspiring me to pick up some projects I've half-started.
- SavantIdiot 5y agoThis raises a question I've always wondered: How many of you prefer to run a native app rather than the web app? Personally I hate installing things on my desktop if there is a website because it is just another thing I have to manage. (Even more so because I have multiple Windows, Mac and Linux boxes I'm bouncing around between during the day and rather just have sync'd Firefox bookmarks than have to install s/w on each box.) Am I in the minority, majority, both, neither?
- rootsudo 5y agoDepends, web apps are nifty af but a console app can be better, but lately I enjoy using a browser entirely as it makes it computer agnostic.
- TranquilMarmot 5y agoI'm the same way; I use multiple machines (and my phone!) every day so having synced Firefox tabs is ideal. Especially for something as simple as Hacker News a native client seems a little... overkill?
- brailsafe 5y agoI much prefer a native mac experience for things that aren't necessarily tied directly to services and I do more than just read on, and usually that I'd like them to be offline by default. However, I've been wanting a HN client for a while for some reason. I don't sync tabs around, but do use Firefox.
- seany 5y agoI don't think I've ever picked the web interface over native as long as the native app is "really native"
- geoah 5y agoIf it's an app I want open all the time I'd rather have a dedicated native app for it.
- tailspin2019 5y ago
- Naac 5y agoDoes the Algolia hackernews api ( the specific API this client uses ) still require you to query in a tree like fashion, every comment item id if you want an entire page of comments? Its extremely inefficient, to the point where I have a better time curling the HN web page and piping it through python beautifulsoup Regarding a native app vs the using the HN website. The HN website I think is pretty ideal for the type of content its displaying, a native app doesn't give you much over having a HN tab open. I guess only if you want to read HN but not have a web browser open? But how often does that happen? The only benefit I see from a native app ( and why I use one on Android ) is the ability to save articles and comments for offline reading, say, when I get on a plane.
- Karrot_Kream 5y ago> Does the Algolia hackernews api ( the specific API this client uses ) still require you to query in a tree like fashion, every comment item id if you want an entire page of comments? > Its extremely inefficient, to the point where I have a better time curling the HN web page and piping it through python beautifulsoup Yes it still does and yeah it's ridiculously inefficient. I have a couple tools I've written atop the HN API and all of them are forced to go async simply because the sheer # of page loads necessary to render a thread makes async almost a necessity.
- dahfizz 5y agoAgreed. Generally I prefer native apps, but HN is so well designed and so minimalist that I don't feel it needs a native client.
- pcr910303 5y ago> Does the Algolia hackernews api ( the specific API this client uses ) still require you to query in a tree like fashion, every comment item id if you want an entire page of comments? I’m using two different APIs — the inefficient API that requires you querying in a tree fashion is the HN official API[0], but there’s also the Algolia API[1], which is much faster and gives a much sensible data shape. I also do actually fetch the HN website as well — it’s needed for account/voting features. With these sources, it’s much faster than a usual client that gets it’s data from the official API. > The HN website I think is pretty ideal for the type of content its displaying, a native app doesn't give you much over having a HN tab open. I guess it’s a bit of difference on how one uses HN? I didn’t like HN tabs being mixed with other work—related tabs. I felt that having an app would be a perfect solution to me, but YMMV I guess. > The only benefit I see from a native app is the ability to save articles and comments for offline reading I guess that’s one more feature that I should add to my backlog :) [0]: https://github.com/HackerNews/API https://github.com/HackerNews/API [1]: https://hn.algolia.com/api https://hn.algolia.com/api
- sys_64738 5y agoWouldn’t Vienna with the RSS feed give you the same?
- caseyf7 5y agoWould love to see the ability to search and/or export upvoted submissions/comments.
- adammenges 5y agoNice! This looks great.
- paulcole 5y agoGod I would love somebody to make one of these that could block specific users, linked sites, or topics/keywords.
- soheil 5y agoHere is some code for a simple chrome ext for HN to show votes/created date/bio inline (just stick it in a chrome ext) function hackernews() { if (document.location.toString().indexOf('news.ycombinator') === -1) return; document.querySelector('#hnmain td').style = 'background-color: #55b6f2;'; var i = 0; function render(user, html) { const div = document.createElement('div'); let style = 'cursor: text;overflow-y: scroll; height: 39px;position: absolute;border: 1px dotted #828282;width: 250px;margin-left: 250px;margin-top: -34px;background-color: #f6f6ef;'; div.innerHTML = html; const date = div.querySelectorAll('tr')[5].querySelectorAll('td')[1].innerHTML.split(', ')[1]; const karma = div.querySelectorAll('tr')[6].querySelectorAll('td')[1].innerHTML; const about = div.querySelectorAll('tr')[7].querySelectorAll('td')[1].innerHTML; if (about.length < 60) { style += 'display: flex;flex-direction: column-reverse;margin-top: -39px;border: none;background-color: transparent;'; } div.innerHTML = about; div.style = style; user.querySelector('.age').innerHTML += date ? ' ' + date + ' ' + parseInt(karma).toLocaleString() : ' (x_x)'; user.appendChild(div); } function next() { if (i >= document.querySelectorAll('.default .comhead').length) return; const user = document.querySelectorAll('.default .comhead')[i++]; if (!user) return next(); const username = user.querySelector('a').href; if (username.indexOf('soheil') !== -1) return next(); const html = localStorage.getItem(username); if (html) { render(user, html); next(); return; } fetch(username) .then(res => res.text()) .then(res => { localStorage.setItem(username, res); render(user, res); setTimeout(next, 3000); }); } next(); }
- npunt 5y agoLooks good but needs text zoom (cmd =/+ and cmd -). I'd also consider the sidebar include 'My Posts' and 'My Comments'. Maybe it has those, but I couldn't tell, as I turned off outgoing network access to firebase before logging in just to be on the safe side. Any reason you're connecting to firebase rather than storing preferences locally? I'm worried about my HN credentials being stolen.
- pcr910303 5y agoThanks for the feature requests! Will definitely add a text zoom feature and a ‘My Posts’ category. > Any reason you're connecting to firebase rather than storing preferences locally? All of your preferences are stored locally — the firebase connection is due to the official HN API[0] implemented on Firebase. Your HN credentials never leave the app (except for news.ycombinator.com) — it’s tucked in your keychain. [0]: https://github.com/HackerNews/API https://github.com/HackerNews/API
- npunt 5y agoAh thank you for the clarification! Keychain is truly the 'Mac-assed' solution isn't it? I know it's kind of a feature/property of HN to not implement notifications or other attention driving features but it'd be interesting to see this app periodically poll HN for any replies to My Posts / My Comments and generate at least sidebar number badges, if not app badges and system notifications. I'd implement a preference on the latter two though, in keeping with the spirit of not having HN turn completely into an attention grabbing social network for those that wish it not to be.
- toomuchtodo 5y agoPerhaps Dan G could add additional channels for reply notifications at http://hnreplies.com/ http://hnreplies.com/, as they're already doing the necessary reply polling.
- grishka 5y agoAny chance for Mojave support? It currently requires Big Sur. Looks good on screenshots tho.
- pcr910303 5y agoUnfortunately I’m not expecting to support anything lower than Big Sur. I tried supporting Catalina, and having to support an OS that I don’t use daily was hard… Sorry about that. :-(
- handrous 5y agoI really wish Apple provided an easy, official way to run older versions of macOS/OSX in a VM. It'd be incredibly useful for testing, and for ensuring reliability in old build toolchains (say, for a years-old product that needs a security patch). I mean, it already has a hypervisor built in. :-/ They don't even make it particularly easy to script an installation of an older version in a VM. There are 3rd-party tools but they're usually just as complete & compatible as whoever wrote them needed them to be, and/or they're abandoned. [EDIT] like the VM images Microsoft provides. Those are wonderful.
- grishka 5y agoAnd if you do install macOS on a VM, it won't run with hardware-accelerated graphics. Even if the host is also macOS. And Apple just likes to pretend that older OS versions cease to exist the moment they release a new one. Regarding Mojave... Yeah I still use that daily. Catalina is a mess, and Big Sur can't be (officially) installed on my mac. I could've tried to have a go at backporting the OP app, but Swift is too annoying of a language and I don't know much of it.
- freediver 5y agoI run a setup where I have 10.13, 10.14, 10.15 and 12.0 installed on dynamic APFS volumes and big Sur (11.0) as my main. While not exactly VM I can switch between them as a matter of rebooting, filesystem is shared and setting each one take 15 minutes as you can download original install images.
- tailspin2019 5y agoHaven’t tried it yet but the screen shot looks great. Clean, simple and not over engineered.
- pcr910303 5y agoHello, I’m the developer. Didn’t expect a Show HN post to go into a second—chance pool — I woke up an hour ago to find that my app was trending on HN. I developed this b.c. I found that I didn’t like HN mixed with other work/school related tabs, and realized that a separate app would be great for me. I believe that apps should use the most native-like UI possible — especially Cocoa on macOS, so I aimed to be the most ‘Mac-assed’ HN client possible. Unfortunately the current app is in fact pretty unpolished — it’s in a usable state, but there’s a lot of missing features that one would expect from a ‘full-featured’ HN client. Probably a bunch of unknown bugs as well :-(. I would very appreciate any suggestions on feature additions or simple bug reports. Thanks!
- brailsafe 5y agoThanks for putting it together. I've been curious about modern macos development for a while, but haven't found many good resources on what that entails. In the past, I used BigNerdRanch's Cocoa book to put together a small UI that accessed an external service in ObjC, but that book hasn't received updates in a hell of a long time.
- pcr910303 5y agoI also started studying Cocoa with Big Nerd Ranch’s book. Unfortunately, I found that resources on Cocoa are very lacking, you have to search all day to get some trivial thing to do. The best resources you have would be WWDC videos and transcripts[0]. If the subject you’re looking for is older than a few years, the documentation archive[1] might have detailed, good documentation with concepts and sample code. Some more obscure features will require you search all day, find a few blog posts from ~10 years ago, and munge them enough to make something workable. The best resource of all was the help of more experienced Cocoa devs – the AppKit Abusers Slack [2] was very helpful and pointed out problems when I had problems. Very grateful for them. [0]: https://asciiwwdc.com https://asciiwwdc.com [1]: https://developer.apple.com/library/archive/navigation/ https://developer.apple.com/library/archive/navigation/ [2]: https://appkit-abusers.herokuapp.com https://appkit-abusers.herokuapp.com
- codetrotter 5y ago
- blondin 5y agoah man... big sur and above only?
- harisamin 5y agoThis is great! I built a native. macOS client that I actually sold in the AppStore a while ago. It did everything was native except rendering of the article but I was just using plain web view for that part. The pain was keeping but synced with changes on HN. I still have a personal build that I use on a daily basis. I still have the landing page up which warning, looks awful on mobile https://mackernews.com/ https://mackernews.com/ But congrats! I stopped selling my client and it’s starting to show age for my personal use too. Will check this out. Do you have voting and commenting working? That’s one thing I miss the most that stopped working on my client.
- zapzupnz 5y agoI love seeing more Mac-assed apps.
- tyingq 5y agoLooks nice. More screenshots would be appreciated...for example, how it displays italics, indented text "code blocks", the limited amount of emoji/utf-8 supported on HN, etc.
- culopatin 5y agoI’d love to see the HN crowd make this app amazing through PRs