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
JDE on Windows only |
Yes |
Yes |
iPhone |
Objective-C + Cocoa Touch Library
|
No | |
Symbian |
Native C++
Managed solutions also available
|
Yes | |
WebOS |
Mojo SDK
|
Native apps are web apps |
No |
Windows Mobile |
Native C/C++ using Visual Studio |
Yes |
Android
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.
BlackBerry
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.
iPhone
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
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.
WebOS
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.

RSS Feed