Whether you have existing iOS skills or you're starting fresh, you can learn macOS coding by building real-world projects with Swift 5.4 and Xcode – all you need is in this course.
You can always be guaranteed you're learning the latest, greatest Apple technologies because all my tutorials are written for macOS 10.15 or later.
Don't waste time with out of date tutorials – here you can learn smart, powerful, and expressive Swift the way it was meant to be written.
You learn Swift while you make real macOS projects with AppKit and SwiftUI, so you can apply new skills immediately and see them work in context.
I've already taught thousands of people how to build iOS apps, and now I'll help you transfer your skills to macOS and unleash the power of your desktop.
Hacking with macOS teaches you Swift and macOS frameworks through real-world AppKit and SwiftUI projects. The book includes the same comprehensive Swift introduction as Hacking with Swift, but is also packed with hints and tips that help you transfer your existing iOS skills to macOS painlessly.
Hacking with macOS includes 18 AppKit projects, plus three more SwiftUI projects, helping you make the most of this powerful platform.
Get started coding in Swift by making an image viewer app and learning key user interface components: windows, table views, images, and split view controllers.
Build on your NSTableView knowledge by adding a second column, while also learning about random numbers, text input and validation, and push buttons.
Return to project 1 and add a toolbar button so that users can share their selected picture using Mail, Messages, AirDrop, and more – it's easier than you think!
Power up your web browsing experience by viewing more than one site at a time, all thanks to NSStackView and the WebKit framework. Bonus: add controls to the Touch Bar!
The MapKit framework lets us draw maps at any resolution, then drop pins where we want it – it's perfect for a fun game about capital cities of the world!
Your macOS apps need to be able to resize themselves to fit your users' needs, and Auto Layout can make that happen – you specify the rules, and it does the rest.
Meet NSCollectionView for the first time, then add drag and drop image support so users can create watermarked home videos from their favorite images.
Learn how NSGridView lets you space user interface controls evenly on your screen, then use it to build a picture-matching game with some special effects!
GCD is a powerful framework that lets you schedule work at different times and on different threads, and this technique project gives you all you need to know.
See how easy it is to place your app's icon and menu right in the macOS status bar, then build an app to display your local weather using JSON and GCD.
SpriteKit has physics built right in, so this project sees you creating a physics-based bubble popping game with timers, sound effects, and more.
Animation on macOS isn't easy, but it is powerful. In this project we build an animation sandbox to help you find ways to bring your user interface to life.
NSDocument brings with it great features like versioning, autosave, and more, and this project combines it with Core Graphics to build a screenshot-editing app.
Build a fast-paced SpriteKit shooting gallery game that brings together animations, new level support, custom mouse cursor, and keyboard input.
Go back to project 12 and learn how you can add support for undo and redo using Cocoa's powerful UndoManager class and only a few extra lines of code.
Use bindings to design an app that tracks the books you've read, their authors and your star rating, all while writing fewer than 20 lines of code. No, really!
Take your SpriteKit knowledge further by building a colorful ball-matching game, while also trying out shape nodes and particle emitters for the first time.
Practice your skill with Cocoa bindings by building a Fahrenheit to Celsius temperature converter, all powered by key-value coding and key-value observing.
While building projects, you'll learn all this and more:
Hacking with macOS follows the same approach I used with Hacking with Swift: small, standalone projects that teach individual techniques starting from scratch, so you end up with a huge library of finished projects you can develop further or use as the base for something entirely new.
Link copied to your pasteboard.