Mobile device development is differentiated from desktop and Web application development primarily by the hardware and other system constraints of the device that the application will run on. Those constraints vary slightly from platform to platform. This guide focuses on resources to help application designers and developers learn about a cross section of some of the most promising platforms available.
Apple iOS
The Apple mobile devices, including the iPhone, iPod Touch and iPad, are giants in the consumer electronics world. Although first generation devices tend to fall short of many corporate needs, Apple products' ease of use and Steve Jobs' magic touch attract a cult following. The iPad in particular shows promise for uptake in enterprises -- and its innovative user interface is already influencing new application design.
Probably the best place to start when branching out into a new platform is to go straight to the source. The official
Requires Free Membership to View
When you register, you'll begin receiving targeted emails from my team of award-winning writers. Our goal is to keep you informed on recent service-oriented architecture (SOA) and SOA-related topics such as integration, governance, Web services, Cloud and more.
Hannah Smalltree, Editorial DirectorIt might also be a good idea to check out some blogs and forums dedicated to Apple development. The good folks over at Ajaxian.com have some excellent points about iPhone development and a blog from Jeff LaMarche, an expert programmer and author focused on the iPhone and Mac platforms, provides tips & tricks on reusable components, new loaders and various tutorials. Our good friend George Lawton contributed this tip on using JavaScript with the iPhone to create smart phone apps.
In order to to take advantage of the multi-touch features built into the iPhone, another good resource to explore is Apple's Cocoa Touch framework. It includes the UIKit for file handling, networking, string building, and other other basic functions. Cocoa Touch also include other frameworks for 3d graphics, networking, professional audio, networking, and specialized Objective C frameworks that reduce many complex tasks to a few lines of code.
Another great resource is the iCode blog, which provides
a wealth of information from basic tutorials to more advanced tips for taking advantage of the
special features of the iPhone and iPad platforms. ManiacDev.com also provides a range of tips on everything to
improving in-app purchases, to new libraries for iOS development.
Android Operating System
Android is a mobile OS based on Linux and championed by Google and the Open Handset Alliance.
Developers write managed code that uses Google libraries. The Android Developers site
provides the Android SDK, and a variety of tools to develop mobile apps on the Android platform.
The SDK is designed for use with Eclipse, but the SDK includes other tools for debugging, packaging
and installing applications on the emulator. The guide also includes tips on best practices, UI
Guidelines and designing for performance and responsiveness. It also includes tips on using Eclipse to
manage Android projects.
Developers might also consider checking out the official Android
Developers blog for the latest news and tips from Google. The Android Talk channel on YouTube provides a wide range of news,
tutorials and advice on development, marketing and market trends. Fred Grott's Android resources
for application development Knol article
provides links to various Android development libraries, using other programming languages for
Android development, and several Android development utilities. Over the past year or so, our
contributor William Brogden has given us a variety of Android related advice including these three
tips on Android
architecture, notes on developing
for the Android mobile platform and comparing
Android and Kindle development.
Windows Phone
Microsoft is now focusing its efforts on the Windows Phone OS for mobile services. This is a
major upgrade and does not directly support applications built for Windows CE and Windows Mobile 6.
Although there are quite a few Windows Mobile devices now in the field, Windows Phone 7 and its
successors will dominate for new smart phones. The actual growth and deployment of Windows Phone
devices has been much slower than iOS and Android. However, Nokia has committed to using the
Windows Phone operating system rather than Symbian for new smartphones.
The Windows Phone platform uses the Metro design language which focuses on a speedy interface with
clean typography rather than fancy graphics. Windows Phone applications are distributed via the Zune marketplace. Applications,
games and services designed to run natively for Windows Phone use either XNA or a Windows Phone
specific version of Silverlight. XNA is derived from Microsoft's Xbox New Architecture and is
oriented toward rich graphical applications and video games. It includes a rich set of class
libraries to make easier to reuse code across the various Microsoft platforms.
Developers who are already used to working with Windows on desktops will find many similarities as
they make the transition to mobile. According to the Windows Mobile Developer
Center, most of the development for Windows mobile applications is done using Visual Studio in
conjunction with the Windows Mobile SDK. These developer tools only run on Windows Vista and
subsequent versions of Windows.
Microsoft provides a wide range of resources for getting Windows Phone development projects off the
ground. The Windows Phone
Development Library includes documentation on the development platform, tips on getting
started, and a variety of learning resources on the platform, Silverlight and XNA Frameworks. It
also includes a guide to installing the Windows Phone
SDK.
Microsoft's App Hub provides tips on getting apps into
the Zune marketplace for both Windows Mobile and Xbox platforms. The Windows Phone Developer Blog provides news on
new tools, and tips on getting most out of the Metro design language, and improving the user
experience. The Windows Phone Geek, is one of the
largest outside blogs dedicated to the platform. It includes the latest development news, in-depth
articles on getting the most out of the platform and tips and tricks for improving the development
process.
As with other major mobile development platforms, Windows provides developers with a centralized
publishing solution. Windows' App Hub provides the necessary resources for creating and distributing applications on
the Windows Phone operating system. Also, the Windows Phone
Blog provides news and commentary from the folks who know Windows mobile development
best.
BlackBerry
Traditional development for Research in Motion's Blackberry phones has been targeted at the
BlackBerry Application Platform, which supports both Java and Web-based applications. More
recently, BlackBerry purchased QNX, a maker of high performance operating systems by the same name,
which is used in fault resistant applications like nuclear power plants, vehicles, and more
recently the BlackBerry Playbook. Although deployment of the various BlackBerry platforms has
lagged behind others, it has a strong enterprise focus on security, management and
communications.
The BlackBerry Developer Zone provides research
materials for application designers interested in all aspects of BlackBerry phone and table
development. The BlackBerry Developers Blog has
resources for getting started, forums for asking development questions, an issue tracker, and
stories about how companies are developing secure mobile apps in different industries. Serious
developers may consider checking out the BlackberryDevCon developer event, which brings together
developers interest in developing for the various BlackBerry platforms and tools.
IBM
developerWorks has developed a serious of tutorials on creating BlackBerry applications with
open source tools. The Crackberry blog covers general
BlackBerry news and reviews, as well as a tutorial on
getting started with app development. Developers with an Adobe background should check out the the
company's Blackberry app development
guide, which includes tutorials on getting started, and on using AIR, Flash, ActionScript to
develop BlackBerry apps.
Developers interested in QNX programming
can work with the BlackBerry Native SDK for Tablet, the BlackBerry Table OS SDK for Adobe AIR and
BlackBerry WebWorks SDK for Tablet OS. The native SDK promises faster performance with a C/C++
development environment that includes libraries for 3d gaming, harnessing the multi-core CPU,
multi-threading, multi-tasking. The WebWorks SDK allows you to create services using JavaScript,
HTML5, and CSS. This approach allows the same app to run on both the BlackBerry OS, and newer
devices running QNX.
The Symbian open source platform has been the world's most widely used smartphone platform. It grew out of Nokia's S40 and S60 platforms. However, it has lost some traction with the advent of the other mobile OSs and Nokia's decision to move to Windows Phone.
Most of the code is now available under the Eclipse Public License (EPL), although some of the code has not been made public yet and is still subject to the private Symbian Foundation License (SFL). The Symban Developer site provides more source code information, tools and kits, documentation and other information on the Symbian platform. If you're interested in developing for Symbian, you might also want to check out Nokia's Qt SDK.
This was first published in November 2010