13. A method comprising: receiving, at a server, an indication that a user selected a user recommendation control in an application running on a user device, the application including a plurality of components; traversing a view hierarchy of the application to determine a view of the application containing the selected user recommendation control; determining that the user recommended at least one of the plurality of components of the application based on the view of the application containing the selected user recommendation control; identifying a group of components of the application based on the view of the application containing the selected user recommendation control; querying the user to select at least one of the group of components applicable to the recommendation; receiving from the user, in response to the query, a selection corresponding to at least one of the group of components; generating at least one social annotation based on the selection received from the user; and serving, via a network, the at least one social annotation to a second user device in a format suitable for presentation on the second user device.
17. The method of claim 13 , further comprising serving, via the network, the at least one social annotation to the second user device in a format suitable for presentation on the second user device, the at least one social annotation identifying the at least one of the group of components of the application corresponding to the selection received from the user.