Developing For Smartphones: Setting Up Your Environment

Previously, we examined the business and technology concerns around building applications for each smartphone platform. Here we investigate the options for application development on each platform and what tools are are necessary to build them.

Unfortunately there is no universal tool for app development. For example, BlackBerry and Windows Mobile Development require a Windows Environment, where iPhone requires OSX. The closest thing to a consistent application model supported on all the smartphones is a Webapp but these take completely different forms on a BlackBerry than on a Palm Pre. Java developers with Eclipse experience have a bit of an edge because this covers BlackBerry, Android, Symbian, and JavaME. Similarly, if the iPhone is not the target device then Windows is the operating system of choice because it allows some form of development on every other platform.

Below is a chart contrasting all the programming languages, recommended IDEs, supported desktop environments, and limitations for each smartphone platform. Several things to note:

  • Native, as used below, does not refer to machine code, but rather applications which interact with the OS to access all provided hardware and software facilities such as camera features and smartphone platform graphics.
  • Web Apps refer to applications created using HTML/Javascript or other web-focused tools.
  • The Java ME column only refers to pure MIDP apps and excludes Java ME apps using extended libraries.
  • Flash has not been considered here, as it will be covered in a separate, upcoming post.
  • In discussing desktop operating systems we are only considering Windows, OS X, and Linux.


  Native Apps Web Apps Java ME (MIDP)
Android Java SE + Android libs Only through the web browser No
BlackBerry Java ME + RIM libs
  • Eclipse plug-in supported for Windows. Limited user success on other desktop OSs.

JDE on Windows only

Available through RAD
iPhone Objective-C + Cocoa Touch Library
  • Apple's SDK is OS X only and includes all the necessary tools
Yes No
(possible through jailbreaking)
Symbian Native C++
  • Officially supported in Windows using ADT (provides Carbide.C++ IDE) and SDK (provides S60 emulator)
    (free registration required)

Managed solutions also available

  • See Symbian Developer Wiki for more info
Yes Yes
WebOS Mojo SDK
(not publicly available yet)
  • Apps are written in HTML5 and AJAX/Javascript
Native apps are web apps No
Windows Mobile Native C/C++ using Visual Studio

Managed code with .NETCF

Version 6.5 to support as .widget Yes


Android is desktop OS-friendly and can be developed for on all three major OSs through Eclipse and the associated plug-ins. These applications are built with a full Java SE stack, making it easy to import existing Java libraries. It does not support true web apps, but has solid javascript support through its webkit-based, Chrome-like web browser. Android does not support MIDP apps.


Research in Motion (RIM) provides a Windows-only Java Development Environment (JDE). An Eclipse plug-in is also provided, but again official support is only available for Windows. Limited functionality is possible in Linux and OS X through Wine/Darwine (respectively). Apps are written in Java Me using some RIM provided libraries for access to hardware such as the device PersistentStore and user interface elements. RIM has a unique approach to Web Apps by offering a Visual Studio plug-in to create RAD apps. BlackBerry devices also support MIDP apps.


Apple provides a full SDK for iPhone development that includes all the tools you will need to get started, but it is only available for OS X. Apps are written in Objective-C and make use of the Cocoa Touch library for UI. Anybody familiar with OSX programming will find themselves very much at home here. Web apps are supported on the iPhone, but Java ME is not.


Symbian supports a flavor of C++ for native development through the Eclipse-based Carbide.C++ IDE. Many Symbian devices also have support for OPL, Python, Visual Basic, Simkin, Perl, BREW, Ruby, Flash Lite, Java ME, and support for the .NET Compact Framework (.NETCF) via the commercial Net60. There are also plug-ins for Eclipse and Xcode. Symbian web apps are sandboxed so they have the advantage of not having to be Symbian Signed or certified like other Symbian OS apps.


All WebOS apps are web apps. The design of the OS allows these apps to take full advantage of the phone's capabilities. These apps are reated using HTML5 and Javascript. The Dojo-based Mojo SDK is not yet publicly available.

Windows Mobile

The Windows Mobile Environment will be immediately recognizable to anybody already familiar with Windows Development tools. The phone supports native apps written in C/C++ or managed code taking advantage of the .NETCF. The ability to run Java ME binaries is also present. Web Apps are not currently available but are coming in the next release of Windows Mobile (6.5) due out this year.

Search the blog

Henry is the Co-founder and CTO at Localytics. He loves cars and his dog, Thane.