

Manifold.js – Create mobile apps from websites - mpalme
http://blogs.msdn.com/b/johnshews_blog/archive/2015/04/30/build-2015-and-manifoldjs.aspx

======
Stratoscope
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.

~~~
DaveVoyles
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.

------
neil_s
Can someone explain like I'm 5, why Manifold is better than the Cordova 'shim'
on platforms that support it?

~~~
felixrieseberg
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/](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).

~~~
jetm9
can i use just upload manifest generated by manifold and upload into adobe
phonegap build service and get ready-apps for submitting to app stores?

~~~
boyofgreen
Yes you can for the projects that use Cordova for polyfill. The other projects
can be uploaded directly with the generated maifest

------
nosuchthing
Why bother converting the website to an app in the first place..?

~~~
Geee
Web apps as 'apps' are more convenient than using them from the browser. Also,
you can submit the app on app stores.

~~~
billforsternz
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.

~~~
austinjp
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.

~~~
billforsternz
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 !

~~~
giancarlostoro
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.

~~~
joshribakoff
I don't believe thats within the capability of "hosted apps". This would be
true of only hybrid (Cordova) & native apps.

~~~
adambrenecki
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.

~~~
joshribakoff
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...](https://developer.mozilla.org/en-
US/Apps/Build/App_permissions) 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...](https://developer.mozilla.org/en-
US/Marketplace/Options/Packaged_or_hosted)

------
joshribakoff
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?

~~~
RussianCow
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?

~~~
joshribakoff
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.

~~~
sjs382
Cordova is a chromeless browser with extra APIs.

------
boyofgreen
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!

------
rememberlenny
Tried to run it and didnt get any results. I was getting warnings for missing
image cuts.

~~~
nodejsisbest
mis-read that as cunts.

------
sporkenfang
So... how is this better than Apache Cordova?

~~~
felixrieseberg
(Disclaimer: I work for John Shewchuck)

W3C is working on Web App Manifests
([http://www.w3.org/TR/appmanifest/](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).

~~~
sporkenfang
So does this eventually lead to a great merger between the ideas of "web site"
and "app"?

~~~
DaveVoyles
Yes, exactly.

------
Kiro
Can I use this to package my HTML5 game (canvas) as an app easily?

~~~
motyar
yes. you can

~~~
DaveVoyles
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.

[https://itunes.apple.com/us/app/assassins-creed-
pirates/id69...](https://itunes.apple.com/us/app/assassins-creed-
pirates/id692717444?mt=8)

------
DaveVoyles
Disclosure: I work for Microsoft

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.

[http://www.davevoyles.com/creating-a-mobile-app-with-famo-
us...](http://www.davevoyles.com/creating-a-mobile-app-with-famo-us-and-
manifoldjs/)

------
clarle
From what they're saying in the "Test" section of the Deploy documentation
([http://www.manifoldjs.com/deploy](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.

~~~
gavinpc
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.

~~~
themodelplumber
Congratulations, any way we can take a look at it?

~~~
gavinpc
Sure! Took a little while for it to post.[0] This Android variant [1] also
uses Crosswalk, which shields you from differences in the stock WebView.

[0] [https://itunes.apple.com/us/app/tenjin-technology-
sampler/id...](https://itunes.apple.com/us/app/tenjin-technology-
sampler/id983289128)

[1]
[https://play.google.com/store/apps/details?id=ie.tenjin.ati](https://play.google.com/store/apps/details?id=ie.tenjin.ati)

~~~
themodelplumber
Cool! Thanks for sharing.

------
voltagex_
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/](http://manifold-api-prod.azurewebsites.net/)

------
designium
How does it work with Ruby on Rails webapps?

~~~
anilmujagic
I don't think server side tech will make any difference. However, having the
web app implemented in SPA style will certainly improve user experience.

------
scottowens
or try: [http://getappease.com](http://getappease.com)

------
yueq
Is it a webview?

~~~
Gr8Gatsby
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.

