TweetFollow Us on Twitter

MACINTOSH C CARBON
MACINTOSH C CARBON: A Hobbyist's Guide To Programming the Macintosh in C
Version 1.0
© 2001 K. J. Bricknell
Go to Contents Go to Program Listing

CHAPTER 10

APPLE EVENTS

Introduction

Apple events are high-level events whose structure and interpretation are determined by the Apple Event InterProcess Messaging Protocol (AEIMP). Applications typically use Apple events to request services and information from other applications and to provide services and information in response to such requests.

In the world of Apple events:

  • The client application is the application that initiates communication between two applications that support Apple events. It sends the Apple event that requests a service or information.

  • The server application is the application that provides the requested service or information.

As an example, Fig 1 shows a client application (the Finder) sending an Apple event known as the Open Documents event to the server application (My Application) requesting the latter to open the documents named Document A and Document B. My Application responds by opening windows for the specified documents.

An application can also send Apple events to itself, thus acting as both client and server.

Applications can rely on a vocabulary of standard Apple events, defined in the Apple Event Registry Standard Suites, to identify Apple events and respond appropriately. The standard suites (a suite being a group of Apple events that are usually implemented together) include:

  • The required suite, which consists of five Apple events that the Finder sends to applications. The required Apple events are:

    • Open Application.

    • Re-open Application.

    • Open Documents.

    • Print Documents.

    • Quit Application.

    The Finder uses the required Apple events as part of the mechanism for launching and terminating applications. Your application must support the required Apple events.

  • The core suite, which consists of the basic Apple events, including Get Data, Set Data, Move, Delete and Save, that nearly all applications use to communicate.

  • The functional-area suite, which consists of a group of Apple events which support a related functional area, and which include the Text suite and the Database suite.

  • The appearance suite, which pertains to Mac OS 8/9 only, and which consists of four Apple events used to advise all foreground applications when one of the following changes has been made in the Mac OS 8/9 Appearance control panel:

    • Appearance. (Since the only Appearance ever made available by Apple is Platinum, this event will not be considered further.)

    • Large system font.

    • Small system font.

    • Views font.

Another important Apple event, of relevance on Mac OS X only, is the Show Preferences event. This event is sent to your application when the user chooses the PreferencesÉ item in the Mac OS X Application menu.

This chapter is primarily concerned with the required Apple events, the Appearance Manager Apple events, and the Show Preferences event ,exploring the subject of Apple events only to the extent necessary to gain an understanding of the measures involved in supporting these events.

Apple Event Attributes and Parameters

An Apple event comprises attributes and, possibly, parameters. Attributes identify the Apple event and denote the task to be performed. Parameters contain information to be used by the target application.

Apple Event Attributes

An Apple event attribute is a structure which identifies, principally, the event class, event ID, and target application.

Event Class

The event class is identifies a group of related Apple events. It appears in the message field of the event structure for an Apple event (see Fig 2). For example:

  • The required Apple events have the value 'aevt' in the message field of their event structures. ('aevt' is represented by the constant kCoreEventClass.)

  • The Appearance Manager Apple events have the value 'appr' in the message field of their event structures. 'appr' is represented by the constant kAppearanceEventClass.

Event ID

The event ID identifies the particular event within the event class, uniquely identifying the Apple event and communicating the action the Apple event should perform. As shown at Fig 2, the event ID appears in the where field of the event structure for an Apple event. For example, for an Open Documents event, the where field will contain the value 'odoc' (which is represented by the constant kAEOpenDocuments.)

The following are the event IDs for the five required Apple events and the four Appearance Manager Apple events.

Event ID

Value

Description

kAEOpenApplication 'oapp'

Perform those tasks associated with the user opening the application.

kAEReopenApplication 'rapp'

Perform those tasks associated with the user "re-opening" the application.

kAEOpenDocuments 'odoc'

Open documents.

kAEPrintDocuments 'pdoc'

Print Documents.

kAEQuitApplication 'quit'

Quit your application.


kAEAppearanceChanged 'thme'

Current appearance has changed. Action as required.

kAESystemFontChanged 'sysf'

Current system font has changed. Action as required.

kAESmallSystemFontChanged 'ssfn'

Current small system font has changed. Action as required.

kAEViewsFontChanged 'vfnt'

Current views font has changed. Action as required.


kAEShowPreferences 'pref'

User has chosen the Prefences item in the Mac OS X Application menu.

Target Application

In addition to the event class and event ID, every Apple event must include an attribute which specifies the target application's address.

Apple Event Parameters

An Apple event parameter is a structure containing data that the target application uses. Apple events can use standard data types, such as strings of text, long integers, boolean values, and alias structures, for the data in their parameters.

There are various kinds of Apple event parameters, including direct parameters and additional parameters.

Direct Parameters

Direct parameters usually specify the data to be acted upon by the target application. For example, a list of documents is contained in the direct parameter of the Open Documents event.

Additional Parameters

Some Apple events also take additional parameters. The target application uses these additional parameters (for example, operands in an equation) in addition to the data specified in the direct parameter.

Required and Optional Parameters

All parameters are described as either required parameters or optional parameters in the Apple Event Registry: Standard Suites. Direct parameters are usually defined as required parameters.

Attributes and Parameters in an Open Documents Apple Event

Fig 3 shows the major Apple event attributes and the direct parameter for the Open Documents event.

To process this event, the application My Application would use the AEProcessAppleEvent function, which uses the event class and event ID attributes to dispatch the event to its Open Documents handler. The Open Documents handler opens the documents specified in the direct parameter.

Data Structures Within Apple Events

The Apple Event Manager constructs its own internal data structures to contain the information in an Apple event.

Descriptor Structures

The Apple Event Manager uses descriptor structures, which you can think of as building blocks, to construct Apple event attributes and parameters. Descriptor structures comprise a handle to data and a descriptor type. The descriptor type identifies the type of data to which the handle refers:

     struct AEDesc
     {
       DescType      descriptorType;  // Type of data.
       AEDataStorage dataHandle;      // Handle to data.
     };
     typedef struct AEDesc AEDesc;

In Carbon, the dataHandle field is opaque. You must use the accessor functions AEGetDescData and AEGetDescDataSize to access the data in this field.

The descriptor type is of type DescType, that is, a four-character code. The following are the codes for some of the major descriptor types, the constants used to represent them, and the kind of data they identify:

Descriptor Type

Value

Description of Data

typeChar 'TEXT'

Unterminated string.

typeType 'type'

Four-character code.

typeBoolean 'bool'

One-byte Boolean value.

typeLongInteger 'long'

32-bit integer.

typeAEList 'list'

List of descriptor structures.

typeAERecord 'reco'

List of keyword-specified descriptor structures.

typeAppleEvent 'aevt'

Apple event structure.

typeFSS 'fss '

File system specification.

typeKeyword 'keyw'

Apple event keyword.

typeNull 'null'

Nonexistent data (handle whose value is NULL).

Fig 4 illustrates the logical arrangement of two descriptor structures. The first specifies that the data handle refers to an unterminated string. The second specifies that the data handle refers to a four-character code, in this case 'aevt' (which is represented by the constant kCoreEventClass).

Address Descriptor Structure

Every Apple event includes an attribute specifying the address of the target application. A descriptor structure which contains an application's address is called an address descriptor structure:

     typedef AEDesc AEAddressDesc;  // An AEDesc which contains addressing data.

Keyword-Specified Descriptor Structures

The Apple Event Manager assembles the various descriptor structures into an Apple event. Your application cannot access the contents of the Apple event directly; rather, Event Manager functions must be used to request each attribute and parameter by keyword. Keywords, which are four-character codes of type AEKeyword, are used to keep track of various descriptor structures.

The following are typical keywords and the constants used to represent them:

Keyword

Value

Description

keyMissedKeywordAttr 'miss'

Keyword for first required parameter remaining in an Apple event.

keyDirectObject '----'

Direct parameter.

Keywords are associated with specific descriptor structures by means of keyword-specified descriptor structures:

     struct AEKeyDesc 
     {
       AEKeyword descKey;      // Keyword.
       AEDesc    descContent;  // Descriptor structure.
     };
     typedef struct AEKeyDesc AEKeyDesc;

Descriptor Lists, AE Structures, and AppleEvent Structures

Descriptor Lists

To extract data from an Apple event, you use Apple Event Manager functions to copy data to a buffer, to return a descriptor structure whose data handle refers to a copy of the data, or to return descriptor lists, which are lists of descriptor structures. A descriptor list is a descriptor structure whose handle refers to a list of other descriptor structures (unless it is an empty list).

Fig 5 illustrates the logical arrangement of the descriptor list that specifies the direct parameter of the Open Documents event shown at Fig 3.

This descriptor list provides the data for a keyword-specified descriptor structure.

AE Structure

Keyword-specified descriptor structures can in turn be combined into an AE structure. An AE structure is a descriptor list of type AERecord:

     typedef AEDescList AERecord;  // List of keyword-specified descriptor structures.

The handle for a descriptor list of type AERecord refers to a list of keyword-specified descriptor structures that can be used to construct Apple event parameters.

Apple Event Structure

An Apple event structure is another special descriptor list of data type AppleEvent:

     typedef AERecord AppleEvent;  // List of attributes and parameters for Apple event.

An Apple event structure describes an Apple event. The data for an Apple event structure, like the data for an AE structure, consists of a list of keyword-specified descriptor structures. The difference between an AE structure and an Apple event structure is that the data in the latter is divided into two parts, the first for attributes and the second for parameters.

Passing Descriptor Lists, AE Structures and Apple Event Structures to Apple Event Manager Functions

You can pass an Apple event structure to any Apple Event Manager function that expects an AE structure, and you can pass Apple event structures and AE structures, as well as descriptor lists and descriptor structures, to any Apple Event Manager functions that expect structures of data type AEDesc.

Example Complete Apple Event

Fig 6 shows an example of a complete Apple event. This is a data structure of type AppleEvent which contains a list of keyword-specified descriptor structures containing the attributes and parameters of an Open Documents event.

Handling Apple Events

To request a service or information, a client application uses the Apple Event Manager to create and send an Apple event. To respond, a server application uses the Apple Event Manager to extract data from the attributes and parameters of the Apple event. In addition, and where necessary, the server application adds requested data to the reply event returned to the client by the Apple Event Manager.

As previously stated, your application should, at the very least, support the required Apple events sent by the Finder. Your application must therefore:

  • Set the isHighLevelEventAware flag in your application's 'SIZE' resource.

  • Test for high-level events in the event loop. An Apple event (like all high-level events) is identified by a message class of kHighLevelEvent in the what field of the event structure.

  • Use AEProcessAppleEvent to process the Apple events. AEProcessAppleEvent examines the data in the event class and event ID attributes so as to identify the Apple event and then calls the appropriate Apple event handler provided by your application.

  • Provide handlers for the required Apple events in your application. Your Apple event handlers must extract the pertinent data from the Apple event, perform the requested action, and return a result.

  • Use AEInstallEventHandler to install your Apple event handlers in an Apple event dispatch table for your application. The Apple event dispatch table is used by the Apple Event Manager to map Apple events to your application's handlers. Calls to AEProcessAppleEvent cause the Apple Event Manager to check the dispatch table and, if your application has installed a handler for the event, call the handler.

Apple Event Handlers

Each Apple event handler must be a function which uses this syntax:

     OSErr  theEventHandler(AppleEvent *appleEvent,
                                 AppleEvent *reply,
                                 long handlerRefcon);
appleEvent

The Apple event to handle. Your handler uses Apple Event Manager functions to extract any parameters and attributes from the Apple event and then perform the necessary processing.

reply

The default reply provided by the Apple Event Manager.

handlerRefcon

Reference constant stored in the Apple event dispatch table entry for the Apple event. Your handler can ignore this parameter if your application does not use the reference constant.

Apple event handlers must generally perform the following tasks:

  • Extract the attributes and parameters from the Apple event.

  • Check that all required parameters have been extracted.

  • Perform the action requested by the Apple event.

  • Dispose of any copies of the descriptor structures that have been created.

  • Add information to the reply Apple event if requested.

Extracting and Checking Data

You must use Apple Event Manager functions to extract the data from Apple events. The following are the main functions involved:

Function

Description

AEGetAttributePtr

Uses a buffer to return a copy of the data contained in an Apple event attribute. Used to extract data of fixed length or known maximum length.

AEGetParamDesc

Returns a copy of the descriptor structure or descriptor list for an Apple event parameter. Usually used to extract data of variable length, for example, to extract the descriptor list for a list of alias structures specified in the direct parameter of an Open Documents event.

AECountItems

Returns the number of descriptor structures in a descriptor list. Used, for example, to determine the number of alias structures for documents specified in the direct parameter of an Open Documents event.

AEGetNthPtr

Uses a buffer to return a copy of the data for a descriptor structure contained in a descriptor list. Used to extract data of fixed length or known maximum length, for example, to extract the name and location of a document from the descriptor list specified in the direct parameter of the Open Documents event.

Data Type Coercion

You can specify the descriptor type in the resulting data from these functions. If this type is different from the descriptor type of the attribute or parameter, the Apple Event Manager attempts to coerce it to the specified type. In the direct parameter of the Open Documents event, for example, each descriptor structure in the descriptor list is an alias structure and each alias structure specifies a document to be opened. All your application usually needs to open a document is a file system specification structure (FSSpec) of the document. When you extract the descriptor structure from the descriptor list, you can request that the Apple Event Manager return the data to your application as a file system specification structure instead of an alias structure.

Checking That All Required Parameters Have Been Retrieved

After extracting all known Apple event parameters, your handler should check that it has retrieved all the parameters that the source application considered to be required. To do this, determine whether the keyMissedKeywordAttr attribute exists. If this attribute does exist, your handler has not retrieved all the required parameters, and it should return an error.

Performing the Requested Action and Returning a Result

When your application responds to an Apple event, it should perform the standard action requested by the event.

When your handler returns a non-zero result code, the Apple Event Manager adds a keyErrorNumber parameter, containing the result code that your handler returns, to the reply Apple event.

Disposing of Copies of Descriptor Structures

When your handler is finished with a copy of a descriptor structure created by AEGetParamDesc and related functions, it should dispose of it by calling AEDisposeDesc.

Required Apple Events - Contents and Required Action

Your application receives the five required Apple events from the Finder in these circumstances:

  • If your application is not open and the user elects to open it from the Finder without opening or printing any documents (either by double clicking the application's icon, selecting the icon and choosing Open from the Finder's File menu, or choosing it from the Mac OS 8/9 Apple menu), the Finder calls the Process Manager to launch your application and then sends your application an Open Application event.

  • If your application is already open and the user attempts to "open" it again, the Finder sends your application a Re-open Application event.

    The Re-open Application event was introduced with MAC OS 8 to cater for a situation which could confuse inexperienced users. The specific situation is where the application is open but has no open windows. Because of the absence of a window, the user does not realise that the application is running, attempts to "open" it from the Finder, and then fails to notice the menu bar change. The intention of the Re-open Application event in such circumstances is to cause the application to open a window, providing more obvious visible evidence to the user that the application is, in fact, open.

  • If your application is not open and the user elects to open one of your application's documents from the Finder, the Finder calls the Process Manager to launch your application and then sends your application an Open Documents event.

  • On Mac OS 8/9, if your application is not open and the user elects to print one of your application's documents from the Finder, the Finder calls the Process Manager to launch your application and then sends your application a Print Documents event. Your application should print the selected documents and remain open until it receives a Quit Application event from the Finder.

  • If your application is open and the user elects to open or (on Mac OS 8/9 only) print any of your application's documents from the Finder, the Finder sends your application the Open Documents or (on Mac OS 8/9 only) Print Documents event.

  • If your application is open and the user chooses Restart or Shut Down, the Finder sends your application the Quit Application event.

The following is a summary of the contents of the required Apple events sent by the Finder and the actions they request applications to perform:

Open Application event

Attributes:

Event Class: kCoreEventClass
Event ID: kAEOpenApplication

Parameters:

None.

Requested Action:

Perform tasks your application normally performs when a user opens your application without opening or printing any documents, such as opening an untitled document window.

Re-open Application event

Attributes:

Event Class: kCoreEventClass
Event ID: kAEReopenApplication

Parameters:

None.

Requested Action:

If no windows are currently open, open a new untitled document window.

Open Documents event

Attributes:

Event Class: kCoreEventClass
Event ID: kAEOpenDocuments

Required parameters:

Keyword: keyDirectObject
Descriptor type: typeAEList
Data: A list of alias structures for the documents to be opened.

Requested Action:

Open the documents specified in the keyDirectObject parameter.

Print Documents event

Attributes:

Event Class: kCoreEventClass
Event ID: kAEPrintDocuments

Required parameters:

Keyword: keyDirectObject
Descriptor type: typeAEList
Data: A list of alias structures for the documents to be printed.

Requested Action:

Print the documents specified in the keyDirectObject parameter.

Quit Application event

Attributes:

Event Class: kCoreEventClass
Event ID: kAEQuitApplication

Parameters:

None.

Requested Action:

Perform any tasks that your application would normally perform when the user chooses Quit from the application's File menu. (Such tasks typically include releasing memory and requesting the user to save documents which have been changed.)

Your application needs to recognise two descriptor types to handle the required Apple events: descriptor lists and alias structures.

As previously stated, in the event of an Open Documents or (on Mac OS 8/9 only) Print Documents event, you can retrieve the data which specifies the document as an alias structure, or you can request that the Apple Event Manager coerce the alias structure to a file system specification structure. The file system specification provides a standard method of identifying files.

Main Apple Event Manager and Appearance Manager Constants, Data Types, and Functions Relevant to Required Apple Events and Appearance Manager Apple Events

Constants

High Level Event

kHighLevelEvent  = 23

Event Classes for Required Apple Event and Appearance Manager Apple Event

kCoreEventClass        = FOUR_CHAR_CODE('aevt')  // Event class - required Apple events.
KAppearanceEventClass  = FOUR_CHAR_CODE('appr')  // Event Class - Appearance Manager Apple
                                                 // events.

Event IDs for Required Apple Events

kAEOpenApplication    = FOUR_CHAR_CODE('oapp')  // Event ID for Open Application event.
kAEReopenApplication  = FOUR_CHAR_CODE('rapp')  // Event ID for Re-open Application Event.
kAEOpenDocuments      = FOUR_CHAR_CODE('odoc')  // Event ID for Open Documents event.
kAEPrintDocuments     = FOUR_CHAR_CODE('pdoc')  // Event ID for Print Documents event.
kAEQuitApplication    = FOUR_CHAR_CODE('quit')  // Event ID for Quit Application event.

Event IDs for Appearance Manager Apple Events

kAESystemFontChanged       = FOUR_CHAR_CODE('sysf')  // System font changed.
KAESmallSystemFontChanged  = FOUR_CHAR_CODE('ssfn')  // Small system font changed.
kAEViewsFontChanged        = FOUR_CHAR_CODE('vfnt')  // Views font changed.

Event ID for Show Preferences Apple Event (Mac OS X)

kAEShowPreferences        = FOUR_CHAR_CODE('pref')  Preferences menu item chosen

Keywords for Apple Event Attributes

keyMissedKeywordAttr  = FOUR_CHAR_CODE('miss')  // First required parameter remaining in
                                                // an Apple event.

Keywords for Apple Event Parameters

keyDirectObject       = FOUR_CHAR_CODE('----')  // Direct parameter

Apple Event Descriptor Types

typeAEList    = FOUR_CHAR_CODE('list') // List of descriptor structures.
typeWildCard  = FOUR_CHAR_CODE('****')  // Matches any type.
typeFSS       = FOUR_CHAR_CODE('fss ')  // File system specification.

Result Codes

errAEDescNotFound  = -1701   // Descriptor structure was not found.
errAEParamMissed   = -1715   // Handler cannot understand a parameter
                             // the client considers is required.

Theme Font ID Constants

KThemeSystemFont                 = 0
KThemeSmallSystemFont            = 1
KThemeSmallEmphasizedSystemFont  = 2
KThemeViewsFont                  = 3

Data Types

typedef FourCharCode  AEEventClass;  // Event class for a high level event.
typedef FourCharCode  AEEventID;     // Event ID for a high level event.
typedef FourCharCode  AEKeyword;     // Keyword for a descriptor structure.
typedef ResType       DescType;      // Descriptor type.
typedef AEDesc        AEDescList;    // List of descriptor structures.
typedef AEDescList    AERecord;      // List af keyword-specified descriptor structures.
typedef AERecord      AppleEvent;    // List of attributes and parameters for Apple event.

Descriptor Structure

struct AEDesc
{
   DescType      descriptorType;  // Type of data being passed.
   AEDataStorage dataHandle;      // Handle to data being passed.
};
typedef struct AEDesc AEDesc;

Keyword-Specified Descriptor Structure

struct AEKeyDesc { AEKeyword deskKey; // Keyword. AEDesc descContent; // Descriptor structure. }; typedef struct AEKeyDesc AEKeyDesc;

Functions

Creating and Managing Apple Event Dispatch Tables

OSErr  AEInstallEventHandler(AEEventClass theAEEventClass,AEEventID theAEEventID,
       AEEventHandlerUPP handler,long handlerRefcon,Boolean isSysHandler);

Dispatching Apple Events

OSErr  AEProcessAppleEvent(const EventRecord *theEventRecord);

Getting Data or Descriptor Structures Out of Apple Event Parameters and Attributes

OSErr  AEGetParamDesc(const AppleEvent *theAppleEvent,AEKeyword theAEKeyword,
       DescType desiredType,AEDesc *result);
OSErr  AEGetAttributePtr(const AppleEvent *theAppleEvent,AEKeyword theAEKeyword,
       DescType desiredType,DescType *typeCode,Ptr dataPtr,Size maximumSize,
       Size *actualSize);

Counting the Items in Descriptor Lists

OSErr  AECountItems(const AEDescList *theAEDescList,long *theCount);

Getting Items From Descriptor Lists

OSErr  AEGetNthPtr(const AEDescList *theAEDescList,long index,DescType desiredType,
       AEKeyword *theAEKeyword,DescType *typeCode,Ptr dataPtr,Size maximumSize,
       Size *actualSize);

Deallocating Memory for Descriptor Structures

OSErr  AEDisposeDesc(AEDesc *theAEDesc);

 
AAPL
$97.67
Apple Inc.
+0.64
MSFT
$44.50
Microsoft Corpora
+0.10
GOOG
$589.02
Google Inc.
-4.33

MacTech Search:
Community Search:

Software Updates via MacUpdate

Vienna 3.0.0 RC 2 :be5265e: - RSS and At...
Vienna is a freeware and Open-Source RSS/Atom newsreader with article storage and management via a SQLite database, written in Objective-C and Cocoa, for the OS X operating system. It provides... Read more
VLC Media Player 2.1.5 - Popular multime...
VLC Media Player is a highly portable multimedia player for various audio and video formats (MPEG-1, MPEG-2, MPEG-4, DivX, MP3, OGG, ...) as well as DVDs, VCDs, and various streaming protocols. It... Read more
Default Folder X 4.6.7 - Enhances Open a...
Default Folder X attaches a toolbar to the right side of the Open and Save dialogs in any OS X-native application. The toolbar gives you fast access to various folders and commands. You just click... Read more
TinkerTool 5.3 - Expanded preference set...
TinkerTool is an application that gives you access to additional preference settings Apple has built into Mac OS X. This allows to activate hidden features in the operating system and in some of the... Read more
Audio Hijack Pro 2.11.0 - Record and enh...
Audio Hijack Pro drastically changes the way you use audio on your computer, giving you the freedom to listen to audio when you want and how you want. Record and enhance any audio with Audio Hijack... Read more
Intermission 1.1.1 - Pause and rewind li...
Intermission allows you to pause and rewind live audio from any application on your Mac. Intermission will buffer up to 3 hours of audio, allowing users to skip through any assortment of audio... Read more
Autopano Giga 3.6 - Stitch multiple imag...
Autopano Giga allows you to stitch 2, 20, or 2,000 images. Version 3.0 integrates impressive new features that will definitely make you adopt Autopano Pro or Autopano Giga: Choose between 9... Read more
Airfoil 4.8.7 - Send audio from any app...
Airfoil allows you to send any audio to AirPort Express units, Apple TVs, and even other Macs and PCs, all in sync! It's your audio - everywhere. With Airfoil you can take audio from any... Read more
Microsoft Remote Desktop 8.0.8 - Connect...
With Microsoft Remote Desktop, you can connect to a remote PC and your work resources from almost anywhere. Experience the power of Windows with RemoteFX in a Remote Desktop client designed to help... Read more
xACT 2.30 - Audio compression toolkit. (...
xACT stands for X Aaudio Compression Toolkit, an application that encodes and decodes FLAC, SHN, Monkey’s Audio, TTA, Wavpack, and Apple Lossless files. It also can encode these formats to MP3, AAC... Read more

Latest Forum Discussions

See All

This Week at 148Apps: July 21-25, 2014
Another Week of Expert App Reviews   At 148Apps, we help you sort through the great ocean of apps to find the ones we think you’ll like and the ones you’ll need. Our top picks become Editor’s Choice, our stamp of approval for apps with that little... | Read more »
Reddme for iPhone - The Reddit Client (...
Reddme for iPhone - The Reddit Client 1.0 Device: iOS iPhone Category: News Price: $.99, Version: 1.0 (iTunes) Description: Reddme for iPhone is an iOS 7-optimized Reddit client that offers a refreshing new way to experience Reddit... | Read more »
Jacob Jones and the Bigfoot Mystery : Ep...
Jacob Jones and the Bigfoot Mystery : Episode 2 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Jacob Jones is back in Episode 2 of one of Apples 'Best of 2013' games and an App Store... | Read more »
New Trailer For Outcast Odyssey, A New K...
New Trailer For Outcast Odyssey, A New Kind of Card Battler Posted by Jennifer Allen on July 25th, 2014 [ permalink ] Out this Fall is a new kind of card battle game: Outcast Odyssey. | Read more »
Hay Day – Tip, Tricks, Strategies, and C...
Recently got into Supercell’s other huge hit, Hay Day and could do with some advice on what to do? We’ve got you covered with some helpful trips and tricks to bear in mind! Ticking Along One of the key things to keep in mind while building up that... | Read more »
Monster Head Review
Monster Head Review By Nadia Oxford on July 25th, 2014 Our Rating: :: FEEDING TIMEUniversal App - Designed for iPhone and iPad Racking up a high score with Monster Head is trickier than it first appears. The appeal wears out fairly... | Read more »
Garfield: Survival of the Fattest Coming...
Garfield: Survival of the Fattest Coming to iOS this Fall Posted by Jennifer Allen on July 25th, 2014 [ permalink ] Who loves lasagna? Me. Also everyone’s favorite grumpy fat cat, Garfield. | Read more »
Happy Flock Review
Happy Flock Review By Andrew Fisher on July 25th, 2014 Our Rating: :: HERD IT ALL BEFOREUniversal App - Designed for iPhone and iPad Underneath the gloss of Happy Flock’s visuals is a game of very little substance. It’s cute, but... | Read more »
Square Register Updates Adds Offline Pay...
Square Register Updates Adds Offline Payments Posted by Ellis Spice on July 25th, 2014 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Looking For Group – Hearthstone’s Curse...
For the first time since its release (which has thankfully been a much shorter window for iPad players than their PC counterparts), Blizzard’s wildly successful Hearthstone: Heroes of Warcraft CCG is sporting some brand new content: the single... | Read more »

Price Scanner via MacPrices.net

Record Mac Shipments In Q2/14 Confound Analys...
A Seeking Alpha Trefis commentary notes that Apple’s fiscal Q3 2014 results released July 22, beat market predictions on earnings, although revenues were slightly lower than anticipated. Apple’s Mac’... Read more
Intel To Launch Core M Silicon For Use In Not...
Digitimes’ Monica Chen and Joseph Tsai, report that Intel will launch 14nm-based Core M series processors specifically for use in fanless notebook/tablet 2-in-1 models in Q4 2014, with many models to... Read more
Apple’s 2014 Back to School promotion: $100 g...
 Apple’s 2014 Back to School promotion includes a free $100 App Store Gift Card with the purchase of any new Mac (Mac mini excluded), or a $50 Gift Card with the purchase of an iPad or iPhone,... Read more
iMacs on sale for $150 off MSRP, $250 off for...
Best Buy has iMacs on sale for up to $160 off MSRP for a limited time. Choose free home shipping or free instant local store pickup (if available). Prices are valid for online orders only, in-store... Read more
Mac minis on sale for $100 off MSRP, starting...
Best Buy has Mac minis on sale for $100 off MSRP. Choose free shipping or free instant local store pickup. Prices are for online orders only, in-store prices may vary: 2.5GHz Mac mini: $499.99 2.3GHz... Read more
Global Tablet Market Grows 11% in Q2/14 Notwi...
Worldwide tablet sales grew 11.0 percent year over year in the second quarter of 2014, with shipments reaching 49.3 million units according to preliminary data from the International Data Corporation... Read more
New iPhone 6 Models to Have Staggered Release...
Digitimes’ Cage Chao and Steve Shen report that according to unnamed sources in Apple’s upstream iPhone supply chain, the new 5.5-inch iPhone will be released several months later than the new 4.7-... Read more
New iOS App Helps People Feel Good About thei...
Mobile shoppers looking for big savings at their favorite stores can turn to the Goodshop app, a new iOS app with the latest coupons and deals at more than 5,000 online stores. In addition to being a... Read more
Save on 5th generation refurbished iPod touch...
The Apple Store has Apple Certified Refurbished 5th generation iPod touches available starting at $149. Apple’s one-year warranty is included with each model, and shipping is free. Many, but not all... Read more
What Should Apple’s Next MacBook Priority Be;...
Stabley Times’ Phil Moore says that after expanding its iMac lineup with a new low end model, Apple’s next Mac hardware decision will be how it wants to approach expanding its MacBook lineup as well... Read more

Jobs Board

*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
WW Sales Program Manager, *Apple* Online St...
**Job Summary** Imagine what you could do here. At Apple , great ideas have a way of becoming great products, services, and customer experiences very quickly. Bring Read more
Lead Software Engineer, *Apple* Online Stor...
**Job Summary** Imagine what you could do here. At Apple , great ideas have a way of becoming great products, services, and customer experiences very quickly. Bring Read more
Manager, *Apple* Fullfillment Operation (AF...
…cross-functional teams to drive the highest level of program management quality for Apple . You will help plan launch strategy and demand generation programs with Read more
Project Manager / Business Analyst, WW *Appl...
…a senior project manager / business analyst to work within our Worldwide Apple Fulfillment Operations and the Business Process Re-engineering team. This role will work Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.