Hacker News new | ask | show | jobs
by jjice 805 days ago
I swear the best looking software like this is all built for MacOS. Maybe there's a lot of it on Windows as well, but I don't see a ton of it on HN (maybe just the demo?).

Is the ecosystem part of this? Is it that the application demographic leans towards MacOS? Is the dev and monetization experience better? I'm really curious if anyone know why I see so much good native indie software for MacOS specifically.

10 comments

It's because the user interface is actually consistent and normalised across the whole platform and the paradigms are well documented and understood by the developers producing software.

On Windows and Linux one minute you're constantly poked in the eye by fucked up scaling issues, different toolkit weirdness and quirks, various layers of abandoned shit going back 25 years and people with the design ability of a three legged goat with cataracts. It is fatiguing.

This is a brilliant summary. I mean… less of the goat bashing… but otherwise you summed it up pretty nicely.
but anyone can create an electron app these days with total control over the UI polish with way less effort.

in fact electron seems like the perfect use case here for a ffmpeg UI wrapper. surprised no one has done it.

> UI polish with way less effort.

Clearly not. The least effort is to use the platform’s native widgets, or at least a decent toolkit. Those shiny web-based interfaces suck because the developer never put the effort to make the widgets behave as they should, and that’s because it’s actually very hard and expensive to build a UI framework from the ground up. Have a look at UITextField or NSTextField and what they do out of the box for free, for every single application. Nobody is going to implement half of that in their fancy text boxes. The only reason it takes less effort is that everybody half-arses it.

The consequence is that most Electron apps are a dog’s breakfast and the polar opposite of consistent and well made.

The least effort would be to use Qt. It's way easier to use than the native toolkit(s), and already looks native on every platform.
In my experience, producing a polished Electron/web app takes substantially more effort than it does to produce an AppKit/UIKit equivalent. Those don’t get you multiplatform, but that’s why a lot of devs who care about these things only publish for macOS and iOS.
Going the Electron route is the first and strongest signal that the developer doesn't care about the tid bits that makes a great app. Have never saw a good designed Electron app.
Not that it really matters I guess, but electron apps are chunky. Huge bin size and large memory usage.
were talking about a tiny desktop app that wraps ffmpeg CLI. this is the perfect use case for it, over, say, VISUAL STUDIO CODE.
I actually think VSCode is one of the best use cases for Electron. It enables a robust and well-documented set of APIs for extension and theme developers, which IMO is why it has one of the most thriving extension ecosystems out there.

Disclaimer: I work at Microsoft, but not in Developer Division.

> It enables a robust and well-documented set of APIs for extension and theme developers

Didn't VIM and Emacs have that for ages? Look at https://vimawesome.com/. I think the remote development extension is nice, but most people would just SSH and run their editor on the server or sync their project's files.

The perfect use case for a massive incredibly complex browser runtime is...a tiny desktop app? What?
Do you as a user seriously want a 400MB binary that takes up 1 GB of memory at least just to have a sluggish interface to run a command line program for you when it could be an instant GUI that takes up 1 MB of memory ?

Why would anyone want something taking up literally 1000x the resources it needs to?

People rage about Electron being insecure and bloated, but by Jove it’s a godsend for consistency and portability.
Electron and consistency?? I get Electron being easier to develop for, but it achieves portability by ignoring platform native UI guidelines. There is no consistency at all between electron apps.
Hey, maybe I want to learn two dozen different slightly incompatible UI paradigms! If I don't have constant impedance mismatches I might get lazy and be able to operate my computer with continuous partial attention and actually focus on the task at hand! Shit, just imagine the horror if two different applications could grab keyboard focus correctly without clicking some input field. My fingers might never leave the keyboard!
I grew up with this mindset on macOS/iOS, and went with it for many years.

Apple itself isn't consistent enough anymore for it to matter / there to be one true way. Pick a design system and roll with it, definitely - but slavishly trying to figure out the One True Way on a particular platform A) isn't likely to work out, even just focusing on design B) is a long-term handicap. Most people have a mix of devices in their life.

A soothing thought if that's hard to process: Jony Ive always had something to say about how the hardware becomes the app, especially post-iPhone. People expect the app to be familiar across platforms. (of course, there's all sorts of nerd-sniping caveats from there. Of _course_ you should use the platform's print dialog, etc. But don't get hung up on ex. what the Apple Reminders app looks like this year on iOS and OS X)

Consistency >for portability
> There is no consistency at all between electron apps.

No, there is not but there is consistency between platforms of the same electron app. Something that's much harder to do if you write a native app.

The reality is that for most people, they use an app on a sibgle platform (typical end users don’t constantly switch between Windows, Linux, and macOS) so that consistency does not primarily benefit the end-user.
I see people say this sometimes but I never see anyone who has used a regular GUI library like FLTK or Qt say this.

Most of the time it's people who only know javascript and have never even heard of GUI libraries that say this.

There is LosslessCut[1], though it's only designed to handle trimming and not general re-encoding.

[1]: https://github.com/mifi/lossless-cut

if you re-encoded then it wouldn't be lossless anymore?
Electron serves the developer not the user.

It also looks shit on every platform then.

And eats all your RAM

The complaint that Chrome eats all your RAM is because it starts a new process for each tab, with all the overhead that entails. You’re not using multiple tabs in an Electron app.
No instead I run 50 standalone browsers with one tab each on my machine ...
The overheard prevents any one tab from taking out the entire browser though.
Chrome has good reason to use multiple processes, but criticism of Chrome doesn’t necessarily apply to Electron apps.
That’s not the complaint lol
A lot of it is the frameworks available in Apple platforms. AppKit and UIKit are both wide and deep, providing just about everything needed to build polished apps while also providing well-supported “happy paths” for most tasks.

I can whip up a decent looking AppKit UI for a moderately complex desktop app that can handle the rigors of accessibility settings and internationalization in an afternoon without importing a single third party dependency. That’s hard to beat for indie dev projects.

Also, a beautiful, polished UI is "table stakes" for Apple users. They'll walk away if the application does not look and feel polished. Windows, Linux, Android, and so on users aren't as picky and tolerate less finished/consistent designs.
The two kind of feed into each other. The UI framework is conducive to polished UI, which results in more polished apps, which raises the bar of expectations for users. This then pressures developers to deliver more polished apps.

This is why I think that anybody looking to create a new platform with a similar culture of quality indie apps should put building an capable, pleasant native UI toolkit at the top of their list of priorities. UI toolkits are the lifeblood of platforms.

My gut here is folks who buy apple products are far more likely to be willing to spend money on an app, and tend to care about design / polish.
I have spent a lot more money on shitty ugly software on Windows than I have on macOS.

In fact as an almost 100% full time Mac user the only things I've actually bought that run on the Mac are PixelMator and Goodnotes and I paid virtually nothing for either of those.

What did you buy for windows? If you’re using the Mac full time, sounds like you don’t need this software on it?
Minitab was the worst. I learned R because I hated paying for it, using it and using Windows.

$1600 a year for dialog boxes where edit keys don't work in the text boxes properly.

A long time ago, CAD software fit the same hole of dire eye poking life sucking hell machine.

In terms of UI/UX, I believe Apple provides the best development toolkit and guidelines for developers. I'm not using any custom UI component for CompressX, it's just a few buttons, toggles and a video player, but the overall UI looks good enough and consistent with other applications in the macOS
It is a single screen with about 5 input boxes and a drag and drop interface.

Probably a bit of hyperbole to put this into a category of "best looking software"

Yeah but if you look at a lot of single-screen apps with about 5 input boxes developed for Windows/Linux, they've got a face only a FOSS fanatic could love.
Apple users are probably the only crowd that would pay money for a simplistic ffmpeg frontend.
Maybe? But I'll pick paid with a nice UI over ugly/cli-only almost every time if it's something I'll use regularly. I'm not the target market for this specific tool but I pay for a number of tools that I can technically do on my own because I like looking at nice things. Sue me. I get joy from well designed and clean UIs. I can always use more joy in my life.

Polish and ease of use are important to me when using software. Don't get me wrong, I spent a ton of time in the terminal and using less than pretty tools but when possible I like nice tools that do a task well.

Then again if all you see is a "simplistic ffmpeg frontend" then I don't know if I can make you understand the value in accepting less overall functionality in favor of a tool optimized for your specific workflow. And some people, not saying you, take a pride in using the lowest-level, most featureful, more obscure tool. They wear it as a badge of pride and chide anything else as a "toy" or "simplistic". I find this mindset absurd. I all for going to the lower level when needed but people that have this attitude best be writing assembly by hand or they are just cosplaying being "smarter". There is always a lower level, just because someone goes to an arbitrarily lower level doesn't make them "better" but that's the feeling I often get from people like this. Reminds of the "Four Yorkshiremen" sketch: https://www.youtube.com/watch?v=ue7wM0QC5LE

Yeah. From the first glance I see a lot of missing details being glossed over. Like what encoder is being used? Output format "mp4" is a container format, so is webm. Knowing the codec is important to decide whether the file is appropriate for where I want to play it. What if my TV doesn't have HEVC support and you are using it inadvertently? Also, what does each quality setting mean? Or the tradeoff between CPU usage and efficiency? Asking ChatGPT to come up with an ffmpeg command has none of these problems as all the details are exposed to you.
These questions make sense to someone technically inclined, but something like the linked app which makes reasonable assumptions (e.g. assuming the user wants the format that is most widely hardware accelerated) is probably a better fit for your average user.
What does it matter? He made $9,000 off of free labor and you didn't.
Another notion among developers as well is macOS users more likely to pay for software.

I myself have this conflict to built something cross platform but then you don’t get well polished out of the box.

What do you folks think about this?

Any success with non macOS non tech savvy users buying your software as much as macOS users?

I would guess that most people who care about aesthetics don't use Windows. So the only alternative is Mac, and it's the people that care about aesthetics who are the ones that are going to create & buy good looking software.
I think it’s partly down to the Mac’s long history of being favoured by creative types… especially designers.

And some developers are either pretty good UI designers too (it happens) or at the very least they have good taste for design. If you’re one of those people, it’s hard not to gravitate towards the Mac.

That and Apple care a lot about design too so as others have said, the platform is kind of setup for guiding you (mostly) towards making good decisions in that area.

Linux apps following Gnome HIG look awesome as well.