Group Group Group Group Group Group Group Group Group

Where to start with MacOS and Swift?


I want to start developing MacOS apps in Swift (as a side project). I’ve never touched Mac or iOS development before. I have 10 years of Ruby and Javascript experience, so deff a senior software engineer. I was wondering where you would recommend I start for MacOS in Switft development, should I learn Swift iOS first and then switch to MacOS, or do you have a starting with MacOS development course.


1 Like

Hi @smickie and welcome to the RW Forums!

I would start right here: macOS Development for Beginners. It’s a 3 part tutorial.

iOS and macOS development share a lot of similarities, you can start with one and migrate to the other, the main difference is their GUI libraries (UIKit vs NS), as you can imagine some interaction concepts vary between mobile and desktop platforms.

Edit: I’m still working with JavaScript/Node and love it! You will find lots of similarities with Swift, and some stuff gets a bit confusing at first. But given your experience, I’m sure you will have a smooth transition.

I’m a macOS developer, and I’d say try to find macOS resources whenever you can (there’s a number of tutorials on this site; hackingwithSwift has a useful book/course combo, my own is focused on macOS because that’s what I’m interested in.)
Most - almost all - resources you will find are iOS based. This has two problems for macOS developers:

  • UIKit tends to have nifty features we just don’t get. Unwind segues, UITableView (NSTableView is much clunkier), handling drawing contexts… iOS developers make use of features we just don’t get, and it’s tedious when every tutorial teaches you a clean and simple way that… just is not available to you.
  • phone apps and desktop apps are very different beasts. You get a little overlap, of course, but not only is the interface very different, the way people use them is different, the scope of tasks is different, so a lot of iOS resources focus on tasks and workflows that are not overly relevant in macOS development. This means, in practice, that if you’re trying to learn from iOS resources, you’ll learn a lot of things you don’t need right now and few of the things you do. (The last time I heard an iOS dev talk about the responder chain was a few days ago. It was also the first time. On macOS, that’s a concept you should learn early.)

That’s great thanks, I’ll start with that one you mentioned. That’s good to know knowing JS will help here too. Cheers for your reply.

Thanks very much! This is all great info, really appreciate the reply.

@smickie If you prefer learning from books, start with the Swift Apprentice which is platform agnostic and uses playgrounds to focus on the Swift language itself:

You can then move on to the iOS Apprentice which teaches you how to build iOS apps:

If you prefer learning from video courses instead, please check out our iOS learning paths when you get a chance:

I hope it helps!

Thanks very much, these are some great resources.