What was it? What language did you use? How did you find the experience?
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:
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.
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.
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:
https://developer.apple.com/mac-catalyst/
Undecided whether that will be a good or bad thing for us as users - I’m open to it tho…
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.