Mobile apps on HTML? Help me understand

I am an old-fashioned guy, and new to the mobile workld, who thinks that (generally speaking) HTML is for websites, and programming languages are for applications.

I do not understand the notion of building applications out of HTML5/CSS3/JavaScript that is becoming popular these days.

I work mostly with a CMS for my websites (Joomla, Wordpress), which involves a database (MySQL) and a server-side technologies (PHP).

Can you help me understand a little bit how this works out? Some specific questions:

1) Why do people want to turn their website into a mobile APP? What good will that do?

I got an Android phone recently. I got loads of apps on it, to a point that I don’t want many more. I definitely do not want websites disguised as APPS taking up icon space. I just launch the web browser for websites. Why would I want to have websites appear as apps?

2) What happens with database-driven websites? How can they be apps when you need the database and the server scripts for it to work?

3) HTML/CSS was designed for laying out content. Not for making software UIs. It may be possible, but not ultimate. Why is it pushed for app development then?

4) What’s wrong with Java (Android) and Obj-C (iOS)? Yes it takes a lot of time to learn probably, but can you even touch the capabilities and performance of writing actual compiled code rather than web scripts? Especially on performance limited devices such as phones.

That’s about it, I appreciate any opinion, or links to useful resources. Just trying to get my head around this. Also if you have any great examples of what has been achieved, it would help. Thanks!

The main advantage of web-based apps is that they run in any browser and so run on all platforms. An app built for iOS, for example, only runs n that platform, which is a bit of a pain. If your app doesn’t need access to some of the device’s internals, a web-based app is worth considering. Some prominent sites (like the Financial Times) have moved to web-based apps for reasons like this.

This article might be of use:

A “mobile web app” is nothing more than a website. The primary difference between it and a normal “desktop” site is that small screen real estate and work flow can be accounted for and perhaps made to look “app like”. However, a “mobile web app” is nothing but loaded jargon to make it sound cooler/newer than it really is. The primary advantage is that a single code base can function on any device. If you wanted to support Android and iPhone going the traditional route you would essentially have to build two separate products and who knows how much worst that is going to get with how often new things come into the market. A “mobile web app” is a safe bet that the site will function on all devices so long as it is created properly. The primary disadvantages is that you can’t get close to the hardware as you can with Java and Objective C and the nature of a compiled language will result in a more responsive/fast application. Not to mention it is not dependent on browser and in some cases a network connection (depends on the app). I have used jQuery Mobile and Sencha Touch2 and none of those get even close to the UI performance of a traditional app. I think Sencha Touch 2 does a pretty good job but it is nothing in comparison to a normal app. I have yet to come across a technique that works very well on the web which delivers the same, persistent UI experience w/ animations, etc as a standard app.

As I’m sure you know, you can wrap your HTML/CSS/JS in a container like PhoneGap, which turns it into a portable app with quite a bit of access to the hardware. It’s mentioned in the article I linked to. Kind of a half-way house, I guess, with some advantages and disadvantages.

The API coding for mobile apps like ones for the iPhone are totally different from the HTML mobile sites.
The interaction of software and hardware is different as mobile HTML is more static while the apps are usually more transition based.

1) Why do people want to turn their website into a mobile APP? What good will that do?

If you view most websites on your mobile device, you’ll see that they are hard to read. A mobile app rectifies this. For instance check out these two versions of the same content. The second is a web app and you can view the content so much easier on a small device:
Desktop: http://bit.ly/H6QrVb
Mobile: http://bit.ly/webapps

2) What happens with database-driven websites? How can they be apps when you need the database and the server scripts for it to work?

In this case, the designer will use the database within the mobile device, that’s all. Mobile devices have their own databases.

3) HTML/CSS was designed for laying out content. Not for making software UIs. It may be possible, but not ultimate. Why is it pushed for app development then?

Surprise! App development is website development on a smaller scale. Again, see the links above for examples.

4) What’s wrong with Java (Android) and Obj-C (iOS)? Yes it takes a lot of time to learn probably, but can you even touch the capabilities and performance of writing actual compiled code rather than web scripts? Especially on performance limited devices such as phones.

There is nothing wrong with Java and obj-C. But for those who already are skilled with HTML/CSS/JS, they can jump into the app world more quickly and contribute to the world faster.