Cross Browser Mobile Application Solutions

The future is all about mobile. We hear this more and more. Anybody who followed the recent Adobe Max conference in LA will have seen Adobes vision of the future; cloud computing and mobile. But in 2011, the mobile space remains confusing; smartphones, tablets, native apps, hybrid apps, mobile web apps. Where do we begin?

Let’s try to demystify things a little.

Mobile Hardware and Software

There are two basic types of mobile hardware: smartphones and tablets. There are big variations in each category, one of the most critical is size. Size as it relates to portability, and more importantly screen. Smartphone screens vary from 2.1″ to just over 4″; in contrast tablets have a range of 7″ to 10.1″. Why is screen size so critical? Try interacting with an ArcGIS map on a 2.1″ screen!

Users can interact with mobile applications in one of two ways. They can use their Web browser to access a Web site, or they can download and install an application from one of the Mobile App stores. Most Web pages have been built for the PC. This means mouse interaction. Increasingly, Web sites are being optimized for mobile viewing and interaction. This means built for use on smaller screens, and allowing for finger interaction. This usually requires multiple Web sites; one for PC’s and one or more for mobiles. Now suppose your company has taken advantage of the excellent Flex Viewer for ArcGIS to give access to your spatial data. You share with your users the news of a new widget you have added, one perfect for use on mobiles. The deluge of angry iPhone and iPad users, complaining they cannot access the Web site, makes you regret your announcement. It’s an unfortunate reality that both Flash and Silverlight will not run on the browser of any Apple device.

Visiting Apple’s App store or Google’s Android Market, users can access an array of mobile apps. These are installed mobile apps; both free and fee based. A simple search on GIS or maps in an App Store produces a nice list of mobile apps. Let’s imagine you have a unique idea for a mobile application; one you’d like to push into one of these stores. Where do you begin? In the old days, we are talking here about months not years, you would first choose the platform to target for the app. That was usually Apples iOS, for running on the iPad or iPhone. Next hire an Objective C programmer. And build a so-called native mobile application. Once done, launch it into the Apple marketplace and watch it jump off the shelves, figuratively. Android from Google has seen increasing popularity. Suppose you wanted to take your app and push it into the Android market. Stop. Rewind. Hire a Java programmer. Have him rebuild the application. Push it to the Android Market. You get the idea; a single mobile app running on different platforms requires multiple rewrites. When you add in bug fixing and updates, this has the potential to be expensive.

Cross Platform Mobile Apps

In a perfect world we should be able to write an application once and run it across all mobile devices. Whether it be a Web or installed application respectively. Thanks to HTML5 and Adobe Air this is now possible. HTML5 is an augmentation of the current HTML 4.01 specification, which adds new features that designers and developers will be able to use. Important new additions include multimedia elements and dynamic graphics, allowing for improvements in data visualization, image manipulation, and video. In combination with Javascript, HTML5 presents some new and exciting possibilities for Web development. Apple iOS, Android, BlackBerry 6, and HP/Palm WebOS devices all support HTML5 features. HTML5 can be a compelling Web solution for multi-device and multi-screen applications.

Adobe AIR is a sister technology to Adobe Flex. AIR does not run in a browser like Flex; it is used to create an installed application, which has access to more local resources than are available to Flex. Mobile AIR is a new flavor of AIR, designed specifically for mobile devices. Adobe has made some important changes to their existing development tools. Now a project built in mobile Adobe AIR can be cross compiled to run on Apple iOS, Android and Blackberry. That is one code base for multiple platforms!

So now an application built in HTML5 will run on ALL mobile web browsers. An application built in mobile AIR, and distributed in the App stores, can be installed on all major mobile devices. That is huge. One more thing. If you build your HTML5 app for the mobile Web and at some time in the future decide you want this to be an installed app. Step forward PhoneGap; an open source tool to convert an HTML5 app to a cross platform installable app. So there is one code base for both Web and installed apps!

We live in exciting times. It could well be that we are seeing the end of the PC. Applications which are location-focused are a huge part of the new mobile revolution. The cross platform development tools, described in this article, available to designers and developers, will simplify the building of state of the art mobile solutions.