Confirmed users
745
edits
No edit summary |
|||
Line 37: | Line 37: | ||
== KPIs for performance == | == KPIs for performance == | ||
Need to clarify these KPIs against https://developer.mozilla.org/en-US/Apps/Build/Performance/Firefox_OS_app_responsiveness_guidelines. | |||
* TMP initial launch: <3000ms baseline, <2000ms target | * TMP initial launch: <3000ms baseline, <2000ms target | ||
* TMP load (wifi): <8000ms baseline, <5000ms target | * TMP load (wifi): <8000ms baseline, <5000ms target | ||
Line 47: | Line 48: | ||
The ultimate goal is a real packaged app, re-instating billing, logins, and useful implementation of GA; because of the timeline, these will need to be all in future releases, as necessary. | The ultimate goal is a real packaged app, re-instating billing, logins, and useful implementation of GA; because of the timeline, these will need to be all in future releases, as necessary. | ||
Once the FxOS landing date changed and the hosted app testing showed that it would not perform against the quantity of apps anticipated for Tarako release, the approach was changed to the preferenced packaged app (a derivative of Fireplace) to be delivered in a v0 and v1 iteration (requiring two separate uplifts). | |||
== Technical design details == | == Technical design details == | ||
The packaged marketplace app for use with Tarako will consist of pages and assets (JavaScript, CSS, and images) needed for the interface as well as initial data for the app in JSON format. | |||
=== Interfaces === | === Interfaces === | ||
0. '''Global:''' Searchbox at the top of the screen, below that is a navigation bar that shows icons and labels for Home, Games, Tools, and Lifestyle (the latter three are Tarako-specific aggregations of Marketplace categories).<br> | 0. '''Global:''' Searchbox at the top of the screen, below that is a navigation bar that shows icons and labels for Home, Games, Tools, and Lifestyle (the latter three are Tarako-specific aggregations of Marketplace categories).<br/> | ||
1. '''Home page:''' shows a random selection of 6 apps chosen from those editorially designated for the homepage collection, and four buttons for Help, Feedback, Privacy Policy, and and Terms of use.<br> | 1. '''Home page:''' shows a random selection of 6 apps chosen from those editorially designated for the homepage collection, and four buttons for Help, Feedback, Privacy Policy, and and Terms of use at the bottom of the page.<br/> | ||
2. '''Category list view:''' shows all apps in that category.<br> | 2. '''Category list view:''' shows all apps in that category, in pages of 10 at a time.<br/> | ||
3. '''Search results:''' shows all apps meeting the search criteria, as well as a header below the global elements that shows a result count on one side of the screen and a toggle control on the other that switches between compact and expanded views of each app.<br> | 3. '''Search results:''' shows all apps meeting the search criteria, as well as a header below the global elements that shows a result count on one side of the screen and a toggle control on the other that switches between compact and expanded views of each app.<br/> | ||
4. '''Compact / Expanded app view:''' shows the basic information for an app; the expanded view reveals a thumbnail of a screenshot.<br> | 4. '''Compact / Expanded app view:''' shows the basic information for an app; the expanded view reveals a thumbnail of a screenshot.<br/> | ||
5. '''Detail view:''' shows more information for the app, including a description and a thumbnail of a screenshot that the user can | 5. '''Detail view:''' shows more information for the app, including a description and a thumbnail of a screenshot that the user can click on to load a full screenshot.<br/> | ||
=== Content filtering === | === Content filtering === | ||
6. '''Filtering apps for device:''' short-term: | 6. '''Filtering apps for device:''' short-term: tagging apps to be served to Tarako devices (v0); long-term: integrated dev submission flow, review verification, and feature detection API used to filter apps for device (v1).<br/> | ||
=== | === Content caching (and offline implications) === | ||
7. '''Local caching of marketplace data:''' enables fast startup of the application while data is updated asynchronously in the background (when online). When offline, the application will notify the user of the need to be online to use the application.<br/> | |||
8. '''Cache contents:''' for bootstrapping startup, the cached data will consist of: text data for the application, icon, and 1-3 screenshot thumbnails for each app. This will be stored for the 30 apps that may appear on the homepage as well as each 10 on the first page of each of the 3 categories (this enables bootstrapping of initial pages (except search) and anticipated next-click detail pages). | |||
=== Home page freshness === | === Home page freshness === | ||
9. The homepage experience will be very simple: there will be a list of 6 editorially-chosen apps. These apps will be a random subset of a "Tarako Featured" collection maintained by the curation team. Target size of collection: 30 apps. We'll store the full contents of this collection locally, updating its content as a connection is available. To maintain the appearance of editorial freshness, the selection of apps displayed on the homepage will be updated each day, but will remain static throughout that day. The randomness will be weighted based on popularity and possibly other factors. Algorithm TBD. | |||
=== | === INSTALLS_ALLOWED_FROM === | ||
10. For v0 and v1, we will use an iframe approach. For the future, we should consider the approach outlined in https://bugzilla.mozilla.org/show_bug.cgi?id=965964. | |||
Line 81: | Line 79: | ||
* https://github.com/mozilla/yogafire/ | * https://github.com/mozilla/yogafire/ | ||
== | == Summary of functionality for v0 == | ||
a. no: | |||
1. no offline functionality | |||
2. no login | |||
3. no review/rating submissions | |||
4. no reviews | |||
5. no prepopulated search | |||
6. no payments | |||
b. JSON data for homepage (all 30, not just 6 shown) | |||
1. text data | |||
2. icon | |||
3. top 3 screenshot thumbnails (maximum) | |||
c. JSON data for first page of categories (10 each) | |||
1. text data | |||
2. icon | |||
3. top 3 screenshot thumbnails (maximum) | |||
d. data is included as JSON in the package | |||
1. apps are identified back-end and tagged (by Wil) | |||
2. apps are filtered by tags on search endpoint | |||
e. all assets not loaded into the package will be lazy-loaded (when the user is online); none of that data will be cached/saved. | |||
f. all assets loaded into the package only get updated with a new package release | |||
g. online cached to appserver according to existing Fireplace logic -- updated based on ttl (1 week) and size (4mb limit) | |||
== Summary of functionality for v1 == | |||
Building upon v0 to deliver improved performance and localizations. | |||
Changes to v0: | |||
d.1. apps are identified back-end without using tags | |||
Additions: | |||
d.3. deveopers are able to specify that their app is Tarako-ready | |||
d.4. reviewers are able to filter (and override) apps by "Tarako-ready" | |||
d.5. curators are able to filter apps by "Tarako-ready" and create the "featured" collection used to populate the homepage | |||
h. package includes localizations for 4 languages + English | |||
i. JSON data is cached in localStorage after the initial (cold) load | |||
j. include blocking notification that the user must be online to use the marketplace | |||
k. include notification that the (cached) data is updating when the user is online | |||
= Tentative release schedule (draft) = | = Tentative release schedule (draft) = | ||
* v0 | * v0: April 30, 2014 | ||
* | * v1: May 13, 2014 | ||
* | * v1.1: July 2014 -- revisions based on device and user testing in-market (TBD). | ||
* | * v1.5: TBD 2014 -- add login, user rating and review submissions, list of my installed apps. | ||