Creating native iOS/Android apps from HTML5

user2330237 picture user2330237 · Apr 29, 2013 · Viewed 40.9k times · Source

Is there a tool/approach to automatically generate an app on an iOS or Android device from HTML5 or jQuery Mobile code so that the app loads/runs entirely on the mobile device itself, without requiring web access, and without the corresponding delay in load time (ie not a webapp)?

I have looked into a whole range of tools for this (HTML5, jQuery Mobile, trigger.io, phonegap, Appcelerator, others) and read lots of documentation and stackoverflow and other forum posts. However, I haven't yet been able to find the answer to this very basic question.

Many of the tools out there (eg trigger.io) boast that they are creating 'native' apps. However, when I built a sample iOS app to try to answer the question above for myself, the app will only run properly when the device is connected to the web, leading me to assume that it is actually a hybrid or webapp with some native components/functionality.

I suppose that for folks who have been developing apps for some time this is supposed to be obvious, but for somebody starting from fresh it is not.

  • Are the existing tools able to essentially translate HTML5/jQuery Mobile into objective C, or just linke to web content?

  • Is it possible to create a mobile app using the easy-to-use, cross-platform tools that exist (I especially like jQuery Mobile and Codiqa as I was able to build a prototype so quickly) that runs fully locally on an iOS or Android device, or do you end up having to manually code the app (eg in Objective C) if you want it to be fully local to the device (not a webapp)?

Thanks

Answer

James Brady picture James Brady · Apr 29, 2013

Yes - Trigger.io apps bundle all your HTML/CSS/JS into a natively packaged app - there's no internet access required for it to work.

Of course, if your app will only fully function if it has access to remote services, then the experience will degrade, but you can handle that with forge.is.connection.connected.