Note: It might be useful to store all assets which will be available offline in a folder called "assets" and write a script to walk the directory and produce the cache manifest (always with the current datestamp) including those assets. This will save you a lot of headache.

Cache Manifest

call this main.appcache. DO NOT call it cache.manifest (works in Chrome, not on iPhone)

CACHE MANIFEST
# That must be the very first line
# comments must be on their own line
# version 0.0.1
# bump the version any time you edit ANY of the CACHE assets
# otherwise they won't get updated when the app comes back online
CACHE:
# list ALL assets which should be downloaded for offline use
# no pattern matching is supported
/offline-assets/offline.html
/offline-assets/libs.js
/offline-assets/app.js
/offline-assets/logo.png
/offline-assets/style.css
FALLBACK:
# give the offline equivalent of a 404
# the first item is always treated as a prefix pattern
# the second is always treated as the resource to provide
/pages/ /offline-assets/offline.html
/ /offline.html
NETWORK:
# list any assets which are allowed to be fetched
# from an online source even after the caching is complete
# can use * or prefix pattern matching
/online-assets/
http://www.google.com/api/search

Fun fact: You don't have to use \r\n in the Cache Manifest. \r and \n are also okay.

Resolutions

iPad

Native: 1024 x 768

Browser Mode:

Landscape: 769 x 518

Portrait: 768 x 946

HTML5 App Mode:

Landscape: 1024 x 748

Portrait: 768 x 1004

iPhone & iPod

Native: 480 x 320 @ 163 ppi (actually 960 x 640 @ 326 ppi)

Browser Mode:

L: 320 x 356

P: 320 x 139

HTML5 App Mode:

L: 320 x 460

P: 480 x 300

With Browser Debugger:

L: 320 x 306

P: 320 x 106

HTC Thunderbolt (4.3" Android 2.2)

Browser Mode (No App Mode):

L: 369 x 546

P: 615 x 300

Notes

Heachache Alert: Cannot Open MyApp MyApp could not be opened because it could not connect to the server.

With one mistake of the main.appcache you may end up in an error loop that you can't get out of without clearing the cache and renaming the app.