Gaia/System/Updates/Apps: Difference between revisions
Jump to navigation
Jump to search
(4 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
= App Updates = | = App Updates: Background = | ||
== | == App Types == | ||
There are three types of installed apps, each with their own update policies. | |||
* Core apps | * Core apps | ||
* Pre-installed | ** Are packaged, certified, pre-installed, non-removable. | ||
** Are only updated within Full System or atomic Gecko+Gaia updates. | |||
* Pre-installed third-party apps | |||
** Are updated subject to same update policies as User-installed apps (see below) | |||
* User-installed apps | * User-installed apps | ||
** Are packaged or hosted. | |||
** Update policies are described in rest of this page. | |||
== | == Users == | ||
For initial FxOS versions, should assume the following about users: | |||
* | * '''Data is slow, expensive, and intentionally constrained.''' | ||
* | * Very limited access to WiFi | ||
* | * Rarely in Roaming mode | ||
* | * Turn data connections off by default, and only activate for brief transactions. | ||
** | * Use multiple SIM cards. | ||
* Users think Installed vs Un-installed. Not Free vs Paid. (per Jonas) | |||
* Packaged apps can specify version notes within their mini-manifests | |||
* | |||
== | == Technical parameters == | ||
* | * Can poll Marketplace for update. | ||
* Will evaluate pushing updates to users in future versions. | |||
* Marketplace will know current version off app. | |||
* Updates can download and install while current version is open. | |||
* There is relatively low risk of new app versions breaking old. | |||
* There is a higher risk of Gecko changes breaking apps. | |||
* Content servers will know version of the installed app that they are sending content to. | |||
* Good apps will provide backwards compatibility | |||
* App revocation will be handled by the store. It will sign a special update with a "revoked" app type (vs. "certified" or "privileged"). | |||
* Manifest enables devs to specify specific features required by apps. | |||
Hosted apps | |||
* We cannot separate "Poll for update", from "Start update". | |||
* We can specify when poll happens, however. For v1 we can Add additional checks. But we cannot remove the "Poll on Open" behavior). | |||
* Have no way of knowing file size (contents are remotely hosted). | |||
* Current version can be used while new version downloads in background. | |||
== | == Developers == | ||
* | * Web devs are used to users always being on latest version. Simplifies development. | ||
* | * Security also benefits when as many users as possible are up-to-date. | ||
= Questions = | |||
* How are 3rd party apps tested with different versions of b2g releases? | |||
* What needs to be exposed regarding privacy? e.g. What data are sent for updates? | |||
* What happens when the manifest version changes? Does this trigger any sort of notification for the user? | |||
= User Experience = | |||
== | == Design principles == | ||
* Low-friction. Minimize user interruptions, connection speed impacts, etc. | |||
* Free. Avoid user charges. | |||
* Safe. Minimize changes and consequences of failed updates. | |||
* Patient. Support backwards compatibility for users who cannot update. | |||
* Friendly. Avoid presenting users with excess technical details. | |||
== Design Specs == | |||
For the latest UX specifications, please visit | |||
https://mozilla.box.com/system | |||
== | == Update Types == | ||
* | * Manual: Individual | ||
* Manual: Batch | |||
* Silent | |||
* | |||
* |
Latest revision as of 19:04, 30 May 2013
App Updates: Background
App Types
There are three types of installed apps, each with their own update policies.
- Core apps
- Are packaged, certified, pre-installed, non-removable.
- Are only updated within Full System or atomic Gecko+Gaia updates.
- Pre-installed third-party apps
- Are updated subject to same update policies as User-installed apps (see below)
- User-installed apps
- Are packaged or hosted.
- Update policies are described in rest of this page.
Users
For initial FxOS versions, should assume the following about users:
- Data is slow, expensive, and intentionally constrained.
- Very limited access to WiFi
- Rarely in Roaming mode
- Turn data connections off by default, and only activate for brief transactions.
- Use multiple SIM cards.
- Users think Installed vs Un-installed. Not Free vs Paid. (per Jonas)
- Packaged apps can specify version notes within their mini-manifests
Technical parameters
- Can poll Marketplace for update.
- Will evaluate pushing updates to users in future versions.
- Marketplace will know current version off app.
- Updates can download and install while current version is open.
- There is relatively low risk of new app versions breaking old.
- There is a higher risk of Gecko changes breaking apps.
- Content servers will know version of the installed app that they are sending content to.
- Good apps will provide backwards compatibility
- App revocation will be handled by the store. It will sign a special update with a "revoked" app type (vs. "certified" or "privileged").
- Manifest enables devs to specify specific features required by apps.
Hosted apps
- We cannot separate "Poll for update", from "Start update".
- We can specify when poll happens, however. For v1 we can Add additional checks. But we cannot remove the "Poll on Open" behavior).
- Have no way of knowing file size (contents are remotely hosted).
- Current version can be used while new version downloads in background.
Developers
- Web devs are used to users always being on latest version. Simplifies development.
- Security also benefits when as many users as possible are up-to-date.
Questions
- How are 3rd party apps tested with different versions of b2g releases?
- What needs to be exposed regarding privacy? e.g. What data are sent for updates?
- What happens when the manifest version changes? Does this trigger any sort of notification for the user?
User Experience
Design principles
- Low-friction. Minimize user interruptions, connection speed impacts, etc.
- Free. Avoid user charges.
- Safe. Minimize changes and consequences of failed updates.
- Patient. Support backwards compatibility for users who cannot update.
- Friendly. Avoid presenting users with excess technical details.
Design Specs
For the latest UX specifications, please visit https://mozilla.box.com/system
Update Types
- Manual: Individual
- Manual: Batch
- Silent