User data is siloed in mobile apps today. Where one app may hold the user’s flight booking, another app the user’s cab reservation, with little data sharing between the two, resulting in a fragmented user experience. For instance, if a user, who has just booked a flight using one app, wishes to pre-book a cab from the airport, they would have to do so by manually re-entering the data from the flight app (e.g., location, date, time) into the cab app.
To enable the user to retake control of their in-app data, the Insider platform extracts structured user data from the presentation layer of arbitrary apps, without any modifications to the app code or binary, and makes it easy for such data to be shared across apps, when the user so desires. At its core, ordinary users create and share models for the apps they care about; the app model relates the data from the presentation layer of the app to attributes in a task template , which corresponds to the specific tasks users perform in the app (e.g., booking a flight). At runtime, Insider combines the app model with the raw stream from the presentation layer to produce structured and semantically-meaningful information. Insider then publishes this information through a set of APIs, enabling creation of novel apps that could not have been built previously. For example, we prototype the automatic population of information in a cab app after a flight booking as well as three other such novel apps that rely on cross-app data sharing. Finally, we report on a detailed evaluation of running Insider on 150 apps across 11 categories. We show that we are able to successfully extract 83% of the key attributes (e.g., UI widget corresponding to source airport) from these apps. Further, we also track app version changes during a 6 month period from Sep 2014 to Mar 2015 and find that even though 40% of apps were updated, only 6% of apps required rebuilding of the app model.