Hacker News new | past | comments | ask | show | jobs | submit login
Manifold.js – Create mobile apps from websites (msdn.com)
178 points by mpalme on May 4, 2015 | hide | past | favorite | 61 comments



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.


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


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)


Sadly it's all the more common nowadays to see everyone on board a new web standard... except for Apple.


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?


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


Disclaimer: I work on Web Apps at Microsoft

This is also a Cordova plugin: https://github.com/manifoldjs/ManifoldCordova


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


As an app developer:

- you may have an easy revenue opportunity with a downloadable app

- you may reach new customers through the app store mechanisms

- you may be able to provide a useful offline experience

As a user:

- for a daily use app, it may be more convenient to launch from the phone app mechanisms instead of a browser favorites list

In general:

- providing more routes to access your application is good. Let users use the one they like best.

Yes, I'm aware of the iOS function to save an app bookmark to the home screen. I've never met a non-developer iOS user who has used it.


Market share. Target non-website customers into customers via an app marketplace.

If it's seamless, why not?


For customer acquisition, your chances of engagement with a new user are ~50x higher on mobile web than an app.


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.


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


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.


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


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


I don't find it convenient to download dozens of apps for services I rarely use.


Cool, then don't. Why does everybody think you can only have either a mobile website or an app? You can do both.


I literally cannot conceive how anyone could possibly think this. And that's not using the word "literally" to mean "figuratively".


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.


Cordova is a chromeless browser with extra APIs.


nah, cordova is just a wrapper around WebViews with some native bindings and build tools.


> The phone runs some kind of VM which in turn runs your code.

You mean, like a browser? A hosted app would still need to be rendered by a web browser.


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!


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


mis-read that as cunts.


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


(Disclaimer: I work for John Shewchuck)

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).


Wouldn't be better to just fix Cordova for this? Like adding support for those manifests


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


Yes, exactly.


It uses Cordova somehow:

> When the platform supports hosted apps, we create them natively, when they don’t we use Cordova to pollyfill the functionality.


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


yes. you can


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


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


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


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

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


Cool! Thanks for sharing.


It looks like it's using cordova underneath (see 'community' page), so presumably there will be support for per-platform configuration of icons etc.


Disclosure: I work for Microsoft

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).


Apple are fine with Cordova apps in the store. We have a few.

They're even fine with those apps being updated without resubmitting.


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


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/


How does it work with Ruby on Rails webapps?


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.



Is it a webview?


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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: