2010-04-28 7 views
5

Je voudrais être en mesure de recueillir des informations comme la fréquence d'ouverture de certaines fenêtres, les types de données utilisateur, la fréquence les éléments du menu sont cliqués, etc. Est-ce que quelqu'un connaît une bibliothèque ou un plugin Cocoa/Obj-C tiers (open source ou commercial) qui me permettrait de rassembler cette information?Est-ce que quelqu'un sait d'une bibliothèque Cocoa/Obj-C qui peut être utilisée pour rassembler les données d'utilisation d'application?

Répondre

1

J'ai utilisé des médias de pincement dans le passé, et ils ont fusionné avec Flurry. Bibliothèque était simple à utiliser et a été installé en environ 40 minutes.

+0

Cela semble être pour les applications Cocoa Touch, pas les applications Cocoa. –

+0

Hrm, c'est intéressant, je suppose qu'ils utilisent UIKit pour surveiller quelques fois ... Ceci est un autre paquet que j'ai vu, encore une fois c'est basé sur l'iPhone, mais le modifier pour travailler sur le mac serait facile. http://code.google.com/p/bkxititag –

+0

Ouais, ce sera bien si Flurry ouvre sa bibliothèque ou la rend disponible aussi pour le Mac. – adib

1

Je ne sais pas de bibliothèque pour cela, mais au moins pour être informé sur lorsque l'utilisateur passe l'application avant que vous pouvez installer un gestionnaire d'événements comme celui-ci:

EventTypeSpec eventType; 
eventType.eventClass = kEventClassApplication; 
eventType.eventKind = kEventAppFrontSwitched; 
EventHandlerUPP handlerUPP = NewEventHandlerUPP(FrontAppSwitchedDetector_callback); 
OSStatus status=InstallApplicationEventHandler(handlerUPP,1,&eventType,self,&_eventHandlerRef); 

... et lors de la réception d'un rappel vous pouvez obtenir le processus de demande en cours en cours:

pascal OSStatus FrontAppSwitchedDetector_callback(EventHandlerCallRef nextHandler,EventRef theEvent,void* userData) 
{ 
    ProcessSerialNumber newSerial; 
    GetFrontProcess(&newSerial); 
    //to something with that .... 
    return (CallNextEventHandler(nextHandler, theEvent)); 
}