In addition to vendor-provided native IDEs and cross-platform hybrid toolkits, a number of mobile development products target specific environments, such as a specific mobile OS or server-side hosting environment.
A good example is Google's J2ObjC Java-to-Objective C translator, which aims to let server-side Java developers move their non-UI code to Objective C that executes natively on an Apple device. Native Java is still prohibited by Apple in iOS, creating a significant barrier to Java-skilled app coders. Although Java developers must still learn Objective C for iOS graphical app components, legacy Java business logic can be preserved, saving the time and expense of maintaining two code trees.
CodeName One is a similar tool, but rather than translating Java to Objective C, it lets developers code almost entirely in Java, including UI code. The product's "lightweight architecture" provides seamless UI development across multiple platforms. Developers have the option to replace Java-coded widgets with native Objective C "heavyweight" versions when necessary for performance or to access low-level device features. And a GUI builder gives developers a full-featured drag-and-drop UI canvas.
Salesforce Touch is a mobile development platform that provides enterprise developers the same app engine Salesforce uses for its own enterprise mobile apps. Touch can generate native Objective C or Java, pure Web, and containerized hybrid apps. The platform interfaces with Force.com, which delivers network services via REST APIs to access Salesforce-resident business data, provide social networking, and implement geolocation functions such as real-time maps. Touch's Identity feature provides a single sign-on service to authenticate mobile devices to enterprise servers.
CoralTree Systems' Renaissance is an example of a development platform aimed at a specific enterprise IT environment, the IBM i. An open source product, Renaissance provides specific hooks for IBM security APIs and the RPG programming language. Server-specific mobile platforms such as Renaissance let enterprises add mobile support to legacy applications, saving the cost of re-creating complex business logic in a more modern language such as PHP or Ruby.
The selection of mobile development tools has never been richer, or more affordable, than today. You can go native but pay big bucks for a slick app that eventually ships, or use a streamlined Web- or hybrid-development approach. Take the time to enumerate your application requirements and match them to an appropriate toolkit. You don't want to end up like Facebook, changing horses midstream.
- 9 key career issues software developers face
- 13 essential programming tools for the mobile Web
- 10 programming languages that could shake up IT
- "Hello, world": Programming languages quiz
- Programming IQ test: Round 1
- Programming IQ test: Round 2
- Download: InfoWorld HTML5 Deep Dive
- Download: InfoWorld's Developer Survival Guide
- 7 programming myths -- busted
- 10 hard truths developers must learn to accept
- Programmer personality types: 13 profiles in code
- 11 programming trends to watch
- 12 programming mistakes to avoid
- 7 programming languages on the rise
This article, "Native, Web, or hybrid: How to choose your mobile development path," originally appeared at InfoWorld.com. Follow the latest news in programming and mobile technology at InfoWorld.com. For the latest business technology news, follow InfoWorld.com on Twitter.