Chapter 18. Nonstandard Apps
For the majority of this book, we’ve talked about GUI applications designed to run on either OS X or iOS. These applications receive user input via the mouse, keyboard, or touch screen, display information via the screen, and are launched by double-clicking them on OS X or tapping them on iOS.
However, not every piece of software that you write is a traditional app. In some cases, you might want to create something that the user doesn’t need to see—for example, a background application that periodically talks to the Internet. Another case where you don’t want to build a traditional app is when you want to create a preference pane, which the user can access via the System Preferences application.
In this chapter, you’ll learn how to build apps for OS X that don’t fit the mold of standard applications. Specifically, you’ll learn how to build command-line tools (which don’t use a GUI), system preference panes, and applications that add an item to the system-wide menu bar.
This chapter only applies to OS X—on iOS, you can only build apps that the user accesses via the home screen and that display an interface. Command-line tools and daemons aren’t supported. The only exception to this is the section on multiple window iOS apps discussed in iOS Apps with Multiple Windows.
The simplest possible application on OS X is a command-line tool. This kind of app never presents a GUI to the user, but instead sends and receives output via the command ...