forked from coremob/coremob-ucr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
162 lines (107 loc) · 8.73 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<!DOCTYPE html>
<html xmlns='http://www.w3.org/1999/xhtml' lang='en'>
<head>
<meta charset='utf-8'/>
<title>Coremob Use Cases and Requirements</title>
<script class='remove'>
var respecConfig = {
specStatus: "CG-DRAFT"
, shortName: "coremob-ucr"
, editors: [
{ name: "Lars Erik Bolstad"
, company: "Opera Software"
, companyURL: "http://opera.com/" }
, { name: "Tobie Langel"
, company: "Facebook"
, companyURL: "http://facebook.com/" }
, { name: "Jennifer Leong"
, company: "AT&T"
, companyURL: "http://www.att.com/" }
, { name: "Giridhar Mandyam"
, company: "Qualcomm Innovation Center, Inc"
, companyURL: "http://www.qualcomm.com/about/businesses/quicinc" }
]
, edDraftURI: "http://coremob.github.com/coremob-ucr/index.html"
, copyrightStart: 2012
, noIDLIn: true
, wg: "Core Mobile Web Platform Community Group"
, wgURI: "http://www.w3.org/community/coremob/"
, wgPublicList: "public-coremob"
, wgPatentURI: "XXX"
, isRecTrack: false
, isNoTrack: true
, format: 'markdown'
};
</script>
<script src='./respec-w3c-common-markdown-alpha.js' class='remove' async></script>
</head>
<body>
<section id='sotd'>
Comments on this document are welcomed and should be made on the [[email protected] mailing list](http://lists.w3.org/Archives/Public/public-coremob/). The source code is available on [GitHub](https://github.com/coremob/coremob-ucr).
</section>
<section id='abstract'>
This document describes basic use cases and requirements for mobile Web application development.
</section>
Introduction
------------
<p class=issue>It has not been decided yet whether the best way to describe our use cases is to detail the kind of application we wish could be written on the mobile Web platform today, or whether writing scenarios is a better solution.</p>
Example applications
--------------------
### A Camera app
PhotoWebApp is a web application that lets an end user capture video and pictures from a user-selected local camera. Upon navigating to the PhotoWebApp website, the user is prompted that the site would like to access the local camera with a dialog box. If the user allows access, then the useri s prompted to select a camera to be used by the app if multiple cameras are currently attached to the host device.
The user can then take a picture or capture video using the UI provided by the application. After the picture is taken or video recorded, the user is prompted to store the media in the local file system.
### A Newspaper app
The Financial Times is a print and online newspaper that offers both free and paid content. End users are allowed to administer their subscription information within the context of the app.
The app displays both content in the form of pictures, hyperlinks, text of various fonts/formats/sizes. Moreover, articles are no always paginated
according to the device display characteristics, and the end user must be able to quickly navigate through a page independent of the haptic interface (touch, keypad, etc.).
### A Magazine app
JS Developers Gone Wild is a magazine that comes in both print and online versions. In addition to articles, it contains many rich multimedia assets - among them high-quality images, media clips, and interactive games. It is similar to a newspaper app in certain ways, but must also provide a "page turning" experience when run on touch-enabled tablet devices.
### An Isometric game
Q'bert versus Zaxxon is an online game with isometric graphics projections. The main game character, Q'bert, flies a plane through a fortress while avoiding making contact with snakes and gremlins that get in his path. This game is played in landscape mode.
### A 2D Game
Fantastic Rafaela is a platform game, the goal of which is to save an imprisoned prince. This is done by navigating a character, Rafaela, across various levels from left to right. Each levels consist of a series of obstacles and enemies that the player has to avoid (by jumping over, shooting, etc). The game is played in landscape mode.
### A turn-by-turn navigation app
FindBestRoute is a web app that can find the best route to take between any two input locations (default is the current location of the user device). The directions are presented in a continuous manner to the user, with an updated map displaying information about the current user location along with distance and directions to the destination. The application keeps the user up-to-date about the best route to the destination, and should provide the end user current information about traffic conditions, weather, and any other factors that could affect travel to the destination. In addition to visual display, the app can also update the user through the use of synthesized voice.
Scenarios
---------
### Update a profile picture
John wants to update the profile picture of the instant messaging service he is using. The service offers the option to take a picture using the device's camera and to reformat it to the right dimensions. John does so and immediately uploads the result to use as his new profile picture.
### Take pictures in a remote area without network coverage
Jenna is hiking in a remote area without network coverage. She takes high quality pictures using a web application. She decides to apply post-process some of the pictures she took by applying ready-made filters. The pictures are stored locally. When she returns to an area with better network coverage, her pictures are updated to a remote server. While the upload is going on in the background she can continue taking pictures or can browse her previous shots to select the ones she wants to share with her friends.
Requirements
------------
The following requirements are derived from the above use cases and scenarios.
### Taking pictures
#### Accessing the device's camera
It MUST be possible to take pictures using the device's camera. This must be done in such a way that the user's security and privacy is respected.
#### Accessing pixel data
It MUST be possible to access picture's pixel data to programmatically modify the picture (by cropping it, applying filters, etc.).
Conversely, it MUST be possible to transform back that pixel data into a format which can be stored or uploaded to a remote server.
#### Storing pictures locally
It MUST be possible to store pictures locally and retrieve them without requiring further permission from the user.
#### Uploading pictures
It MUST be possible to asynchronously upload pictures to remote server on different origins. Ideally, uploads should continue even if the user navigates to a different page.
#### Out of Scope
Direct access to multimedia streams are out of the scope of this document.
### Locking the orientation of the device
#### Locking orientation
A web application might be designed to be used strictly in portrait or landscape mode. It MUST be possible to signal this preference to the User Agent.
#### Out of Scope
Programatic locking and/or unlocking of the device's orientation are out of scope.
### Running an application in full-screen mode
It MUST be possible for an application to signal to the User Agent that it wants to operate fullscreen and not inside of the browser's chrome.
### Geo-localization
#### Finding the device's current position
It MUST be possible to obtain the device's current geographic coordinates provided the user consents to sharing those.
#### Responding to position change
It MUST be possible to register to receive updates when the position of the device changes.
### Building 2D and isometric games
#### Sufficient frame rate.
It MUST be able to run a canvas tag at 30FPS in fullscreen mode.
#### Audio playback
Multiple sound files MUST be able to play simultaneously with minimal latency.
#### Data sets
It MUST be possible to store large, structured persistent data sets.
This data MUST be available asynchronously.
</body>
</html>