HTML and CSS Reference
With the payment or free sign-up in place, the customer now needs to access your application in order to
actually use it.
Native application marketplaces provide a tried-and-tested download mechanism, which also adds weight to
the feeling of actually buying something. The app is downloaded, installed, and up and running very quickly.
But there's no denying that the Internet is becoming more and more available on all devices, and that trend isn't
showing signs of stopping. As a result, there are more and more devices on the market (everything from iPhones and
iPads; to Amazon Kindle Fire; to smartphones running Android, BlackBerry, Windows Phone, and so on) that have
modern web browsers capable of doing most of what a desktop browser can do. This presents a unique opportunity
for developers, who would otherwise need to create a number of native apps for ubiquitous support, to simply create
one web app for all devices that is instantly available by navigating to a URL in the web browser.
Web apps provide a distinct advantage when it comes to applying updates. Rather than waiting for users to get
around to updating to the latest version of your app with all the bells and whistles, you simply update the web app
on your server, and users get the new version the next time they load your app while online. This is a huge benefit,
especially for feeling out how users interact with a new app; as new features are rolled out and old bugs are squashed,
the latest and greatest version of the app is instantly available to the user-base.
From a user's perspective, updates to native apps can be relatively easily applied by either paying for an upgrade
or, via manual or automatic upgrade, through the marketplace's mechanism. However, a developer has to submit the
update to the marketplace and wait for the verification process to complete. This can mean that simple or urgent app
upgrades can take time to be distributed.
Look, Feel, and Performance
When developing a native application, the look and feel for that platform is often understood and well defined.
Although there are web app user interface (UI) frameworks available, they won't exactly match the native feel for the
platform they're running on. Also, for each platform the UI may be different, which means detecting this in the web
app and maintaining a different skin for each. Even then, you can't control the browser chrome from within a web app
so it will never exactly match the appearance of a native application.
But it's important to remember to try and embrace the web for the platform that it is, and to use web features to
This is a blanket statement, and there are definitely exceptions to it, but because native apps are typically built
based on the device's native languages, they generally tend to feel a little smoother.
Starting with the process of launching a native application: in a native app you find the app's icon, click it and it
launches. For web, it's different and a bit more convoluted; first open the browser app, then either navigate to a URL or
open a bookmark. If you are using multiple web apps then you also need to jump between tabs to switch application.
This results in an user experience which isn't quite as smooth with a web app as it is with a native one.
Because web apps aren't running natively, there is a higher risk of jumps, stutters, stalls, tweaks, and other
glitches that tend to downgrade the quality of the user experience. Not to say that you won't get this with native apps,
but when running a web app within a browser app (which itself is running on the operating system), there is an
additional layer that has the potential to cause problems.
Due to this, web apps are somewhat more limited in the amount of flashy additions that can be added without
risking poor performance.
Some great strides have been made by browser vendors, HTML5 frameworks, 9 and startups 10 to combat this
performance hit, and things will only improve. But, in some situations, such as intensive games, native will still be the