Client-side web apps can operate entirely offline and store data only on the client. They can also be configured for app-like operation by including a Web App Manifest [1], created specifically for this purpose. Until the Web App Manifest gets widespread platform support (which may not ever happen since both Apple and Google are heavily incentivized to keep app developers locked-in to their ecosystems), you can use manifoldJS [2] to polyfill for platforms that do not support it using Cordova.
[1] http://www.w3.org/TR/appmanifest/
EDIT: So apparently Chrome for Android already supports the Web App Manifest [3], but to distribute for the Play Store you still need a .apk package, which is probably why manifoldJS still polyfills it. In contrast, Firefox OS allows submitting apps to the Market from your web app's URL directly, as long as it has a manifest.
[3] https://developers.google.com/web/updates/2014/11/Support-fo...