Gaia/System/Updates/Apps: Difference between revisions

From MozillaWiki
< Gaia‎ | System‎ | Updates
Jump to navigation Jump to search
No edit summary
 
(2 intermediate revisions by one other user not shown)
Line 23: Line 23:
* Turn data connections off by default, and only activate for brief transactions.  
* Turn data connections off by default, and only activate for brief transactions.  
* Use multiple SIM cards.
* 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 ==
== Technical parameters ==
Line 31: Line 34:
* Updates can download and install while current version is open.
* Updates can download and install while current version is open.
* There is relatively low risk of new app versions breaking old.
* 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 ==
== Developers ==
Line 37: Line 53:
* Security also benefits when as many users as possible are up-to-date.
* 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 =
= User Experience =
Line 48: Line 70:
* Friendly. Avoid presenting users with excess technical details.
* Friendly. Avoid presenting users with excess technical details.


== Update Types
== Design Specs ==
For the latest UX specifications, please visit
https://mozilla.box.com/system
 
== Update Types ==


* Manual: Individual
* Manual: Individual
* Manual: Batch
* Manual: Batch
* Silent
* 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