Dev:SBApplication

SBApplication is a class representing the application screen on the. SBApplication is a subclass of SBDisplay. See SBDisplay for more info.

Retrieving an instance of SBApplication
To retrieve a known instance, you must go through SBApplicationController. For example, if the display ID of the application is known, you can use:

Get all active applications
Getting active applications traditionally need to be done via the static function at 0xeadc, or evaluate through the result of and check if the pid is valid. Fortunately, starting from 3.0, the SpringBoard class provides a method which directly calls 0xeadc. Therefore, you can get the array of active applications from this.

Starting from 3.2 one can also use to get the front most application. If you know the app you can check if [[app process] isFrontmost].

Launching an SBApplication
To launch an SBApplication you can use SBUIController:

To launch an app without the animation simply apply the correct activation setting before calling that method.

Notes:
 * This method will not respect parental control. However, you can look up the list of restricted apps using.
 * This method is not available on iOS 9, use  or   instead.

Application Info.plist
SpringBoard will recognize the following Info.plist keys:


 * UISystemProvisioning
 * SBDemoRole
 * SBIsRevealable
 * SBUsesNetwork
 * UIJetsamPriority
 * SBIconClass
 * SBSpotlightIcons
 * UIRoles
 * SBMachServices
 * disabled
 * CFBundleIconFile
 * SPSearchDomainLaunchInfo
 * SBAppTags
 * Other UIKit keys described in http://developer.apple.com/IPhone/library/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html

Starting from 3.2 these documented keys are also recognized:


 * ProductType, UIDeviceFamily, DeviceFamily
 * UIAppFonts
 * UIFileSharingEnabled
 * UISupportedInterfaceOrientations

As of iOS 8, the following undocumented key is also recognized:


 * _UILaunchAlwaysFullScreen

Now Playing App Info
Getting the App info of the nowPlayingApp is now possible, thanks to SBMediaController's property (int _nowPlayingProcessPID) To do so, you must use SBMediaPlayer in combination with SBApplication itself:

Now, you can use many of SBApplication's useful methods (like -(id)displayName and -(id)bundleIdentifier) to retrieve app Info of the nowPlaying app.