Mobile applications for specific business needs can offer a wide range of benefits for users: access to internal databases and server-based applications (anything from sales and product management tools to patient information systems) as well as custom tools such as loan calculators or internal process guides.
Providing these types of tools on a mobile device means workers can access resources and perform job functions on the road or while meeting with clients with little more than a carrier’s mobile data service.
The promise of custom in-house mobile apps was one of the selling points Apple used to make its case for the iPhone as an enterprise device before the release of the iPhone 3G and iPhone 2.1 firmware in July.
Until Apple’s recent decision to drop the non-disclosure agreement, which had prevented iPhone developers from discussing the development tools and process, it seemed as if resources for easily and effectively producing in-house applications would be limited. That would have created a headache for many businesses, because iPhone developers on staff would have to start their projects from scratch, without the benefits of guides or the developer community. With the NDA lifted, however, resources are already available, or soon will be.
There are the upcoming books The iPhone Developer’s Cookbook: Building Applications with the iPhone SDK by Erica Sadun and iPhone SDK Development from the Pragmatic Programmers, as well as more general articles about the iPhone SDK.
This isn’t a detailed guide on how to develop software for the iPhone. Instead, it seeks to highlight the challenges and opportunities involved with integrating iPhones into a business environment.
When it comes to in-house applications, this means a different set of considerations, depending on whether you’re simply adding the iPhone to your hardware arsenal or developing apps for sale in Apple’s App Store.
The iPhone developer program and iPhone SDK
The iPhone SDK is available from Apple’s developer Web site and freely available for download. The iPhone development environment is based in Apple’s Xcode, the same development suite used to write Mac applications. Xcode is a powerful and intuitive environment that provides tools for building an interface, creating and debugging code, and testing software.
The iPhone SDK relies on Cocoa Touch, which is similar to the Cocoa programming environment used to create Mac software. As with Mac software, the underlying code for iPhone applications is written using Objective C, a superset of the commonly used C programming language.
Unfortunately, building iPhone apps for your company isn’t as simple as downloading the SDK and diving in.
That’s because actually installing software on an iPhone requires membership in the iPhone developer program. If you (or your company) aren’t in the program, you can build applications and run them in an iPhone simulator, but you won’t be able to test them on an actual iPhone or distribute them.
The iPhone developer program costs $99 for standard developers and $299 for enterprise developers and requires Apple’s approval of your membership. When the program was announced earlier this year, developers were ready. In recent weeks, a few developers have talked about their experiences of signing up, saying they got a response from Apple within a day or so.
The big difference between the two developer programs is the ability to widely distribute apps outside the App Store. Although nonenterprise developers can distribute iPhone applications for personal use and beta testing, they are limited to using Apple’s ad hoc distribution method to no more than 100 devices. Enterprise developers — those developing in-house apps at a company with 500 or more employees — are not so restricted. But enterprise developers also don’t get access to the App Store as a distribution model.
Provisioning profiles and certificates for testing and distribution
Members of the iPhone developer program can request provisioning profiles from Apple. The iPhone requires that all applications be digitally signed before they can be installed and run. Out of the box, the iPhone will only accept applications digitally signed by Apple. If you’re creating in-house applications, you’ll need a way to tell the iPhone to allow apps not signed with the digital certificate used by App Store applications.
Being a member of the developer program allows you to request a provisioning profile from Apple. Provisioning profiles are similar to iPhone configuration profiles that you can create to define user settings.
Provisioning profiles instruct the iPhone to allow apps from sources other than the App Store – including apps that you’re beta-testing as well as in-house apps being distributed to users. In creating your provisioning profile request, you’ll need to supply a certificate to Apple that will be used to sign your applications (and install it on each iPhone with the provisioning profile).
There appear to be two variations of provisioning profiles referenced in the publicly available information for iPhone development. The first is the profile developers must use for beta-testing their software. The second is an enterprise distribution provisioning profile that can be used for distributing in-house apps. Enterprise distribution profiles require information about a specific application, and from the information Apple has made public in its Enterprise Deployment Guide, it looks as though companies creating in-house apps will need a separate profile for each app that they plan to deploy.
Deploying in-house iPhone applications
The actual deployment process for apps requires the distribution of provisioning profiles and certificates. According to Apple’s Enterprise Deployment Guide, the company provides two ways to do this and two ways to install applications. The first is through iTunes; the second is through the iPhone Configuration Utility.
The iTunes method is useful if your users sync their iPhones to their computers rather than using a centralized distribution system where IT staff activate and distribute iPhones without allowing user-syncing.
To install the profile, you can drag it on to the iTunes icon and iTunes will copy it to the appropriate location for a user’s account on a computer (~/Library/MobileDevice/Provisioning Profiles/ inside the users home folder in Mac OS X, C:/Documents and Settings/username/Application Data/Apple Computer/MobileDevice/Provisioning Profiles, in Windows XP, or C:/Users/username/AppData/Roaming/Apple Computer/MobileDevice/Provisioning Profiles in Vista).
The profile will then be installed on the iPhone during the next sync.
You can also copy the provisioning file to this location manually or script the process for mass distribution. Or you can copy the profile to appropriate locations for all users of a computer (/Library/MobileDevice/Provisioning Profiles/ at the root level of the hard drive in Mac OS X, C:/Documents and Settings/All Users/Application Data/ Apple Computer/MobileDevice/Provisioning Profiles, in Windows XP, or C:/ProgramData/AppleComputer/MobileDeviceProvisioning Profiles in Vista).
When iTunes is used, you can distribute applications as files to users, who can move them to iTunes using the Add to Library command from the File menu. The application will be added to their iTunes library and can be synced along with applications from the App Store.
If you want to distribute applications without using iTunes, you can use the iPhone Configuration Utility, which provides options to view all the provisioning profiles and installed applications on a connected iPhone. As shown in the figure below, you can also use the utility to add and remove both provisioning profiles and applications.
You can also use it to view log files from connected iPhones and maintain a library of iPhones in use in your organization, making it a useful troubleshooting tool for in-house applications.
The iPhone Configuration Utility can be used to view/install provisioning profiles.
Though somewhat less convoluted than using iTunes, relying on the iPhone Configuration Utility does require centralized management of iPhone distribution. This also provides options for managing application updates, since it doesn’t rely on users to install them. On the other hand, it requires a more hands-on approach to update management than simply giving any updates to users and assuming they’ll install them.
Are native iPhone apps the best approach?
Although the ability to create custom in-house applications was initially hailed as a powerful enterprise feature of the iPhone, the tightly controlled developer program can make the process seem more trouble than it’s worth. Even if you ignore the closed nature of the program, the choice between iTunes or the iPhone Configuration Utility for distribution and updates raises questions about how much access users should have to iTunes and what amount of IT resources should be devoted to iPhone application management and support.
Neither approach is as simple as over-the-air application installation or hosting applications on an internal Web or file server for distribution. Even in a best-case scenario, the process will require a more hands-on approach.
For many companies, the Mac-based development environment may be an issue. iPhone development is similar to Mac OS X software development, requiring skills not common to all businesses. That means iPhone development will force some developers to learn how to code for a new platform or hire additional employees or contractors with the needed experience.
The good news: Those same skills could be used later by companies looking to develop Mac OS X applications. It’s worth noting that some developers with no Mac experience were able to get up to speed very quickly because of the robustness of Apple’s development tools.
If your company is eyeing the iPhone as a mobile platform, another option may be rich Web-based applications. Apple has made resources for iPhone-specific Web application development freely available for the past year. Access to these resources requires an Apple Developer Connection membership, though they’re available at the free online membership level.
Web applications can be installed as Web clip icons on the iPhone’s home screen; if you are considering an application as a way to access databases or other network applications that can be Web-enabled, this mechanism is easier to develop and maintain. There’s no complex distribution process or any need to deploy updates to individual iPhones.
The biggest downside to this approach is the slower network performance of first-generation iPhones. With the newer iPhone 3G, that’s less of an issue.
Even if Web applications aren’t your ultimate goal, they can be a good starting point. Experienced Web application developers can produce them quickly, making them a viable intermediate application while developers become better versed in building native iPhone applications for the long haul.
Note: Typically, Web applications don’t provide access to any of the iPhone’s operating system or hardware features. However, a new open-source framework called PhoneGap promises to allow Web applications to be embedded in a native iPhone application — gaining access to some of that functionality. Currently, PhoneGap can access the iPhone’s accelerometer and location services with plans to add camera and vibration support.
Still other options exist. You might consider a terminal server approach, for instance. Tools such as WinAdmin, which is currently available in the App Store, allow the iPhone to connect to remote Windows PCs and servers using Microsoft’s Remote Desktop Protocol. Citrix has also demonstrated a version of its terminal service’s client for the iPhone.
Another possibility involves native iPhone versions of existing database platforms. Right now, options are limited. Oracle and Salesforce already provide iPhone options for some of their products, and SAP has unveiled similar plans. But the most full-featured iPhone/database product appears to be from FileMaker, which offers its iPhone FMTouch. The FileMaker offering, however, is likely to be of more interest to small businesses than large enterprises.
Is the iPhone ready to live up to its potential?
In preparing this series on the iPhone, I found myself stepping back from the spin that revolves around the iPhone to take a hard look at the actual mechanics of how it could be used in real-world business situations.
The iPhone does indeed offer a lot of business potential, both from its built-in enterprise-oriented features and from the perspective of developing internal tools for mobile users.
But the iPhone did start out as a consumer smart phone/media player. And even though Apple has done a good job of making the device business-worthy, relying on it as an enterprise mobile platform still presents unique challenges.
My advice: If you’re considering the iPhone as a mobile business platform, proceed with caution and understand that rolling it out will be different from implementing other mobile devices. Start small.
Begin with a pilot program to ensure that the iPhone and its unique blend of traits is right for your organization before doing a large-scale deployment. As you move ahead, make sure you consider the issues I’ve raised and plan accordingly.
Ryan Faas is a frequent Computerworld contributor specializing in Mac and multiplatform network issues. You can find more information about him at RyanFaas.com.