Apple Developer Tools
Encyclopedia
The Apple Developer Tools are a suite of software tools from Apple to aid in making software titles for the Mac OS X
platform. They come on the Snow Leopard installation CD as part of the Xcode
suite, but aren't installed by default.
that is included with Mac OS X (was called Script Editor in versions of OS X prior to 10.6 Snow Leopard). Scripts are written into the document editing window and can be compiled and run from the Script Editor window. Scripts can also be saved as AppleScript applications (applets) or compiled scripts. Script Editor also provides access to a reference library of Apple Events dictionaries corresponding to the scriptable applications on your computer, and can log the Events and Results of scripts run from AppleScript Editor for debugging purposes.
Other AppleScript and OSA language editors include:
units, which function similar to Adobe Photoshop
filters. Each has a specific action, with parameters customize the action. Showcases Core Image, a technology introduced in Mac OS X v10.4
, supported by newer graphic hardware.
's Merge utility, it graphically compares and merges two different versions of a file, and is often used to track changes to source code.
A command line version is available through the Terminal application: opendiff.
for the Mac OS X built-in Help Viewer
.
file, displaying the Mini, Small, Large, Huge, Thumbnail & Tile sizes in all bit-depths and mask
s.
editor that is part of the Apple Developer Tools. It does not have any editing features other than composing Apple Icon Image
files and Windows ICO files. External editors must do all the image manipulation, then the results may be imported into the converter to create the finished icon.
Instruments
is a GUI for tracing framework DTrace
from Sun's OpenSolaris
.
, binary
, octal
, decimal
, hexadecimal
, ASCII
, MacRoman, UTF-8
& Unicode
; 8, 16, 32 & 64-bit; and big & little endian.
tool that aids in packaging an application’s component files into a single double-clickable application. Properties can be modified to optimize the code.
Assesses an application's memory usage by monitoring a user as they interact with an application, which allows MallocDebug to build a memory profile.
which is less likely to interfere with the statistics it is gathering.
usage under Mac OS X.
Supported features:
GPU programs (Shaders) under Mac OS X.
Features supported by OpenGL Shader Builder:
One notable feature is 'Export to Xcode'. A sample Xcode project is created with C
source code to initialize OpenGL
(using the GLUT
library) and run the shader program.
Note that this program is no longer recommended for editing GLSL shaders as "GLSLEditorSample," available as an example program, is generally regarded as superior.
for installing applications using the Installer
application.
application for magnifying small sections of the computer's screen, centered around the mouse cursor
, giving the user a detailed view of the screen, as well as the pixel
coordinates of the mouse. Provides several levels of zoom, "locking" the image under the mouse for closer examination, and saves the magnified image one of several formats. Helps ensure visual elements are aligned precisely.
An alternative for the Pixie app that comes in the default OS X installation is the DigitalColor Meter app in the Applications / Utilities folder. There is also a built-in zoom function enabled via System Preferences / Universal Access / Seeing which can enlarge the screen up to 20 times, but it provides no data about the pixels. The default way to activate this is Command-Option-Shift-= (in other words Command-Option-+), assuming the default keystrokes are enabled in System Preferences / Keyboard & Mouse / Keyboard Shortcuts.
for processing and rendering
data. Using OpenGL
, Core Image
, Core Video
, and other technologies to build an API and serves as a simple visual programming paradigm. Quartz Composer is a core technology of the Mac OS X. Quartz Composer creations work in any QuickTime
-aware application (beginning with Mac OS X v10.4), from the Quartz Composer application, or embedded into Cocoa
or Carbon
applications.
Quartz Composer has many similarities to Max/MSP although its primary usage is for graphical rather than audio processing. Offers the ability to construct interactive video compositions that react to audio or MIDI signals and can be played from any QuickTime
aware application.
Pierre-Olivier Latour originally developed the predecessor to Quartz Composer under the name PixelShox Studio.
translation engine, creates graphs of the generated tone, to visually adjust the intonation, and records samples for reference.
s to optimize software programs on Mac OS X
. It samples software at set time intervals (or driven by hardware performance monitors events) taking snapshots of the stack, showing the functions which require more of the application’s resources. Includes tools to analyze the data produced by a sampling run.
, which is a "spinning wheel" on Mac OS X.
. It provides color-coded time-line views of thread activity and can display backtraces of activity at specific points in time.
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
platform. They come on the Snow Leopard installation CD as part of the Xcode
Xcode
Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,...
suite, but aren't installed by default.
AppleScript Editor
An editor for AppleScriptAppleScript
AppleScript is a scripting language created by Apple Inc. and built into Macintosh operating systems since System 7. The term "AppleScript" may refer to the scripting system itself, or to particular scripts that are written in the AppleScript language....
that is included with Mac OS X (was called Script Editor in versions of OS X prior to 10.6 Snow Leopard). Scripts are written into the document editing window and can be compiled and run from the Script Editor window. Scripts can also be saved as AppleScript applications (applets) or compiled scripts. Script Editor also provides access to a reference library of Apple Events dictionaries corresponding to the scriptable applications on your computer, and can log the Events and Results of scripts run from AppleScript Editor for debugging purposes.
Other AppleScript and OSA language editors include:
- Smile (software)Smile (software)Smile is a Macintosh computer programming and working environment based on AppleScript. It features a number of production technologies and a natural fashion of having them work together...
, from Satimage - Script DebuggerScript DebuggerScript Debugger is a Macintosh computer source code editor and debugging environment for the AppleScript programming language, and other languages based on Apple Inc.'s Open Scripting Architecture...
, from Late Night SoftwareLate Night SoftwareLate Night Software Ltd., is a privately held Canadian software company that has produced several applications, utilities, and developer's tools for the Macintosh computer platform. The company was established in 1995. Its president is Mark Alldritt....
Applet Launcher
A graphical interface for Sun’s Java Plug-in, which aids developers by demonstrating how Java applets perform on Mac OS X. Provides tools to adjust the performance & behavior applets in developmentAudio Unit Lab
A graphic presentation of audio units helping software developers to examine their results. AU Lab can be used to test audio units, conduct live mixing, and playback of audio content. Audio units are controlled visually with the audio unit’s graphic interfaceComputer Hardware Understanding Development Tools
A set of software tools, collectively Computer Hardware Understanding Development Tools (CHUD Tools) measure software performance on Mac OS X, to aid in optimizing. Also provides hardware system benchmarksCore Image Fun House
Used in testing Core ImageCore Image
Core Image is a pixel-accurate, near-realtime, non-destructive image processing technology in Mac OS X. Implemented as part of the QuartzCore framework of Mac OS X 10.4 and later, Core Image provides a plugin-based architecture for applying filters and effects within the Quartz graphics rendering...
units, which function similar to Adobe Photoshop
Adobe Photoshop
Adobe Photoshop is a graphics editing program developed and published by Adobe Systems Incorporated.Adobe's 2003 "Creative Suite" rebranding led to Adobe Photoshop 8's renaming to Adobe Photoshop CS. Thus, Adobe Photoshop CS5 is the 12th major release of Adobe Photoshop...
filters. Each has a specific action, with parameters customize the action. Showcases Core Image, a technology introduced in Mac OS X v10.4
Mac OS X v10.4
Mac OS X v10.4 Tiger is the fifth major release of Mac OS X, Apple's desktop and server operating system for Macintosh computers. Tiger was released to the public on 29 April 2005 for US$129.95 as the successor to Mac OS X Panther , which had been released 18 months earlier...
, supported by newer graphic hardware.
CrashReporterPrefs
A developer utility for setting report parameters for Apple's Crash Reporter application.- Basic: Shows a dialog asking the user what to do.
- Developer: Provides additional debug info and automatically shows the mail to Apple window.
- Server: Runs silent, but keeps all the logs.
FileMerge
Similar to NEXTSTEPNEXTSTEP
NeXTSTEP was the object-oriented, multitasking operating system developed by NeXT Computer to run on its range of proprietary workstation computers, such as the NeXTcube...
's Merge utility, it graphically compares and merges two different versions of a file, and is often used to track changes to source code.
A command line version is available through the Terminal application: opendiff.
Help Indexer
Creates an index fileIndex (database)
A database index is a data structure that improves the speed of data retrieval operations on a database table at the cost of slower writes and increased storage space...
for the Mac OS X built-in Help Viewer
Help Viewer
Help Viewer is a WebKit based HTML viewer for Mac OS X aimed at displaying help files and other documentation. It is found in /System/Library/CoreServices/Help Viewer.app. The default file extension is ".help". Help index files are generated with Help Indexer...
.
icns Browser
Views the resources for an .icnsApple Icon Image
The Apple Icon Image format is the icon format used in Apple Inc.'s Mac OS X. It supports icons of 16×16, 32×32, 48×48, 128×128, 256×256 and 512×512 pixels, with both 1- and 8-bit alpha channels and multiple image states...
file, displaying the Mini, Small, Large, Huge, Thumbnail & Tile sizes in all bit-depths and mask
Mask (computing)
In computer science, a mask is data that is used for bitwise operations.Using a mask, multiple bits in a byte, nibble, word can be set either on, off or inverted from on to off in a single bitwise operation.-Masking bits to 1:...
s.
Icon Composer
Icon Composer is an iconIcon (computing)
A computer icon is a pictogram displayed on a computer screen and used to navigate a computer system or mobile device. The icon itself is a small picture or symbol serving as a quick, intuitive representation of a software tool, function or a data file accessible on the system. It functions as an...
editor that is part of the Apple Developer Tools. It does not have any editing features other than composing Apple Icon Image
Apple Icon Image
The Apple Icon Image format is the icon format used in Apple Inc.'s Mac OS X. It supports icons of 16×16, 32×32, 48×48, 128×128, 256×256 and 512×512 pixels, with both 1- and 8-bit alpha channels and multiple image states...
files and Windows ICO files. External editors must do all the image manipulation, then the results may be imported into the converter to create the finished icon.
Instruments
- (formerly known as XRay)
Instruments
Instruments (application)
Instruments is an application performance analyzer and visualizer, integrated in Xcode 3.0 and later versions of Xcode. It is a developer tool included in Apple Mac OS X v10.5 and later versions of Mac OS X, built on top of the DTrace tracing framework from OpenSolaris and ported to Mac OS...
is a GUI for tracing framework DTrace
DTrace
DTrace is a comprehensive dynamic tracing framework created by Sun Microsystems for troubleshooting kernel and application problems on production systems in real time...
from Sun's OpenSolaris
OpenSolaris
OpenSolaris was an open source computer operating system based on Solaris created by Sun Microsystems. It was also the name of the project initiated by Sun to build a developer and user community around the software...
.
IORegistryExplorer
Examines the Mac OS X hardware registry and offers a dozen view modes for data: unaryUnary
* Unary numeral system, the simplest numeral system to represent natural numbers* Unary operation, a kind of mathematical operator that has only one operand* Unary coding, an entropy encoding that represents a number n with n − 1 ones followed by a zero...
, binary
Binary numeral system
The binary numeral system, or base-2 number system, represents numeric values using two symbols, 0 and 1. More specifically, the usual base-2 system is a positional notation with a radix of 2...
, octal
Octal
The octal numeral system, or oct for short, is the base-8 number system, and uses the digits 0 to 7. Numerals can be made from binary numerals by grouping consecutive binary digits into groups of three...
, decimal
Decimal
The decimal numeral system has ten as its base. It is the numerical base most widely used by modern civilizations....
, hexadecimal
Hexadecimal
In mathematics and computer science, hexadecimal is a positional numeral system with a radix, or base, of 16. It uses sixteen distinct symbols, most often the symbols 0–9 to represent values zero to nine, and A, B, C, D, E, F to represent values ten to fifteen...
, ASCII
ASCII
The American Standard Code for Information Interchange is a character-encoding scheme based on the ordering of the English alphabet. ASCII codes represent text in computers, communications equipment, and other devices that use text...
, MacRoman, UTF-8
UTF-8
UTF-8 is a multibyte character encoding for Unicode. Like UTF-16 and UTF-32, UTF-8 can represent every character in the Unicode character set. Unlike them, it is backward-compatible with ASCII and avoids the complications of endianness and byte order marks...
& Unicode
Unicode
Unicode is a computing industry standard for the consistent encoding, representation and handling of text expressed in most of the world's writing systems...
; 8, 16, 32 & 64-bit; and big & little endian.
Jar Bundler
JavaJava (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
tool that aids in packaging an application’s component files into a single double-clickable application. Properties can be modified to optimize the code.
MallocDebug
Assistance for assessing memory usage and detecting memory leaks in programs.Assesses an application's memory usage by monitoring a user as they interact with an application, which allows MallocDebug to build a memory profile.
OpenGL Driver Monitor
Real time access to the inner workings of the graphics processing unit. Runs locally or over a network using BonjourBonjour (software)
In computing, Bonjour is Apple Inc.'s trade name for its implementation of Zeroconf, a group of technologies that includes service discovery, address assignment, and name resolution...
which is less likely to interfere with the statistics it is gathering.
OpenGL Profiler
This tool assists developers in debugging and optimizing OpenGLOpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...
usage under Mac OS X.
Supported features:
- Launch or attach to an application
- Breakpoints and execution control
- Error detection including thread safety checks
- Scripts
- Buffer views
- Resource viewing/editing
- Statistics gathering
- OpenGL call traces with stack traces and timings
OpenGL Shader Builder
An integrated environment to develop and debug OpenGLOpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...
GPU programs (Shaders) under Mac OS X.
Features supported by OpenGL Shader Builder:
- Realtime entry
- Preview window with shaders applied to a textured plane, sphere or teapot
- Example shaders
- Syntax checking
- Debugging and analysis of vertex / fragment programs
- Export to Xcode
One notable feature is 'Export to Xcode'. A sample Xcode project is created with C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
source code to initialize OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...
(using the GLUT
OpenGL Utility Toolkit
The OpenGL Utility Toolkit is a library of utilities for OpenGL programs, which primarily perform system-level I/O with the host operating system. Functions performed include window definition, window control, and monitoring of keyboard and mouse input...
library) and run the shader program.
Note that this program is no longer recommended for editing GLSL shaders as "GLSLEditorSample," available as an example program, is generally regarded as superior.
PackageMaker
Creates application.pkg
installer bundlesBundle (NEXTSTEP)
In NEXTSTEP, OPENSTEP, their lineal descendants Mac OS X, iOS, and in GNUstep, a bundle is a directory that allows related resources such as an application's executable and its graphics to be grouped together, appearing as a single file to the user....
for installing applications using the Installer
Installer (Mac OS X)
Installer is an application included in Mac OS X which extracts and installs files out of .pkg packages. It was created by NeXT, and is now maintained by Apple Inc...
application.
Pixie
A magnifying glassMagnifying glass
A magnifying glass is a convex lens that is used to produce a magnified image of an object. The lens is usually mounted in a frame with a handle ....
application for magnifying small sections of the computer's screen, centered around the mouse cursor
Cursor (computers)
In computing, a cursor is an indicator used to show the position on a computer monitor or other display device that will respond to input from a text input or pointing device. The flashing text cursor may be referred to as a caret in some cases...
, giving the user a detailed view of the screen, as well as the pixel
Pixel
In digital imaging, a pixel, or pel, is a single point in a raster image, or the smallest addressable screen element in a display device; it is the smallest unit of picture that can be represented or controlled....
coordinates of the mouse. Provides several levels of zoom, "locking" the image under the mouse for closer examination, and saves the magnified image one of several formats. Helps ensure visual elements are aligned precisely.
An alternative for the Pixie app that comes in the default OS X installation is the DigitalColor Meter app in the Applications / Utilities folder. There is also a built-in zoom function enabled via System Preferences / Universal Access / Seeing which can enlarge the screen up to 20 times, but it provides no data about the pixels. The default way to activate this is Command-Option-Shift-= (in other words Command-Option-+), assuming the default keystrokes are enabled in System Preferences / Keyboard & Mouse / Keyboard Shortcuts.
Property List Editor
Edits application preference plist files. As of Xcode 4, Property List Editor is no longer included as a separate application and all editing of plist files is done within Xcode. The last stand-alone version was version 5.3 in Xcode 3.2.6.Quartz Composer
A visual programming languageVisual programming language
In computing, a visual programming language is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used...
for processing and rendering
Rendering (computer graphics)
Rendering is the process of generating an image from a model , by means of computer programs. A scene file contains objects in a strictly defined language or data structure; it would contain geometry, viewpoint, texture, lighting, and shading information as a description of the virtual scene...
data. Using OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...
, Core Image
Core Image
Core Image is a pixel-accurate, near-realtime, non-destructive image processing technology in Mac OS X. Implemented as part of the QuartzCore framework of Mac OS X 10.4 and later, Core Image provides a plugin-based architecture for applying filters and effects within the Quartz graphics rendering...
, Core Video
Core Video
Core Video is the video processing model employed by Mac OS X. It links the process of decompressing frames from a video source to the rest of the Quartz technologies for image rendering and composition...
, and other technologies to build an API and serves as a simple visual programming paradigm. Quartz Composer is a core technology of the Mac OS X. Quartz Composer creations work in any QuickTime
QuickTime
QuickTime is an extensible proprietary multimedia framework developed by Apple Inc., capable of handling various formats of digital video, picture, sound, panoramic images, and interactivity. The classic version of QuickTime is available for Windows XP and later, as well as Mac OS X Leopard and...
-aware application (beginning with Mac OS X v10.4), from the Quartz Composer application, or embedded into Cocoa
Cocoa (API)
Cocoa is Apple's native object-oriented application programming interface for the Mac OS X operating system and—along with the Cocoa Touch extension for gesture recognition and animation—for applications for the iOS operating system, used on Apple devices such as the iPhone, the iPod Touch, and...
or Carbon
Carbon (API)
Carbon is one of Apple Inc.'s procedural application programming interfaces for the Macintosh operating system. It provides C programming language access to Macintosh system services...
applications.
Quartz Composer has many similarities to Max/MSP although its primary usage is for graphical rather than audio processing. Offers the ability to construct interactive video compositions that react to audio or MIDI signals and can be played from any QuickTime
QuickTime
QuickTime is an extensible proprietary multimedia framework developed by Apple Inc., capable of handling various formats of digital video, picture, sound, panoramic images, and interactivity. The classic version of QuickTime is available for Windows XP and later, as well as Mac OS X Leopard and...
aware application.
Pierre-Olivier Latour originally developed the predecessor to Quartz Composer under the name PixelShox Studio.
Repeat After Me
Optimizes the performance of the built-in text-to-speech software for Mac OS X. Tests the operating system's phonemicPhoneme
In a language or dialect, a phoneme is the smallest segmental unit of sound employed to form meaningful contrasts between utterances....
translation engine, creates graphs of the generated tone, to visually adjust the intonation, and records samples for reference.
Shark
Shark is a profiler, used by software developerSoftware developer
A software developer is a person concerned with facets of the software development process. Their work includes researching, designing, developing, and testing software. A software developer may take part in design, computer programming, or software project management...
s to optimize software programs on Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
. It samples software at set time intervals (or driven by hardware performance monitors events) taking snapshots of the stack, showing the functions which require more of the application’s resources. Includes tools to analyze the data produced by a sampling run.
Spin Control
Spin Control is a performance tool used for monitoring hang activity in software programs. The program gets its name from the Spinning wait cursorSpinning wait cursor
The spinning wait cursor is a cursor in Apple's Mac OS X that indicates an application is not responding to system events.The Apple Human Interface Guidelines officially refers to it as the "spinning wait cursor"...
, which is a "spinning wheel" on Mac OS X.
Thread Viewer
Thread Viewer is a performance tool which graphically displays activity across a range of threadsThread (computer science)
In computer science, a thread of execution is the smallest unit of processing that can be scheduled by an operating system. The implementation of threads and processes differs from one operating system to another, but in most cases, a thread is contained inside a process...
. It provides color-coded time-line views of thread activity and can display backtraces of activity at specific points in time.