Blog Topics: macOS Development
macOS SwiftUI
- SwiftUI for macOS: Key differences from iOS - AppKit bridging, expectations
- MenuBarExtra: Building menu bar apps - Simple utilities
- Settings/Preferences window in SwiftUI - macOS Settings scene
- Window management in SwiftUI - openWindow, WindowGroup, DocumentGroup
- Multiple windows in macOS apps - Window state, restoration
- Sidebar navigation on Mac - NavigationSplitView, three-column layout
- NSViewRepresentable basics - Wrapping AppKit views
- Table view in SwiftUI (macOS) - Sortable columns, selection
- Keyboard shortcuts in SwiftUI - keyboardShortcut modifier
- Context menus for Mac - Right-click menus, menu bar commands
macOS-Specific Features
- Drag and drop on macOS - Files, custom types, UTTypes
- File dialogs: Open, save, export - fileImporter, fileExporter
- Dock icon customization - Badges, progress, menus
- Sharing services on macOS - NSSharingServicePicker
- Touch Bar support (legacy Macs) - Still relevant for some users
- Spotlight integration - Core Spotlight, indexing content
- Quick Look previews - QLPreviewProvider
- Services menu integration - NSServicesProvider
- AppleScript support in Swift apps - Scriptable apps
- Handoff between Mac and iOS - NSUserActivity
Mac App Distribution
- Sandboxing explained - Entitlements, capabilities
- Hardened runtime - Required entitlements
- Notarization step by step - Command line and Xcode
- Mac App Store vs Direct distribution - Pros/cons
- Distributing outside the App Store - DMG, pkg, Sparkle updates
- Developer ID signing - Certificates explained
- Universal binaries (Apple Silicon + Intel) - Build settings
- App Translocation issues - Why your app doesn’t work from Downloads
Mac-Specific APIs
- NSWorkspace: Opening files, apps, URLs - System integration
- FSEvents: Watching file system changes - Folder monitoring
- Login items: Launch at startup - SMAppService, modern API
- Global keyboard shortcuts - CGEvent, accessibility permissions
- Screen capture permissions - CGWindowList, privacy
- Accessibility API basics - Automating other apps (authorized use)
- NSAppleEventManager - Handling URL schemes on Mac
AppKit Integration
- When to use AppKit vs SwiftUI on Mac - Decision guide
- NSViewController in SwiftUI - Complex AppKit views
- NSWindow customization - Titlebar, toolbar, styles
- NSMenu for app menus - Beyond SwiftUI Commands
- NSSplitView behavior - Resizable panes
- Building a menu bar utility - Complete example
- System status monitoring app - CPU, memory, network
- File batch processing tool - macOS automation
- Clipboard manager basics - NSPasteboard monitoring
- Screenshot utility - CGWindowListCreateImage
High-Traffic macOS Searches
- “App is damaged and can’t be opened” - Gatekeeper fix
- “Not notarized” error for users - What to tell users
- SwiftUI app won’t appear in Dock - LSUIElement
- Menu bar app icon not showing - Common issues
- Sandboxed app can’t access files - Security-scoped bookmarks