Have you made or worked on a macOS app?

What was it? What language did you use? How did you find the experience?

1 Like

I have!

I made a lottery app using MacRuby (now rubymotion.com). I actually really enjoyed the experience and it was doing ok in the App Store too (I was selling it at the cheapest tier). However macOS updates broke it and I just didn’t have the time to fix it.

I can’t find a recent version of the site now, but this should give you a rough idea of what it looked like:

1 Like

I’ve never thought of building a macOS app. I’ve tinkered a bit with Swift but that was iOS targeted.
I think Apple doesn’t promote so much the macOS platform.

2 Likes

I worked on a number of mac apps. It was my bread-and-butter before iOS and recently returned to Mac development.

Logos Bible Software – I don’t know if this ever shipped

Capture One – the bundled software for Phase One cameras

Kodak Digital Submit – a bundled app to submit print jobs to their Prinergy printing system, probably doesn’t exist anymore

Blackberry Desktop Software – the RIM sync app for blackberries. When we shipped 1.0 we had over 700 000 users in a week, was surreal.

Nomad – downloaded content from the DirecTV set-top box. Probably doesn’t exist anymore.

2 Likes

What did you use Michael? Obj-C? Have you used Swift? I keep meaning to learn it…

They want to make this easier by allowing iOS developers to easily port their apps to run on macOS:

Undecided whether that will be a good or bad thing for us as users - I’m open to it tho…

1 Like

I just picked up a mac dev contract and it is pure swift while all other previous projects were in objective-c.

I think it’s possible to make a pure swift mac or ios app now. Beforehand I don’t think it was possible mainly because swift was not mature enough. I would say swift hit maturity at 4.2.

Even now, there are situations which can only be solved via an obj-c class bridged from swift. One situation I can think of is that you cannot catch an exception generated by the obj-c runtime in swift(as of 5.2). But a sneaky way of handling an exception would be to bridge-over to obj-c and catch it there using an obj-c class(this can happen during occasions when you are using an older API like key-value-observing, an api written purely in obj-c and is not handled perfectly by the swift runtime). However, this kind of thing is becoming more and more infrequent. Also, many very useful libraries(in the de-facto standard cocoa lib packaging framework, CocoaPods) are still in obj-c, which means you’ll have to bridge to the obj-c runtime.

Catalyst is probably better for more simple apps. Mac apps are targeted at pros and so you usually have “pro UI”, like multiple windows that is mated to a very high degree of concurrency and battery-draining I/O. So a software platform that is aimed at “serious” users will probably perceive Catalyst as a sort of compromise.

SwiftUI is not ready for production use. If I were a seasoned developer who never learned swift, I would focus in on a specific language feature like Combine. Combine is Apple’s RxSwift. I think it would help you learn Swift itself faster(albeit might be more frustrating at first) because you will hit the areas you need to learn right away.

2 Likes