macOS Daemonology: Communicate with Daemons, Agents, and Helpers Through XPC
- 1h 5m
- Volodymyr Vashurkin
- Apress
- 2021
Take advantage of the full power of Swift through XPC. Development for macOS differs from iOS and web-based development because of multicomponent applications. Besides the usual GUI-based applications and app extensions, there are a wide range of daemons—processes that run in the background—to worry about. These include system monitoring, event listening, notification agents, and many-many more.
First, you'll take a tour around different types of daemons: user agents, privileged helpers, login items, XPC services, and System Extensions. Knowing key specifics of the daemons will open a wide range of possibilities from non-trivial application development to system development. You'll find lots of examples, working code samples, and even ready-to-use utilities. The book will guide you step-by-step through preparation, registration, and management of all kinds of daemons.
System Extensions are brand new for macOS and open additional powerful features for developers. You'll explore installation, user flow, and communication with System Extensions, too, with examples, of course. XPC provides an object-oriented way of communication. There’s no need for custom byte/text-based protocols. A good macOS developer has to know not only programming interfaces, but also design patterns related to technology. XPC communication has a few patterns of its own, and we'll go through them all, including uni- and bi-directional communication, passing objects by-value and by-proxy, handling connection invalidation, named and anonymous connections, and many more.
What You'll Learn
- Use multiples types of daemons in your applications
- Deal with System Extensions – the new type of system daemons
- Get acquainted with Swift bridging patterns for XPC communication
In this Book
-
Operating System Background World
-
Daemon Anatomy
-
Daemon Management
-
Daemons at a Glance
-
Classic Daemon
-
Privileged Helper
-
System Extensions (Since macOS 10.15)
-
User Agents
-
XPC Services
-
Login Items
-
XPC at a Glance
-
Pass Objects by Copy Over XPC Using NSSecureCoding
-
Pass Objects by Proxy: The Callable XPC Objects
-
NSXPCListener Endpoint: XPC Service Sharing
-
XPC Security
-
XPC and Swift