9 ms·
Show HN: Open sourcing Harmonic, my Android Hacker News client
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
- vardhanw 3y agoThanks for developing, and now open sourcing, Harmonic. It has been my favorite HN client for a few years now, something to it that make you not want to leave!
- deleted 3y ago[deleted]
- rounakdatta 3y agoThank you, can't express how beautiful the Harmonic client is.
- swesnow 3y agoThanks! I don't have any design background but have spent a lot of time zooming into pixels and comparing alternatives so it's nice to hear that the choices resonate with others
- tanduv 3y agooo I've been using this on my daily commute. Thanks for building it!
- swesnow 3y agoYou're very welcome, it's great to hear you're enjoying it!
- whalesalad 3y agoSometimes it can be hard to let something like this go. Kudos to open sourcing!
- swesnow 3y agoYou'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
- kretaceous 3y agoHarmonic has been my favourite, but only as an HN client but as an overall app. Have been using it for ~2 years now. Huge thank you for building this and thank you for open sourcing it!
- swesnow 3y agoWow that is very kind of you to say! Maybe it's because I've spent so much time with it that I see the cracks but it makes me glad that you view it so fondly :)
- artogahr 3y agoI'm reading this on Harmonic right now, and I've been recommending it to everyone since I've discovered it. Thanks for the great work!
- swesnow 3y agoYou're welcome and thanks for spreading the good word :)
- XMasterrrr 3y agoThat's the client I use on daily basis and it's been one of my favorite apps
- swesnow 3y agoGlad to hear that it is doing its thing for you and that you enjoy it!
- brianjking 3y agoInstalling now, thank you!
- swesnow 3y agoYou're welcome, hope you enjoy it!
- raybb 3y agoSmall suggestion: link to the play store (and fdroid?) From the readme for easier access.
- swesnow 3y agoGood thought, fixed that now, thanks!
- FireInsight 3y agoI 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 3y agoI'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 3y agoLately I've used the lite app with Hermit, but I'll give Harmonic a shot.
- niederman 3y agoLove Harmonic! Writing this reply on it right now!
- swesnow 3y agoThank you, I hope you'll keep loving it! And good that the comment system is still working :)
- rockemsockem 3y agoBeen using it for years, fantastic that it's going to be open-source now too!
- swesnow 3y agoFun that you've followed along through the updates :) And it feels good to finally put something "real" out as open source
- wantguns 3y agoI 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 3y agoPosting from Materialistic which I downloaded from F-Droid. On CalyxOS too
- levidos 3y agoGlider is quite nice
- skeaker 3y agoThis is what I often use, though I have noticed some weirdness where votes won't stick despite the app saying that they did and comment threads that are too big constantly refresh until all the comments are loaded. Might give some of the other apps in this thread a try.
- swesnow 3y agoGood 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 3y agoOthers 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
- pulpfictional 3y agoI love it, releases on GitHub to so I can avoid F-Droid builds. Dev is nice and receptive too and the app is feature filled. Finally replaced Materialistic for me.
- ejj28 3y agoBeen 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 3y agoThat makes me very happy to read! And I'm glad that making it open source can increase your enjoyment
- kawemi 3y agoI 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 3y agoThanks you and thanks for noticing the details :)
- ejj28 3y agoCobbled 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!
- swesnow 3y agoThank you! I agree that those are for sure the most important things. Glad it does the trick for you :)
- TheHumanist 3y agoIt really is very sleek and beautifully minimalistic. Don't downplay your achievements! It's a great app.
- mmanfrin 3y agoConversely I love that I can set it to use the system browser, I absolutely loathe in-app browsers.
- nickexyz 3y agoBeen 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 3y agoGlider 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 :)
- dlojudice 3y agoThank 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 3y agoYou'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 :)
- Reubend 3y agoHey 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 3y agoThank 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 :)
- ugh123 3y agoGreat project! Would be nice to have screenshots in the README.md.
- swesnow 3y agoThanks! You're right that the README needs a little prettifying, I added a link to the Play Store for now where screenshots are available but for sure it would be better to have something in the README as well.
- mcdonje 3y agoThis is my daily driver. It's great! Thanks for your work on it.
- swesnow 3y agoYou're welcome! I use it daily as well and like the idea that others are too :)
- gcanyon 3y agoSilly question perhaps, but (iOS user here, I can't install it) what are the primary advantages of this over just using the web site?
- occz 3y agoNot having to load a whole browser runtime has some nice performance benefits to it, which makes the whole experience just kind of feel a bit better.
- j_french 3y agoAnother 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 3y agoAlways 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!
- lostin 3y agoI 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 3y agoThat is very kind of you to say - you're welcome!
- MartinodF 3y agoFirst 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 3y agoWow 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 :)
- ottod 3y agoThank you for Harmonic, it is beautiful. Open sourced just makes it perfect.
- esperkin39 3y agoI'm reading this on Harmonic from a Chromebook right now. Thanks for all the hard work!
- dagorenouf 3y agoWhat’s the best alternative for iOS?
- KomoD 3y agoHappy to hear that, Harmonic is great
- CuteDepravity 3y agoI 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 3y agoYeah 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.
- Mystery-Machine 3y agoAwesome! Been using it for about a year now. (I'm writing this from Harmonic) There's one functionality of another HN app that I really liked that Harmonic doesn't have - mark topic as visited when I scroll past it in the topic list view. I loved this feature and I really miss it because it allowed me to quickly see all the new topics that I haven't seen before. All the topics that I scrolled past I either visited or are not of my interest. I'll see if I can add this functionality to the app and a preference for enabling/disabling it. Thank you so much for building such a beautiful app!
- swesnow 3y agoVery nice - I look forward to a PR. Contact me if you have some question about the code and I'll try to help you out :)
- suddenclarity 3y agoBig 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.
- swesnow 3y agoYeah 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.
- pylbrecht 3y agoIs there a way of automating the export of bookmarks in the app? I'm thinking of exporting bookmarks regularly to a network drive and then having a script check for new content in that drive to sync with my desktop PC.
- pylbrecht 3y agoAlso 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.
- noisy_boy 3y agoI used to use materialistic but then started just using Firefox to browse. Kudos to HN Devs for making it work so well on a browser in the day and age of apps.
- vaughnegut 3y agoFirst of all, I love the app (I'm writing this comment on it write now)! I'd always wondered, is the UI inspired by Relay for Reddit? The sliding between, colour-coded comment chains you tap to collapse, I absolutely love it and it's the only other place I've seen it. I wish more apps used this style, it's so intuitive, pretty, and pleasant to use
- swesnow 3y agoThank you! It is partly - I use Sync for reddit as my reddit client and that is an inspiration for much of the UI however I did actually download Relay because I know it had some interesting UI choices and stole some ideas from there. It's amusing that it is noticable
- eee4017 3y agoHarmonic is the best HN client I ever used.
- pouzy 3y agoThanks for that ! I had a terrible HN app, and discovered Harmonic through this post. And it's so much better. <3
- AugurCognito 3y agoHarmonic is my main way to interact with HN.(writing this on Harmonic) Love the ux of just pushing articles down for the articles and was curious how it was implemented and why other applications don't do it. Thanks for creating and open sourcing Harmonic.
- swesnow 3y agoGlad that you like it! It is a BottomSheet (https://m2.material.io/components/sheets-bottom https://m2.material.io/components/sheets-bottom) which is a Material design component from Google and they handle a lot of the complexity (although the implementation in the app has a few bugs) which is nice
- AugurCognito 3y agoThanks for the reply! Your implementation looks like a very ingenious way to use bottom sheet.
- t0rb3n_ 3y agoAwesome 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 3y agoGlad 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.
- t0rb3n_ 3y agoThank you for your answer. I uploaded a screenshot to Imgur of what it looks like on my screen [0]. Unfortunately I am running Android 9 and this automatically picking color feature doesn't seem to really work since my background is just black with a few blue dots. Not sure about that I am not really into the Android Game. [0] https://imgur.com/a/m7SFKqT https://imgur.com/a/m7SFKqT
- swesnow 3y agoOh I see, yeah on Android 9 you are getting a fallback color for when automatic theming is not available. I would recommend using the regular light theme as this has a green accent which I think is nicer on the eyes. I'll add a note to change to light material you fallback color because that does not look nice.
- sagz 3y agoLove 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 3y agoHaha 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 :)
- ricardolopes 3y agoLike others in the comments, I've also been happily using Harmonic after having tried almost every other HN app. I've got a strong preference for open source apps, so this is the best news I could get from this app. Thank you for your great work!
- saswatms 3y agoIt's a really great app just used it. has a great UI, and feels fast too.
- cudder 3y agoI'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 3y agoHey 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.
- nunobrito 3y agoPlease 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.
- mt_ 3y agoI use Glider.
- dguo 3y agoThank you for your work! Harmonic is one of my most used apps. It's a joy to use, and I love the design (including the logo)!
- swesnow 3y agoThank you very much! I actually made the logo with matplotlib by just plotting a bunch of sines with integer frequencies and put it together in Photoshop and feel like it's held up OK
- TomasBaneUK 3y agoI'm banned from github. These Reddit Sync features are also great if someone want to add them: - Mark as read on scroll - Title customization I don't like the font weight - On thread view an option to hold a comment to hide its child comments. I think sync moved to single tap for the other actions - E-ink friendly options like pagination instead of scrolling Great app thanks for open sourcing it
- t0bia_s 3y agoWould be nice to filter news by ie above 100 points.
- bloqs 3y agoLove the app. How do i export my bookmarks?
- pox2v 3y agoHi Simon, have 2 favorite apps for Android and Harmonic is one of them. Really good job.Its nice that you share you code.Hope app will get better with other people contribution.