My big beef with website mobile apps is the lack of tabs. The ability to open a new page in a new tab - something I take for granted in both desktop and mobile browsers - is simply missing from every site-specific mobile app I've seen.
It's not just ubergeeks who use tabs either. I see my non-techie friends use them too.
Besides tabs, there are things like bookmarks and the hope (not always fulfilled) of being able to change the text size so I can read it more easily.
StackExchange is a good example. I tried their mobile app, and it was such an impoverished experience compared to viewing their mobile site in a browser. I didn't see anything their app did for me that the mobile site didn't do as well or better. I had to wonder what was the point?
Google Maps? Sure, I'll use the app. But a website app? Forget it.
It all comes down to what the developer for that app chooses to support. I'm sure there are a number of native applications, regardless of the platform, which look or perform poorly as well.
For a web app to really stand out from the web site it is coming from, it should offer some sort of benefit to the end user that could not be found on the site itself.
Copying my comment from below. Disclaimer: I work for John Shewchuck / Microsoft.
W3C is working on Web App Manifests (http://www.w3.org/TR/appmanifest/), allowing websites to declare app-like properties. ManifoldJS uses that standard for those platforms that support it, but falls back to Cordova for those who don't. Cordova is awesome, but the W3C also considers work done at Mozilla (Firefox Open Web Apps), Google (Chrome Hosted Apps) and stuff we did (Windows 8 had local web apps, Windows 10 extends over to hosted web apps).
Please revive the Web SQL Database HTML5 API defacto standard [1] or create a new proposal for a relational database API.
The NoSQL Indexed Database API is okay, but as we all have learned NoSQL isn't the right solution for everything - both SQL and NoSQL have their place - right? So please add SQL to HTML5 - especially for offline web apps.
[1] Supported on more than 90% of all mobile devices (Android, iOS). http://www.w3.org/TR/webdatabase/ (specification is no longer in active maintenance)
You don't pick one or the other. The original iPhone only supported mobile web, and now it has apps, and they've been pretty successful, so I don't think it's worth arguing against that anymore.
I wanted to jump in here and share our perspective. I'm the project owner for manifoldJS. In a nut shell, you shouldn't always convert your website into an app. Depending on who you are trying to reach, the web may be the only channel you need. My experience is that apps stores are reaching a different type of user, ones that web developers often want to reach as well. What we are trying to do is help web devs reach those users without loosing the essence of the web (real time generated, always up to date apps). Hosted apps are helping us close the gap. Again, this tool is not for every web app, and a poorly designed web app, will create a poorly designed store app every time.
I have never seen how downloading and somehow managing a separate 'app' for every destination I'm interested in visiting on the web is more convenient. I much prefer visiting those destinations using a single tool equipped with a range of mature and hyper-convenient favorites mechanisms.
I fully agree. However you must have noticed that plenty of people don't live like that. Apps for websites, or apps that closely approximate websites, are very popular. Wikipedia, Google Search, Amazon, bus and train timetables, city transit/route-planning... certain people simply seem to like an app for a specific function.
And I agree with you too. There is a place for apps. But it is annoying how every site these days seems to want you to download their app. No thanks, I am just browsing the web, I don't want to commit to a relationship yet !
Another benefit is content that is available offline, on the go. Without having to access internet, imagine your users could down all your content while on a flight? This is all assuming a website worth reading whether online or offline.
There is the HTML5 Offline APIs for that. If you have an offline-capable web app, I think it should be possible for a tool like ManifoldJS to find out all of the assets it requires and package them into the app. Whether it actually does this, I don't know.
HTML5 Offline storage can be used without an app. Part of the issue is not the storage, but how to run the app in the background to pre-fetch the content. Here's a table showing the limited access that hosted apps have. Looks like they do have access to certain device storage APIs, as well as desktop notifications, microphone, etc. https://developer.mozilla.org/en-US/Apps/Build/App_permissio... Here's another page comparing "packaged" to "hosted" apps which seems to imply they are mutually exclusive - https://developer.mozilla.org/en-US/Marketplace/Options/Pack...
It seems to me that the difference between a Cordova app & a "hosted app" would be that the Cordova app has the overhead of the "container" & ability to package some of the HTML, JS, & CSS in addition to using web views. The "hosted app" has no ability to package it's assets, but also has no overhead of the "container". The hosted app also has limited access to the device's API. I may be wrong but when they say "native" I believe this means it creates hosted apps for devices like the Firefox phone, while falling back to a hybrid app with a webview for devices that do not support "hosted apps". Can anyone confirm?
What is the "container" overhead you're talking about? If you mean the communication between the web view and the mobile APIs, then you'd have that regardless, wouldn't you?
Cordova can be compared to java. The phone runs some kind of VM which in turn runs your code. Compared to a hosted app which would be the phone running your code directly.
Hey everyone. I'm @boyofgreen from the ManifoldJS team. I'm excited to hear folks opinions both in favor of and with reservations for ManifoldJS. Our goal is to help web devs reach the app store users by creating hosted apps. In our opinion the best way to do that is to focus around the W3C standard so that devs only need to write one manifest. ManifoldJS will then handle the work of converting it (and polyfilling where necessary) for each platform.
I don't think this is the right approach for every web app, but for many it will be. It's not 1999 anymore. Many of your web apps are of a caliber that meets or exceeds that of native apps. The more I seen native apps blending into the web (and bringing their walled garden, singular platform characteristics with it) the more I'm convinced we need manifoldJS. Hosted Apps maintain the cross platform code base, runtime generated, always up-to-date features that we know and love with the web. Now lets reach those users!
W3C is working on Web App Manifests (http://www.w3.org/TR/appmanifest/), allowing websites to declare app-like properties. ManifoldJS uses that standard for those platforms that support it, but falls back to Cordova for those who don't. Cordova is awesome, but the W3C also considers work done at Mozilla (Firefox Open Web Apps), Google (Chrome Hosted Apps) and stuff we did (Windows 8 had local web apps, Windows 10 extends over to hosted web apps).
Discolsure: I work at Microsoft
Assasin's Creed Pirates (iOS, Android) is a BabylonJS (WebGL) game wrapped web app (not with Manifold) and deployed to the app stores. Great views, gorgeous visuals.
So a web app can be a lot more than just a wrapped, simple app.
From what they're saying in the "Test" section of the Deploy documentation (http://www.manifoldjs.com/deploy), it seems that it just wraps your website in a WebView?
This is great from a developer perspective, but I'm not sure if the App Store review process would allow doing something like that.
I wondered the same thing when submitting a Cordova app to Apple, which is about 2% wrapping and 98% web site. Just this morning it got through the review process with no problems, so... data point!
That said, we did take pains beforehand to make the "web site" behave like an app: responsive, (mostly) single page, swipe support, and tested across all devices.
My team just got a Cordova app through the apple review process as of yesterday. So, data point #2! I think as long as you try to adhere to Apple's app review guidelines it doesn't matter if you used Cordova or developed natively
You can always go in and edit the Cordova project that ManifoldJS returns and add your own images for icons and such. Not sure if ManifoldJS currently supports this out of the box just yet, though.
Stuffing webpages into a WebView and then selling it on the App Store has been standard fair for years (PhoneGap popularized this method 4+ years ago now).
I put together a tutorial on how to create a famo.us (awesome framework for high-perf web apps) and use ManifoldJS to deploy it to several platforms. In this case, iOS.
I can't generate a package on manifoldjs.com at the moment - is it overloaded?
Edit: Time to upgrade your Azure instance!
Failed to load resource: the server responded with a status of 500 (Internal Server Error) - http://manifold-api-prod.azurewebsites.net/
Disclaimer: I work on WebApps @ Microsoft.
On Windows the app generated is not using a WebView. Windows supports JavaScript as a native language, so there is no need for a WebView.
It's not just ubergeeks who use tabs either. I see my non-techie friends use them too.
Besides tabs, there are things like bookmarks and the hope (not always fulfilled) of being able to change the text size so I can read it more easily.
StackExchange is a good example. I tried their mobile app, and it was such an impoverished experience compared to viewing their mobile site in a browser. I didn't see anything their app did for me that the mobile site didn't do as well or better. I had to wonder what was the point?
Google Maps? Sure, I'll use the app. But a website app? Forget it.