I thought I’d follow up my blog on disconnected mobile apps with a discussion about native and browser-based apps. Native apps are written for a specific device and its operating system. For example, a native Android app is written for the Android Operating System, and a native iPhone app is written for iOS. Even if they do the same thing, they are really two separate applications. A browser-based app runs in the web browser on the phone. It’s generally device-independent, meaning the same application runs on multiple types of devices, like Androids and iPhones. The same app will often run in the web browser on a desktop or laptop as well; although many sites offer a mobile version that is designed specifically for the smaller screen on mobile devices.
There are pros and cons to both options. Native apps typically have the look and feel of the device where they are run, so the user experience is often better on native apps than on browser-based apps. Native apps are generally more performant since they are directly accessing the features of the device. Browser-based apps are very lightweight and often don’t require anything to be downloaded to the device itself; although some apps do require plug-ins for certain functionality. Developers can write one app for web browsers and have it run on multiple devices. However, the app may be dependent on specific browsers or browser versions. The app may look and perform differently on different browsers, and this behavior is often beyond the developer’s control. Browser-based apps are always online, which is both a pro and a con. They are available across multiple devices as long as you have a web connection, but if you don’t have internet access, you don’t have the app, either. There is no disconnected operation for browser-based apps.
With the emergence of HTML5 this game has changed. HTML5 is the latest version of HTML, which is the language that web pages are written in. With HTML5, the functionality required by many applications is now available through the web browser itself. For example, HTML5 has support for multimedia, including audio and video, and offers much greater control over how graphics are rendered on the user’s display. Offline storage is also available. HTML5 gives mobile application developers many of the advantages previously associated with writing native apps with the benefits of writing browser-based apps. It will be interesting to see how HTML5 impacts the apps available to users. Do you foresee HTML5 impacting the way in which geospatial apps are developed, deployed, and utilized?