  Software development activity has reached a high degree of complexity, guided
by the heterogeneity of the components, data sources, and tasks. The
proliferation of open-source software (OSS) repositories has stressed the need
to reuse available software artifacts efficiently. To this aim, it is necessary
to explore approaches to mine data from software repositories and leverage it
to produce helpful recommendations. We designed and implemented FOCUS as a
novel approach to provide developers with API calls and source code while they
are programming. The system works on the basis of a context-aware collaborative
filtering technique to extract API usages from OSS projects. In this work, we
show the suitability of FOCUS for Android programming by evaluating it on a
dataset of 2,600 mobile apps. The empirical evaluation results show that our
approach outperforms two state-of-the-art API recommenders, UP-Miner and PAM,
in terms of prediction accuracy. We also point out that there is no significant
relationship between the categories for apps defined in Google Play and their
API usages. Finally, we show that participants of a user study positively
perceive the API and source code recommended by FOCUS as relevant to the
current development context.
