Applist is a library to fetch app information https://github.com/rpetrich/AppList
To get an array of applications and their display identifiers do the following
ALApplicationList *apps = [ALApplicationList sharedApplicationList];
NSArray *displayIdentifiers = [[apps.applications allKeys] sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
return [[apps.applications objectForKey:obj1] caseInsensitiveCompare:[apps.applications objectForKey:obj2]];}];
[displayIdentifiers retain];
To get the display identifier and icon for a specific app at index {X} do the following:
NSString *displayIdentifier = [displayIdentifiers objectAtIndex:{X}];
UIImage *icon = [apps iconOfSize:{size here - see enums} forDisplayIdentifier:displayIdentifier];
enum {
ALApplicationIconSizeSmall = 29,
ALApplicationIconSizeLarge = 59
};