By Ryan Faas at Computerworld

Apple's App Store approval process has always been a bit controversial because of the level of control the company holds over what types of applications are allowed in. Initially, there were concerns that Apple rejected apps because they duplicated functionality the company already offered or was planning to build into the iPhone OS -- not because the submitted apps wouldn't run according to the company's specifications.

After this winter's purge of apps that could be construed as adult in nature, the controversy ballooned as both developers and consumers objected to Apple imposing its morality on them and limiting free speech. Although Apple argues that the move is to protect children and teens perusing the App Store (a laudable goal), many felt that such protection could be enforced with better parental controls or by creating an 18+ (or even 21+) section of the App Store.

The controversy over Apple's iron-clad control ratcheted up again after the company announced and previewed parts of the iPhone OS 4, which was unveiled in April and will be front and center at this year's Worldwide Developers Conference. In addition to the many new features in the next-generation iPhone OS 4 -- and the opening of many new APIs to developers -- the company also amended its developer agreement to block the use of any software development tools other than Apple's own Xcode. That's what really added fuel to the company's feud with Adobe over Flash.

The decision seemed mainly aimed at Adobe's Flash Packager for iPhone, which allowed applications created in Flash to be converted to native Objective-C code matching the parameters for inclusion in the App Store. However, the ban on cross-compiled apps went beyond Adobe and Flash. RunRev, which had been planning to offer a HyperCard-like development environment for quick and easy app creation, was also left out in the cold.

The end result: Anyone thinking about offering an iPhone app has to decide whether to create a Web-based app or use Apple's development tools, which only run on a Mac, require membership in Apple's iPhone developer program and must adhere to its App Store policies -- policies that sometimes change with little warning.

What's an app developer to do? Read on.

The difference between Web and native apps

Initially, Web apps were the only way for developers to create iPhone-specific applications; they were supported a few months after the iPhone's initial release in 2007. They allowed Web developers to create Web sites specifically formatted for the iPhone's relatively small touch screen. Working with dynamic coding options specific to the iPhone, Web developers could use HTML, CSS and JavaScript to create Web-based applications that mirrored the look and feel of the apps Apple included with the iPhone. Launched alongside the new Web-clip feature that allows users to place bookmarks as icons on the iPhone's home screen, the effect was very much like creating a workable iPhone application -- albeit one that required an Internet connection over Wi-Fi or AT&T's network (which, at the time was limited to the older and slower EDGE network).

Web apps were a stop-gap measure between the original closed iPhone OS and its first major upgrade in 2008, which allowed developers to create third-party apps and introduced the App Store for them to show off their wares. At first, third-party apps were somewhat limited. But with succeeding OS updates, Apple offered more capabilities, and today third-party apps can even access part of the iPhone's core features, such as using the GPS capabilities of the iPhone 3G and 3GS to acquire location information.

Native applications -- those created using the Apple Xcode development environment -- obviously offer developers a broader range of features. But developing native apps for distribution via the App Store also means obeying all of Apple's guidelines and purchasing a $99-per-year iPhone developer membership. It also requires a knowledge of the Objective-C programming language and a familiarity with Xcode.

The pros and cons

Deciding whether to create a Web or native app depends on a number of factors. First and foremost is the ability and willingness to learn to write Objective-C code and use the Xcode environment. For experienced Mac developers, there's very little learning curve, since the underpinnings of the iPhone OS and Mac OS X are essentially the same. However, for anyone without web design bedfordview that kind of experience, Objective-C and Xcode can be a bit daunting, which is why developers liked RunRev and Adobe's Flash Packager for iPhone, both of which offered an easier learning environment, before Apple changed the development rules for iPhone OS 4.

For those organizations simply looking to present content in an iPhone OS-specific format or to tie into existing Web-enabled resources like personal information managers or databases, there's an advantage in going with a Web app. Development will likely be easier and quicker, these types of uses generally won't require a lot of advanced features, and they rely largely on commonly used Web technologies. Take a look at Apple's Web app directory for examples of what can be achieved.

For sites that use WordPress as a blog tool or content management system, creating a Web app is even easier: There's as a WordPress plug-in that automatically formats content as a Web app for the iPhone OS and other mobile platforms such as Android, Palm webOS and the Blackberry Storm. It's freely available, and it works. Just head to Ryanfaas.com on a supported device.

Although Apple supports Web apps, it doesn't maintain the degree of control over them that it does with native apps. That's largely because Web apps are essentially specially formatted Web pages. As a result, Web apps are free from any of Apple's requirements for native apps. Google actually used this as a solution after Apple refused to rule on its Google Voice app.

For developers who want to create more-robust apps -- including those that take advantage of more iPhone OS core features and APIs -- Web apps can be constraining. Those limitations will be even more noticeable with the release of iPhone OS 4, which will offer a wide range of new features for native-app developers. Native apps also don't require hosting the app on a Web server like Web apps, which, depending on the popularity of the app, could get rather expensive.

Web apps also can't be monetized as easily as native apps, for which developers can set a purchase price and prices for in-app purchases that deliver additional features and content. In picking which direction they want to go, developers have to settle on an ultimate goal: Is their application designed primarily to make money or simply to offer up content or information?

Business, education and internal app development

The calculus on Web apps vs. native apps changes a bit if you're creating apps only for internal use at an organization. Apple's enterprise iPhone developer program exists for creating native apps that will not be submitted to the App Store. At $299 a year, the program is more expensive than the general developer program, but it allows organizations to internally develop and distribute native apps. Since the apps don't need App Store approval, they aren't bound by all the requirements of commercially developed apps (though they still require a working knowledge of Apple's development tools).

Distributing internal native apps also requires provisioning all iPhone OS devices within the organization with security certificates indicating that those devices are allowed to run internal apps. While the current iPhone OS doesn't make deploying either the security credentials or the apps themselves as quick and easy as most systems administrators would like, it can be done.

And it's slated to become much simpler with iPhone OS 4.

Another option for enterprise environments that utilize terminal services such as Citrix are iPhone and iPad apps that allow access to virtual desktops and applications. For an organization already using such technology, products like the Citrix Receiver deliver the same level of access as a Mac, PC or other thin client. (Citrix Receiver is free in the App Store and includes demo environments for evaluation purposes.) The small screen size of the iPhone and iPod Touch imposes some limitations, though Citrix and third-party companies provide a range of ways to present data and enterprise apps in a smartphone-oriented format that can also be used with other mobile platforms, including Android, BlackBerry and Windows Mobile.

For many organizations, though, a thin-client approach might work best with the iPad. In fact, most of the medical field use of the iPad so far seems to revolve around Citrix for the ease of integration and compliance with security requirements related to HIPPA. Although the medical field seems to be pioneering these moves, they can easily be applied to a range of businesses seeking easy integration while providing secure access to data without physically storing it on the device.

Choosing the best approach

Obviously, the right answer for any individual or company depends on a variety of factors, chief among them the skills available and the ultimate goals for the app(s) they want to produce. For many, the goal of developing a task-oriented app or game will mean developing a native app for the App Store; others who are looking to focus on distribution of content, interoperability with other mobile platforms, and integration with existing systems, will find that a Web app more easily meets their needs.

There is no definitive answer for every person or company looking to provide content, solve a problem, offer entertainment or even make money, but weighing the pros and cons of each approach can shed light on the best avenue for a particular project:

Web Apps vs. Native Apps

Pros

Cons

Web apps

Fast development, easy deployment, rapid testing

No need for developer program membership

Freedom from App Store restrictions and review

Most features can be adapted to other platforms

Secure connections enable access to data without storing on device

Limited development tools

Cannot access full range of iPhone OS and hardware features

Do not offer direct sales revenue or access to iAd

Require web server hosting and related costs

No full application data storage on device

App store

Ability to showcase and monetize apps through App Store

Access to iAd, in-app purchases, game center, and other Apple-provided methods for further monetizing apps

Full range of Xcode development tools including testing/debugging

For enterprise members, the ability to develop internal tools with full access to iPhone OS tools and APIs, and distribution without the App Store

Must get Apple approval (for nonenterprise apps)

Each new version must be approved again

Requires knowledge of Objective-C and Apple's Cocoa frameworks and related APIs as well as familiarity with Xcode development tools

Development must be done on a Mac OS X computer

Cost of developer program membership

Ryan Faas is a freelance writer and technology consultant specializing in Mac and multiplatform network issues. His most recent book is iPhone for Work, published by Apress. You can find more information at www.ryanfaas.com and can e-mail Ryan at ryan@ryanfaas.com.