Enterprise iPhone Applications: First steps

The iPhone is a very popular gadget and this popularity is not limited to long-time and die-hard Mac fan’s. Enterprises also seem triggered by the iPhone’s slick appeal, if only because an increasing number of employees has the flashy device lying near them on the conference table. (Or the lunch table for that matter).

So what are a company’s options if it want to have it’s own shiny icon at the iPhone home screen? Does the ease of use extend beyond the user-interface? In this guide, doomed to be aged in mere months, I’ll outline the options one has for developing enterprise software for the iPhone.

Software types

There are two types of software that can be run on an iPhone:

  1. Native applications
  2. Web applications

Both have their specific features that can make them the best solution for a given situation.

1:Native applications

Native software is developed in objective C, a superset of the C language that adds object-oriented features. Apple provides Iphone SDK available for download at the iPhone Developer Program. The SDK includes Xcode IDE and an iPhone simulator. The major drawback for anyone not owning a mac is that the SDK is only available for OS X.

Distribution

To install software on the iPhone it needs to be digitally signed. Therefore purchasing one of the two iPhone Developer Programs is needed:

  • **Standard program (US$99)**Offers Ad-Hoc distribution to max. 100 devices and distribution through App Store,
  • Enterprise program (US$299) Offers In-house and Ad-Hoc distribution

Applications published through the App Store can be either free or paid software. But software has to be approved by Apple before appearing on the App Store. The acceptance policy of App Store leaves room for debate as can be read in this article.

Concluding that distribution through App Store has it’s drawbacks, the Developer Program seems

preferrable. The Enterprise program still requires an iPhone to be [

physically connected to a desktop running iTunes]4 toinstall the software.

Features

Native applications have access to a lot of iPhone features, such as:

  • GPS
  • Accelerometer
  • 3D rendering
  • Address book
  • Camera
  • etc.

They can of course connect to online resources. For integration in company networks [VPN solutions are

available]5.

Alternative

IBM has released a tutorial on how to use Eclipse to program iPhone applications (registration required)

Installing such software requires jailbreaking the iPhone allowing it to run applications not signed by Apple.

2: Web Apps

Web Apps are basically web based applications like any other. Safari on the iPhone uses the same

engine as Safari on the desktop so it includes the latest web standards, like:

  • xHTML 1.0
  • CSS 2.1
  • ECMAScript 3 (Javascript)
  • DOM Level 2
  • XmlHttpRequest (AJAX)

Features

Compared to native applications the features of web apps are limited. Nevertheless URI schemes allow developers to extend the possibilities beyond the browser’s scope. The following URI schemes will launch the corresponding iPhone application:

  • mailto: links
  • tel: links
  • Links to google maps
  • Links to youtube
  • Links to iTunes

Besides launching applications the potential of the iPhone’s touchscreen can be used: The browser’s javascript can handle multi-touch and gesture events. Custom meta tags can be used to control display behaviour and to provide the application with a ‘home’ icon. These topics are extensively covered in Apple’s Safari Web Content Guide for iPhone, also available as PDF (registration required

As of iPhone OS 2.1 meta-tags can be used to make web apps run full screen and to disable the taskbar. This way web apps look just like native apps.

Offline use

Just like websites can be read in offline mode not all web apps require a live connection. Iwebsaver offers a technique to packace a web app (including associated css, javascripts and images) into a single data uri that can be stored on the device. As explained on this page this technique is not suitable for every web app.

Conclusion

Native apps and web apps both have their merits and drawbacks. Some of the most important characteristics are outlined below:

<th>
  Native apps
</th>

<th>
  Web apps
</th>
<td>
  Objective C
</td>

<td>
  XHTML, css, javascript
</td>
<td>
  Desktop with iTunes installed
</td>

<td>
  Web
</td>
<td>
  yes
</td>

<td>
  yes
</td>
<td>
  yes
</td>

<td>
  no
</td>
<td>
  yes
</td>

<td>
  Push only using uri schemes
</td>
<td>
  no
</td>

<td>
  yes
</td>
Developed using:
Distribution:
Access to touchscreen?
Access to other iPhone hardware?
Access to other iPhone apps?
Compatibility extends beyond iPhone

Web apps can be seen as Mash-ups or RIA’s brought to a small screen. If web development knowledge is available within a company it’s relatively easy to get into. One can use iPhone specific features but resources are best spent if one makes sure the web app also runs on other mobile devices and desktops. It is a website after all…

On the other hand, if the application requires use of embedded features, native applications are the way to go. Opting for native application development companies should look into requirements regarding distribution and development platform.

As allready hinted by the possibility of storing web apps on the iPhone and running them fullscreen, there’s a somewhat greyish area between the black and white. Hotels.com is a fine example of a hybrid application that uses the best of both worlds.