Skip to content

Resources useful in learning about development for native macOS apps

License

Notifications You must be signed in to change notification settings

hisaac/macOS-Developer-Resources

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 

Repository files navigation

A 3.5 inch floppy disk titled "Macintosh Applications"

macOS Developer Resources

Resources useful in learning about development native macOS apps.

Contributing

If you have content to add, or notice an error, please open a pull request or issue with your changes. I'd very much like for this to be a collaborative source of information.

Table of Contents


Topics

Continuous Integration / Continuous Deployment


Design

Menu Bar Icons

Some tweets from Jeff Nadeau about menu bar icon sizing and design:

You get 22pt of height (and wouldn’t want to extend into the margins except for fine details) so that seems fine. In Big Sur a symbol image is ideal. The size, weight, and baseline are chosen to be consistent across menu extras, and it works w/ the “bigger menu text” AX pref

One technique is to design within a 22pt bounding box so you can pick the exact vertical bearing of your icon within the whitespace. (We did this for the original Touch Bar icons. We allow “full bleed” content there, so the icons were uniformly produced in a 30pt tall canvas.)

— Jeff Nadeau [tweet 1] [tweet 2]


Code Signing

Code signing is one of the most confusing and complex parts of developing for Apple platforms. Here are a few helpful guides to help make sense of the process.


Hardened Runtime


Logging

Making Logs Show in Console.app Correctly

In order for dynamic log messages to show up in Console.app, you must use the {public} modifier on the value

let variableToInsert = "hello"

os_log(.debug, "message with variable: %@", variableToInsert)         // prints: "message with variable: <private>"
os_log(.debug, "message with variable: %{public}@", variableToInsert) // prints: "message with variable: hello"

Responder Chain & Key View Loop


Books

  • Cocoa Programming for OS X - Somewhat out of date, but filled with lots of essential Mac programming information, with examples in Swift
  • Hacking With macOS - From Paul Hudson. Up to date with SwiftUI and his books recieve lifetime updates.

Videos


Blogroll

Sites with high quality development content, that is sometimes or always focused on the Mac:

Chat Servers

Online communities that are focused on macOS app development:

Tweeters

People on Twitter who (at least sometimes) tweet about macOS development:

Other Resources

About

This document is maintained by me, Isaac Halvorson. I started this after making the jump from iOS development to macOS development, and noticing a distinct lack of good content pertaining specifically to developing for the Mac platform. After some chatter recently about this on Twitter, I figured it was high time someone started to catalog these things somewhere.

About

Resources useful in learning about development for native macOS apps

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published