top | item 36047143

Show HN: Open sourcing Harmonic, my Android Hacker News client

305 points| swesnow | 2 years ago |github.com | reply

Hey HN!

I'm the developer of one of the most popular Android clients for HN, Harmonic for Hacker News. Over the years I have recieved many requests to open source the app which I am finally doing - sorry about taking so long :)

Having been very busy working on my PhD during the last two years - Harmonic has not recieved the attention it deserves. I therefore hope that open sourcing it can give it a new lease on life. I also hope that by posting here many of the nice people who have reached out to me will notice that the app is finally open source. I'm also happy to answer questions about the app but cannot make any hard promises about future features.

(As a note; I wouldn't call the architecture of the app a beauty by any means - it is very much cobbled together using my (somewhat outdated) knowledge about Android development.)

-- Simon

98 comments

order
[+] ejj28|2 years ago|reply
Cobbled together or not, the app is functional, has an awesome UI and I love that I don't have to leave the app to actually read articles. Awesome work!
[+] mmanfrin|2 years ago|reply
Conversely I love that I can set it to use the system browser, I absolutely loathe in-app browsers.
[+] swesnow|2 years ago|reply
Thank you! I agree that those are for sure the most important things. Glad it does the trick for you :)
[+] j_french|2 years ago|reply
Another daily Harmonic user of a few years standing here. I tried a good few HN clients until I clicked with Harmonic and never looked back. I find it to be one of those rare apps that works so well and unobtrusively that you hardly notice it until it dawns on you how good it is. Great work, thanks for making and open-sourcing it!
[+] swesnow|2 years ago|reply
Always good to hear from the day 1 OG:s :) I also went through the ritual of trying almost all available HN clients back in 2020 and being unhappy and Harmonic was the result. I'm glad it worked out the same way for you!
[+] raybb|2 years ago|reply
Small suggestion: link to the play store (and fdroid?) From the readme for easier access.
[+] swesnow|2 years ago|reply
Good thought, fixed that now, thanks!
[+] wantguns|2 years ago|reply
I usually refrain from installing apps from Aurora Store instead of F-Droid, but Harmonic is the one app for which I oblige.

Thanks a lot for open-sourcing it.

I wait for the day, where I can finally get a good HN client at F-Droid :)

[+] eastof|2 years ago|reply
Posting from Materialistic which I downloaded from F-Droid. On CalyxOS too
[+] swesnow|2 years ago|reply
Good that I could convince you :) I hope to get around to posting it on F-Droid soon, it doesn't seem like too much work
[+] darnir|2 years ago|reply
Others have mentioned Materialistic and Glider. Both are great options that I used for a few years. However, I've recently changed to Hacki. It's also in the core F-Droid repo and works great for me as a HN client. Since it will even try to notify you of replies
[+] levidos|2 years ago|reply
Glider is quite nice
[+] MartinodF|2 years ago|reply
First of all, thank you for creating this app. A couple of years ago you've finally put an end to my decade of looking for a decent HN client for Android and I haven't looked back. I actually run Harmonic in Windows Subsystem for Android and on ChromeOS to use it as my primary way of browsing HN on all devices!

That said, if you have any spare time to dedicate to it, it would be great if you could open some issues on GitHub to express what you have been wanting to do but didn't manage to. I don't have any gripes with the app as-is (other than adding Material You support, but that's likely to require some large changes) and it would be great to have some guidance on what would be useful to contribute.

Thanks!

[+] swesnow|2 years ago|reply
Wow I never thought anyone would be so hardcore as to actually run Harmonic on windows subsystem and Chrome OS - I figured not a lot of people don't use the big screen mode and I mostly made the tablet changes for when I bought myself an Android tablet a couple of years back to use Harmonic more comfortably in the couch.

The GitHub issues is a very good point! I have a long Google Keep list with things I've been meaning to do and hadn't even thought about opening issues to guide to help. I'll try to get some of those up tomorrow :)

[+] Reubend|2 years ago|reply
Hey there Simon, thanks for writing this great app. Although you said that you wouldn't call the architecture of the app a beauty, I think the UI really stands out as a pretty app that provides only the features that are really needed without delving into anything unnecessary. Really well done and congratulations on the OSS release.
[+] swesnow|2 years ago|reply
Thank you! I am glad you appreciate the choice of focus! It does however make tweaking the app a bit harder at times but as long as it looks and behaves good I am happy as well :)
[+] cudder|2 years ago|reply
I've had Harmonic on my phone for maybe two years now. Best UI out of all the HN reader apps I've tried. Still I go through perioids of using the app to read HN and then switching back to the website in mobile Chrome. I like to skim through the headlines, open interesting articles and comments in new tabs and then go through them after I've read through the front page headlines. No app really supports that, and I'm not sure if an app would even be able to do that better than a browser.

Aside from that the other thing that makes me go back to Chrome are occasional crashes. Seeing how many people daily drive the app and nobody else has mentioned this, I have to wonder if it's something to do with my setup specifically. I do remember it happening on my previous phone (Samsung Galaxy A40, I think) in addition to my current one (Motorola Edge 20) so I just assumed it was something the app does for everyone. I think it usually happens when the app has been on the background for a while, and then I reopen it and it'll start to fetch the new stories and then crash.

Do you receive some sort of reports automatically from such crashes? I have zero Android app development experience so I don't know where to look for logs or what to try next.

[+] swesnow|2 years ago|reply
Hey thanks for the kind words! About the "tabbing" behavior; I know Sync for Reddit on tablets introduced a version of this a while back but as you say getting the UX of this correct on phones is very challenging but it is an interesting design challenge.

I get automatic reports on crashes and about 99% of them are WebView crashed in native code. I've Googled this a bit and am under the impression that these are unavoidable but I definitiely do not understand it. My impression is that they are due to bad performance but it is unclear if anything can be done from the app side to mitigate the issue.

The actual Java crashes (i.e. crashes in the Harmonic code) are relatively few according to the console data I have and mostly non-deterministic but if you have a crash you can replicate I'd appreciate if you can describe it so I can see if I can get the same behavior on my side.

[+] sagz|2 years ago|reply
Love love love Harmonic! I actually stopped using an iPhone because Harmonic was giving me a better experience than Octal on iOS.

A couple feature requests! 1. Enable deep linking. Capture the news.ycombinator links on my phone and they auto open in Harmonic 2. Something is broken in the login form that blocks my autofill from working (1password, but it should be the same for any as it's an Android level API)

[+] swesnow|2 years ago|reply
Haha wow that's actually crazy that you switched phone partly because of Harmonic!

1. Deep linking used to work a couple years back but I think there was some Android change making it harder meaning you had to verify that you had ownership of the domain. Perhaps this is possible to bypass but I haven't looked into it.

2. This totally slipped my mind; I just found out there's an autofillHints attribute which you can give to text boxes - I'll try to get this fixed. Thanks :)

[+] suddenclarity|2 years ago|reply
Big fan of the app. One thing that have bothered me a bit though are bookmarks. Is there any way to sync them with the built in HN functionality? I often bookmark threads with 200+ comments to take notes later on the computer but I haven't found a decent way to transfer them without sending links one by one.
[+] pylbrecht|2 years ago|reply
Also a big fan here, who would love to have the ability to sync bookmarks to his desktop PC. I'm usually just bookmarking while commuting (or sitting on the toilet), but prefer reading on a larger screen.
[+] swesnow|2 years ago|reply
Yeah this is something that has been on my mind. It is possible because I know other apps do this but I haven't looked into details of the API. I totally get the appeal and have received many requests to add this.

THere is an option to export bookmarks in the bottom of the settings and technically if you are a very hardcore person you could set up a Python script to import them but of course this is way too hardcore for most people.

[+] dlojudice|2 years ago|reply
Thank you for building Harmonic. It's been my HN client for years. I will definitely take a look on the code and try to contribute.
[+] swesnow|2 years ago|reply
You're very welcome! Always nice to hear that someone has been happy with the app for a long time. Would be very cool if you could make some form of contribution. Again I apologize for the code being somewhat of a mess - it was not made with open source in mind but if you have any issues I'll try to help you out :)
[+] XMasterrrr|2 years ago|reply
That's the client I use on daily basis and it's been one of my favorite apps
[+] swesnow|2 years ago|reply
Glad to hear that it is doing its thing for you and that you enjoy it!
[+] FireInsight|2 years ago|reply
I do all my HN browsing on this "minimalist" mobile client called Glider. It's actually great, feels modern and you upvote and reply with swipe actions instead of buttons, which I actually like.
[+] Ashymad|2 years ago|reply
I've tried glider for some time but it had a very unpleasant tendency to freeze my phone completely. I've since switched to Hacki which is really responsive and has similar swipe controls.
[+] thereticent|2 years ago|reply
Lately I've used the lite app with Hermit, but I'll give Harmonic a shot.
[+] ejj28|2 years ago|reply
Been using Harmonic daily for a few years now and I love it so much, it's an incredibly well made app. Thanks for making it, awesome that it's open source now as well!
[+] swesnow|2 years ago|reply
That makes me very happy to read! And I'm glad that making it open source can increase your enjoyment
[+] t0rb3n_|2 years ago|reply
Awesome work! Just discovered this client and instantly fell in love with it! Used it for a couple of minutes and thought "hey, it would be cool to be able to click on the story to get to the comments." Guess what, there is an option for that. <3 Also really like the "Jump to the next top-comment" option. Always missed this from reddit.

One question though. Is it possible to change the accent color when using the Material You (light) theme?

[+] swesnow|2 years ago|reply
Glad you like it and thanks! There's been many feature requests over the years of that nature so I am glad they address the same pain points of multiple people.

As can be found in/values/themes.xml line 119, the accent color is one of the automatically extracted material you colors. Therefore you could change your wallpaper to change the color but I haven't got any plans to change the material you color used. However I don't use light mode and perhaps it is bad - in that case a change may perhaps be in order.

[+] kawemi|2 years ago|reply
I absolutely love Harmonic! Great UI/UX and nice attention to details. Almost prefer browsing HN using it rather than the website :) Thank you for open sourcing!
[+] swesnow|2 years ago|reply
Thanks you and thanks for noticing the details :)
[+] lostin|2 years ago|reply
I love Harmonic! Browsing HN is so much more enjoyable with it than with the website. The UI is great too. Thanks for making and open sourcing the app!
[+] swesnow|2 years ago|reply
That is very kind of you to say - you're welcome!
[+] whalesalad|2 years ago|reply
Sometimes it can be hard to let something like this go. Kudos to open sourcing!
[+] swesnow|2 years ago|reply
You're very right - and it's kind of hard to explain even to myself why. I'm glad its done now and people seem to be actually looking into the code
[+] nickexyz|2 years ago|reply
Been using Glider on Fdroid for quite a while, but giving Harmonic a try now. Love it so far, great work and thanks for open sourcing!
[+] swesnow|2 years ago|reply
Glider is a nice app for sure and I totally get the F-droid appeal - nice to hear that you are still able to be impressed by the app :)
[+] CuteDepravity|2 years ago|reply
I tried it for a few minutes, I really like it But the lack of widget support is a deal breaker for me I usually just unlock my phone, see top stories directly and then click on one of the to open Materialistic (HN app, haven't been updated in a few years do it got delisted from the play store)
[+] swesnow|2 years ago|reply
Yeah a widget is something that would be nice - I don't use them heavily myself so I guess that's a big reason for why they are not there right now. I do remember Materialistic having a OK widget.
[+] nunobrito|2 years ago|reply
Please learn to spell "receive". Most people will say nothing about this detail, it does however impact your texts.

Anyways, fantastic work with the app. I'm using it right now for writing this comment. Thank you for making it available.