This project is funded by the European Union through the Seventh Framework Programme (FP7/2010-2012) under grant agreement n°257800
          
- Mobile Web Applications (MobiWebApp)
Default rendering viewport: 800 to 1000px wide
Adapted viewport with<meta name='viewport' content=''>
<meta name='viewport' content='width=device-width'>Adapt style to screen size:
<link rel='stylesheet' href='default.css'>
<link rel='stylesheet' href='large_screen.css'
    media='screen and (min-width:600px)'>
	Use liquid or elastic layout, preferably in single column
<input type=tel>
<input type=email>
<input type=date>
<datalist><option value=…></datalist>
	Soon (?):
<input type='text' speech>
    touchstart, touchmove, touchend eventsCache-ControlLast-ModifiedXMLHttpRequest for partial updatesData storage:
window.localStorage
	Better, but later:
var db = window.indexedDB.open(dbname);
	Offline caching:
<html manifest='manifest_file'>
      Geolocation:
navigator.geolocation.getCurrentPosition(…)
	Accelerometer / gyroscope:
addEventListener('devicemotion', …)
      Battery:
navigator.battery.
   addEventListener('dischargingtimechange', …)
	Camera / Mike:
navigator.getUserMedia({video:true,audio:true},…)
      Adapt to network type:
if (navigator.connection.type) == "3g") { … }
	Optimize polling:
var eventsource = new EventSource();
eventsource.onmessage = function(event) { … }
	Bidirectional connection:
var socket = new WebSocket( 'ws://game.example.com:12010/updates');socket.onopen = function () { …};
Soon, P2P connection:
var connection = new PeerConnection('STUNS example.net',
                          signalingCallback);
      http://kwz.me/psThis project is funded by the European Union through the Seventh Framework Programme (FP7/2010-2012) under grant agreement n°257800
          
- Mobile Web Applications (MobiWebApp)