# Apple Developer Tools

The Apple Developer Tools are a suite of software tools from Apple to aid in making software dynamic titles for the macOS and iOS platforms. The developer tools were formerly included on macOS install media, but are now exclusively distributed over the Internet. Xcode is available as a free download from the Mac App Store.

## Applications
### Applet Launcher

A graphical interface for JavaScript's Plug-in, which aids developers by demonstrating how Java applets perform on macOS. Provides tools to adjust the performance, behavior and user experience in applets in development.

### Audio Unit Lab

A graphic presentation of audio units helping software developers to examine their results in decibels. 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 interface and touch screen.

### Computer Hardware Understanding Development Tools

A set of software tools, collectively Computer Hardware Understanding Development Tools (CHUD Tools) measure software performance on macOS, to aid in optimizing. Also provides hardware system benchmarks.

### Core Image Fun House

Used in testing Core Image 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 10.4, 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.
* None: Disables the dialog prompt. Crash reports are neither displayed nor logged.

### FileMerge

A staple of macOS's developer tools since the days of NeXTSTEP, FileMerge graphically compares two or more versions of a file. True to its name, FileMerge allows the user to easily merge the two or more versions into one file. The utility is often used to track changes to source code.
macOS's opendiff command provides the ability to launch FileMerge from the command line. The -ancestor parameter can be used for three-way merging.

### Help Indexer

Creates an index file for the macOS built-in Help Viewer.

### icns Browser

Views the resources for an .icns file, displaying the Mini, Small, Large, Huge, Thumbnail & Tile sizes in all color depths and masks.

### Icon Composer

Icon Composer was an icon editor that 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. As of Xcode 8.2, Icon Composer is no longer available in Additional Tools, as it cannot create high resolution icons. Apple recommends using the command-line utility iconutil, which ships with macOS.

### Instruments

Instruments is a GUI for tracing framework DTrace from Sun's OpenSolaris. It is used to profile time usage, memory allocations, system activity, call trace analysis, GPU performance analysis, energy logging (on iOS devices) etc.

### Jar Bundler

Java 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 that unfortunately is limited in size.

### OpenGL Driver Monitor

Real time access to the inner workings of the graphics processing unit. Runs locally or over a network using Bonjour which is less likely to interfere with the statistics it is gathering with the exception of some disk fragmentation devices.

### OpenGL Profiler

This tool assists developers in debugging and optimizing OpenGL usage under macOS.
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 OpenGL GPU programs (Shaders) under macOS.
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 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.

### PackageMaker

Creates application .pkg installer bundles for installing applications using the Installer application.

### Pixie

A magnifying glass 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.

### 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 language 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 macOS. Quartz Composer creations work in any QuickTime-aware application (beginning with Mac OS X 10.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.
A resurgence in interest in Quartz Composer has come about, as the Facebook design team has been showcasing their utilization of the program to prototype interactions that they couldn't have otherwise depicted with flat mockups in Photoshop.

### Repeat After Me

Optimizes the performance of the built-in text-to-speech software for macOS. Tests the operating system's phonemic 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 developers to optimize software programs on macOS. 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. Since Mac OS X 10.7, it is not on the Apple site any more and was replaced by Instruments.

### Spin Control

Spin Control is a performance tool used for monitoring hang activity in software programs. The program gets its name from the spinning pinwheel on macOS.
Discontinued as of Xcode 4.2.

### Thread Viewer

Thread Viewer is a performance tool which graphically displays activity across a range of threads. It provides color-coded time-line views of thread activity and can display backtraces of activity at specific points in time. It was merged in Instruments app, and can be accessed via "System Trace" instrument.

### Xcode

Xcode is an integrated development environment (IDE) for macOS containing a suite of software development tools developed by Apple for developing software for macOS, iOS, iPadOS, watchOS, tvOS, and visionOS. Xcode supports developing source code for the programming languages C, C++, Objective-C, Objective-C++, Java, AppleScript, Python, Ruby, ResEdit (Rez), and Swift, with a variety of programming models, including but not limited to Cocoa, Carbon, and Java.