WebAPI/WebActivities/LessonsLearned: Difference between revisions

Jump to navigation Jump to search
No edit summary
Line 149: Line 149:
When granting access to for example contacts to an app, you likely want that app to have access to *all* your contacts, not just the contacts from a specific other app. So you'd want to grant access to your gmail contacts, your facebook friends, your outlook address book and any "built in" contact address book.
When granting access to for example contacts to an app, you likely want that app to have access to *all* your contacts, not just the contacts from a specific other app. So you'd want to grant access to your gmail contacts, your facebook friends, your outlook address book and any "built in" contact address book.


Getting contacts from many apps at the same time can be prohibitevly expensive if you have to launch all those apps, even if they don't need to render UI. Each app runs in a separate process and starting g multiple processes takes too much CPU and memory on mobile.
Getting contacts from many apps at the same time can be prohibitively expensive if you have to launch all those apps, even if they don't need to render UI. Each app runs in a separate process and starting multiple processes takes a lot of CPU and memory on mobile.


Displaying a merged contact list from all your contacts sources will take too long if you have to get the full contact list from each source, then merge those lists, then sort them, then reformat to get just the data you want to display in HTML form.
Displaying a merged contact list from all your contacts sources will take too long if you have to get the full contact list from each source, then merge those lists, then sort them, then reformat to get just the data you want to display in HTML form.
Line 155: Line 155:
This is even more true for a photo stream where you also need to generate thumbnails.
This is even more true for a photo stream where you also need to generate thumbnails.


It needs to be possible to do some of that work ahead of time and then react to any changes in those data sources before the user launches the app. Or at the very least you need to be able to cache the result from last time you generated the contact list, and then get a list of changes since last time a list was generated. Though for something like thumbnail generation (the size of which can be consumer-application specific) ahead-of-time is likely desired.
It needs to be possible to do some of that work ahead of time and then react to any changes in those data sources before the user launches the app. Potentially it could help if the application cached the previously generated list, then ask each data source provider for changes since last time, and then update once it has received those changes. However we still want to get those updates fairly quickly to avoid the risk of the user looking at old data for too long and then having it "snap" to show the new data.


When a user grants access to a data source we need to indicate if permanent access is granted, or just a one-shot access. That indicates a somewhat different UI than we want for "share" and "pick".
When a user grants access to a data source we need to indicate if permanent access is granted, or just a one-shot access. That indicates a somewhat different UI than we want for "share" and "pick".


Similarly, the UI that comes up when an application tries to access "contacts" data sources, the user needs to be able to choose multiple applications that can provide that type of data. Normally for a WebActivity the user just picks a single application to handle the activity.
Similarly, the UI that comes up when an application tries to access "contacts" data sources, the user needs to be able to choose multiple applications that can provide that type of data. Normally for a WebActivity the user just picks a single application to handle the activity.
Confirmed users
716

edits

Navigation menu