1. A method for indexing applications accessible through a user device, comprising: crawling through a plurality of data sources to detect applications accessible through a user device; for each detected application, generating metadata characterizing the application; analyzing the generated metadata to classify the application to at least one category; and updating an application index to include at least the indexed application and the respective classified category.