Mobile development
Encyclopedia
Mobile application development is the process by which application software
is developed
for small low-power handheld devices such as personal digital assistant
s, enterprise digital assistant
s or mobile phone
s. These applications are either pre-installed
on phones during manufacture, or downloaded by customers from various mobile software distribution platforms.
, HP webOS, Symbian OS, and Windows Mobile
support typical application binaries as found on personal computers with code which executes in the native machine format of the processor (the ARM architecture
is a dominant design used on many current models). Windows Mobile
can also be compiled to x86 executables for debugging on a PC without a processor emulator, and also supports the Portable Executable
(PE) format associated with the .NET Framework
. Windows Mobile
, HP webOS and iOS offer free SDK
s and integrated development environment
s to developers.
which provides tools to allow a developer to write, test and deploy applications into the target platform environment.
The following table summarises the elements in each of the development environments.
is the process of executing a program with the intent of finding errors". Mobile application testing involves testing of mobile applications across various platforms.
The testing methods which are used for web based and desktop based applications are not sufficient to meet the testing needs of mobile application.
Following areas are crucial and differ from desktop or regular web applications:
Emulator
s provide inexpensive way to test the applications on mobile phones to which we may not have physical access.
Here is a list of free tools for testing application across the most popular mobile operating systems
.
It is Android Emulator which is patched to run on a Windows PC as a standalone app without having to download and install the complete and complex Android SDK, and can be even installed and Android compatible apps can be tested on it.
It includes a mobile device emulator which mimics all of the hardware
and software features of a typical mobile device (without the calls).
MobiOne Developer is a mobile Web
IDE
for Windows that helps developers to code, test, debug, package and deploy mobile Web application
s to devices such as iPhone
, Blackberry
, Android, and the Palm Pre
.
It is a web browser
based simulator for quickly testing iPhone
web applications. This tool has been tested and works using Internet Explorer 7
, Firefox 2 and Safari 3.
It gives a pixel
-accurate web browsing environment and it is powered by Safari
. It can be used while developing web sites for the iPhone
. It is not an iPhone simulator but instead is designed for web developers who want to create 320 by 480 (or 480 by 320) websites for use with iPhone.iPhoney will only run on Mac OS X
10.4.7 or later.
There are a variety of official BlackBerry simulators available to emulate the functionality of actual BlackBerry products. With any of the BlackBerry device simulators, we can test how the BlackBerry device software, screen, keyboard and trackwheel will work with application.
(OS) versions, or with other hardware and software configurations, there may be too many platform combinations to test exhaustively. In such situations, a weighted matrix of target platforms can make the number of test combinations manageable. Such target platform matrices are built as follows:
In general, it is a good idea to use some combination of real device and emulator testing, as recommended in the table below:
where HP / Palm, Inc webOS device users can download applications directly from the device or send a link to the application via a unique web distribution method. Recently, mobile operators such as Telefonica Group and Telecom Italia
have launched cross-platform
application stores for their subscribers.
asserted two of its four patents: U.S. Patent No. 7,620,565 ("the '565 patent") on a "customer-based design module" and U.S. Patent No. 7,222,078 ("the '078 patent") on "Methods and Systems for Gathering Information from Units of a Commodity Across a Network." against the following app developers:
Application software
Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with...
is developed
Software development
Software development is the development of a software product...
for small low-power handheld devices such as personal digital assistant
Personal digital assistant
A personal digital assistant , also known as a palmtop computer, or personal data assistant, is a mobile device that functions as a personal information manager. Current PDAs often have the ability to connect to the Internet...
s, enterprise digital assistant
Enterprise digital assistant
An enterprise digital assistant is a handheld computer, born of the personal digital assistant popularity which was adapted for extensive, more robust usage within the SME and Enterprise business applications as a data capture mobile device.Over the years, these business applications have grown...
s or mobile phone
Mobile phone
A mobile phone is a device which can make and receive telephone calls over a radio link whilst moving around a wide geographic area. It does so by connecting to a cellular network provided by a mobile network operator...
s. These applications are either pre-installed
Installation (computer programs)
Installation of a program is the act of putting the program onto a computer system so that it can be executed....
on phones during manufacture, or downloaded by customers from various mobile software distribution platforms.
Execution environments
Android, iOS, BlackBerryBlackBerry OS
BlackBerry OS is a proprietary mobile operating system, developed by Research In Motion for its BlackBerry line of smartphone handheld devices...
, HP webOS, Symbian OS, and Windows Mobile
Windows Mobile
Windows Mobile is a mobile operating system developed by Microsoft that was used in smartphones and Pocket PCs, but by 2011 was rarely supplied on new phones. The last version is "Windows Mobile 6.5.5"; it is superseded by Windows Phone, which does not run Windows Mobile software.Windows Mobile is...
support typical application binaries as found on personal computers with code which executes in the native machine format of the processor (the ARM architecture
ARM architecture
ARM is a 32-bit reduced instruction set computer instruction set architecture developed by ARM Holdings. It was named the Advanced RISC Machine, and before that, the Acorn RISC Machine. The ARM architecture is the most widely used 32-bit ISA in numbers produced...
is a dominant design used on many current models). Windows Mobile
Windows Mobile
Windows Mobile is a mobile operating system developed by Microsoft that was used in smartphones and Pocket PCs, but by 2011 was rarely supplied on new phones. The last version is "Windows Mobile 6.5.5"; it is superseded by Windows Phone, which does not run Windows Mobile software.Windows Mobile is...
can also be compiled to x86 executables for debugging on a PC without a processor emulator, and also supports the Portable Executable
Portable Executable
The Portable Executable format is a file format for executables, object code and DLLs, used in 32-bit and 64-bit versions of Windows operating systems. The term "portable" refers to the format's versatility in numerous environments of operating system software architecture...
(PE) format associated with the .NET Framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
. Windows Mobile
Windows Mobile
Windows Mobile is a mobile operating system developed by Microsoft that was used in smartphones and Pocket PCs, but by 2011 was rarely supplied on new phones. The last version is "Windows Mobile 6.5.5"; it is superseded by Windows Phone, which does not run Windows Mobile software.Windows Mobile is...
, HP webOS and iOS offer free SDK
Software development kit
A software development kit is typically a set of software development tools that allows for the creation of applications for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform.It may be something as simple...
s and integrated development environment
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
s to developers.
Platform development environment
Each of the platforms for mobile applications also has an integrated development environmentIntegrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
which provides tools to allow a developer to write, test and deploy applications into the target platform environment.
The following table summarises the elements in each of the development environments.
Programming language Programming language A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely.... |
Debuggers available | Emulator available | Integrated development environment Integrated development environment An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development... available |
Cross-platform deployment | Installer packaging options | Development tool cost | |
---|---|---|---|---|---|---|---|
Adobe AIR | Action Script, HTML HTML HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages.... , CSS CSS -Computing:*Cascading Style Sheets, a language used to describe the style of document presentations in web development*Central Structure Store in the PHIGS 3D API*Closed source software, software that is not distributed with source code... , JavaScript JavaScript JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles.... |
Flash Builder, Flash Professional | iOS (iPhone, iPad, iPod touch), Android, BlackBerry | The native distribution format of each platform | Flash Builder, Flash Professional - Commercial licenses available Adobe AIR SDK (command line tool) - Free | ||
Airplay SDK (Now Marmalade) | C C (programming language) C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.... , C++ C++ C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell... |
Visual Studio, XCode Xcode Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,... |
All native: Android, BlackBerry, BREW, iOS (iPhone), Maemo, Palm/webOS, Samsung bada, Symbian, Windows Mobile 6.x and desktop, OSX | The native distribution format of each platform | Commercial licenses available | ||
alcheMo | Java Java (programming language) Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities... |
Debugger integrated in Visual Studio, Eclipse or XCode | Emulator is available in corresponding IDE | Visual Studio, Eclipse Eclipse (software) Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system... , XCode Xcode Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,... |
Android, BREW, iOS (iPhone), Windows Mobile | The native distribution format of each platform | Commercial licenses available |
Android | Java Java (programming language) Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities... but portions of code can be in C C (programming language) C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.... , C++ C++ C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell... |
Debugger integrated in Eclipse, standalone debugging monitor available | Eclipse Eclipse (software) Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system... , Project Kenai Android plugin for NetBeans |
Android only, because of Dalvik VM, March 2009 | apk | Free | |
Application Craft | JavaScript, HTML5, CSS | , Emulator used is Ripple | Cloud Based IDE | All platforms: Android, iOS, Blackberry, Windows Mobile, Bada, WebOS, Symbian. Mobile, Desktop and Tablet | Cloud/ browser based | Free and Open Source | |
Appcelerator | JavaScript JavaScript JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles.... |
Yes, in Titanium Studio, currently in beta. | Emulator is available using 3rd party tools | Internal SDK | Android, iPhone; BlackBerry planned | The native distribution format of each platform | Apache 2.0 license, commercial licenses available |
Appception | HTML5, CSS CSS -Computing:*Cascading Style Sheets, a language used to describe the style of document presentations in web development*Central Structure Store in the PHIGS 3D API*Closed source software, software that is not distributed with source code... , JavaScript JavaScript JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles.... |
Cloud-based IDE | Android | The native distribution format of each platform | Free and Commercial licenses available | ||
appMobi | HTML5 (JavaScript,CSS3,HTML5) | Yes, XDK (Google Chrome App Store) | Yes, In XDK | Integrates with developer's preferred tool (VS, Notepad ++, VI) | iOs, Android, HTML5 Web Apps, HTML5 Hybrid Apps | The native distribution format of each platform | No Charge |
Aqua | C C (programming language) C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.... , C++ C++ C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell... , JavaScript JavaScript JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles.... |
Visual Studio, XCode Xcode Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,... , Eclipse Eclipse An eclipse is an astronomical event that occurs when an astronomical object is temporarily obscured, either by passing into the shadow of another body or by having another body pass between it and the viewer... |
Android, BlackBerry Playbook, iOS, Palm/webOS, Samsung bada, Windows Mobile 6.x, Windows Desktop | The native distribution format of each platform | Free & commercial licenses available | ||
Basic4android | Visual Basic Visual Basic Visual Basic is the third-generation event-driven programming language and integrated development environment from Microsoft for its COM programming model... |
Yes | Android | apk | Commercial licenses available | ||
BatteryTech | C C (programming language) C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.... , C++ C++ C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell... |
Native Platform Emulators (iOS, Android...) | Eclipse Eclipse (software) Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system... , Visual Studio, XCode Xcode Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,... |
Android, iOS (iPhone), Windows, OSX | The native distribution format of each platform | Commercial licenses available | |
Bedrock Metismo Metismo is a mobile middleware developer founded in August 2007 by John Chasey, Glenn Broadway, Nick Reed and Matthew Cope who previously had been employed at mobile game studio IOMO, a subsidiary of InfoSpace.... now webMethods Mobile Designer |
Java Java (programming language) Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities... |
Eclipse Eclipse (software) Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system... |
Java ME, Android, BREW, BlackBerry, Nintendo DS, iOS (iPhone/iPad), Palm/webOS, Sony PSP, Samsung bada, Symbian, Windows Mobile, Windows Phone 7, Windows Desktop, OSX | The native distribution format of each platform | Commercial licenses available | ||
BlackBerry BlackBerry BlackBerry is a line of mobile email and smartphone devices developed and designed by Canadian company Research In Motion since 1999.BlackBerry devices are smartphones, designed to function as personal digital assistants, portable media players, internet browsers, gaming devices, and much more... |
Java Java (programming language) Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities... |
Debugger integrated in IDE | Eclipse Eclipse (software) Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system... |
BlackBerry only, because of RIM API | alx, cod | Free | |
Blueprint | XML XML Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards.... routed through Yahoo Mobile servers and displayed in native browsers |
None beyond a schema check | N/A, translates to web or mobile as needed | N/A, any XML editor | N/A, translates to web or mobile as needed | Combined config upload at Yahoo with self-hosted dynamic XML Dynamic XML Dynamic XML means dynamic data that is in an XML format.Another popular use of this term also refers to information which is extracted from a database and placed into XML format. Clearly this is a completely different case as it does not involve any updates to the data – and is in fact static data... |
Any XML editor |
BREW | C C (programming language) C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.... ; the APIs are provided in C with a C++ style interface |
Debugger support for the native ARM target code.Can use Visual Studio to debug the x86 testing code | No Emulator for the target ARM code, has a simulator for the x86 testing code | Visual Studio 6.0, Visual Studio 2003 .NET, Visual Studio 2005 | Compile for the specific BREW version available on the handset | OTA Over-the-air programming Over-the-air programming refers to various methods of distributing new software updates or configuration settings to devices like cellphones and set-top boxes... |
Related dev fees typically needed for Brew App Certification - VeriSign annual fee for becoming a certified developer. Realview ARM compiler for BREW (the free GNU C/C++ is available, but with limited function and support). TRUE BREW testing fee for distributing the application. |
Canappi | mdsl, easy to learn programming language dedicated to mobile solutions, from which iOS, Android, ... code is generated | Native Platform Debuggers (iOS, Android...) | Native Platform Emulators (iOS, Android...) | Eclipse, with mdsl plugin, Apple Interface Builder and Balsamiq for graphical UI design | iOS, Android. Design tools like Interface Builder can be used in a cross-platform way. You create your GUI once in Interface Builder you generate code for all platform, all resolutions from a single file. | Native deployment for each platform | Free & commercial licenses available |
Celsius | Java Java (programming language) Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities... |
Eclipse Eclipse (software) Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system... |
Java ME, Android, BlackBerry, iPhone, Symbian, Windows Mobile | The native distribution format of each platform of a Java binary | Commercial licenses available | ||
CoStore | Web-based drag-and-drop | N/A | Web-based app builder | iOS, Android, HTML5 | Native deployment for each platform or web-based | Free unlimited trial; commercial licenses available for deployment | |
Corona SDK | Lua | Xcode Xcode Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,... |
iOS, Android, NOOK Color Nook Color The Nook Color is a color version of the Nook e-reader device by Barnes & Noble. It is a 7-inch tablet with full-color multitouch touchscreen input. The device is designed for full-color viewing of books, newspapers, magazines, and children's picture books... |
Native deployment for each platform | Free unlimited trial; commercial licenses available for deployment | ||
CrossMobs | C/C++ C (programming language) C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.... |
Visual Studio, Eclipse, Codeblocks, Xcode | iOS and Android | Native deployment for each platform | Commercial licenses available | ||
DragonRAD DragonRAD DragonRAD is a cross-platform mobile development tool for building, deploying, and managing enterprise mobile applications across a variety of smartphones and tablets. DragonRAD is developed by Seregon Solutions Inc. and was released in September 2010... |
Visual drag & drop tiles | Uses 3rd party emulators | Proprietary IDE | Android, BlackBerry, Windows Mobile | OTA deployment Over-the-air programming Over-the-air programming refers to various methods of distributing new software updates or configuration settings to devices like cellphones and set-top boxes... |
Free & commercial licenses available | |
FeedHenry | HTML HTML HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages.... , CSS CSS -Computing:*Cascading Style Sheets, a language used to describe the style of document presentations in web development*Central Structure Store in the PHIGS 3D API*Closed source software, software that is not distributed with source code... , JavaScript JavaScript JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles.... |
Studio includes full IDE and Eclipse Plug-in | Apple iPhone & iPad, Android, Windows Phone 7, Blackberry, Nokia WRT. | The native distribution format of each platform | Free, Professional and Enterprise Plans available | ||
Gideros Mobile | Lua | No | Proprietary IDE | iPhone IPhone The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007... , iPad IPad The iPad is a line of tablet computers designed, developed and marketed by Apple Inc., primarily as a platform for audio-visual media including books, periodicals, movies, music, games, and web content. The iPad was introduced on January 27, 2010 by Apple's then-CEO Steve Jobs. Its size and... , iPod Touch IPod Touch The iPod Touch is a portable media player, personal digital assistant, handheld game console, and Wi-Fi mobile device designed and marketed by Apple Inc. The iPod Touch adds the multi-touch graphical user interface to the iPod line... , Android |
The native distribution format of each platform | Free & commercial licenses available | |
iOS SDK | Objective-C Objective-C Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it... |
Debugger integrated in Xcode IDE | Bundled with iPhone SDK, integrated with Xcode IDE | Xcode Xcode Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,... |
iPhone IPhone The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007... , iPad IPad The iPad is a line of tablet computers designed, developed and marketed by Apple Inc., primarily as a platform for audio-visual media including books, periodicals, movies, music, games, and web content. The iPad was introduced on January 27, 2010 by Apple's then-CEO Steve Jobs. Its size and... , iPod Touch IPod Touch The iPod Touch is a portable media player, personal digital assistant, handheld game console, and Wi-Fi mobile device designed and marketed by Apple Inc. The iPod Touch adds the multi-touch graphical user interface to the iPod line... |
Only via App Store, needs review and approval by Apple Inc. | Tools are free for an Intel-based Mac. Simulator testing is free, but installing on a device needs a fee for a developer signing key |
iOS SDK | Object Pascal Object Pascal Object Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Embarcadero Delphi.-Early history at Apple:... |
Debugger integrated in Xcode IDE | Included in Delphi XE2 professional or higher | Embarcadero Delphi XE2 | iPhone IPhone The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007... , iPad IPad The iPad is a line of tablet computers designed, developed and marketed by Apple Inc., primarily as a platform for audio-visual media including books, periodicals, movies, music, games, and web content. The iPad was introduced on January 27, 2010 by Apple's then-CEO Steve Jobs. Its size and... , iPod Touch IPod Touch The iPod Touch is a portable media player, personal digital assistant, handheld game console, and Wi-Fi mobile device designed and marketed by Apple Inc. The iPod Touch adds the multi-touch graphical user interface to the iPod line... |
Only via App Store, needs review and approval by Apple Inc. | Development requires Intel-based Mac besides the IDE on Windows. Design is on Windows, Compilation and deployment has to be done on Mac. Simulator testing is free, but installing on a device needs a fee for a developer signing key |
Java ME | Java Java (programming language) Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities... |
Free emulator, Sun Java Wireless Toolkit, mpowerplayer Mpowerplayer mpowerplayer is a technology-startup company based in Reston, Virginia, just outside Washington, D.C.. The company offers a solution for the video game industry to enable their customers to browse and demo mobile games on their web browser before buying them... |
Eclipse Eclipse (software) Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system... , LMA NetBeans NetBeans NetBeans refers to both a platform framework for Java desktop applications, and an integrated development environment for developing with Java, JavaScript, PHP, Python, Groovy, C, C++, Scala, Clojure, and others... Mobility Pack |
Yes although many VM implementations have device specific bugs necessitating separate builds | Jad JAD (file format) Java Application Descriptor files describe the MIDlets that are distributed as JAR files. JAD files are commonly used to package Java applications or games that can be downloaded to mobile phones... /Jar JAR (file format) In software, JAR is an archive file format typically used to aggregate many Java class files and associated metadata and resources into one file to distribute application software or libraries on the Java platform.JAR files are built on the ZIP file format and have the .jar file extension... packaging; PRC files under Palm OS |
Free | |
JMango | JMango | N/A | N/A | JMango Flash IDE | Java ME, Android, Bada, BlackBerry, iPhone, Windows Mobile 6, Windows Phone 7 | The native distribution format of each platform | Free |
July Systems Mi™ Platform | Java, HTML, Groovy, Freemarker, Java Script | IDE – Eclipse with GUI Editor | iOS, Android, Blackberry, WP7, Mobile Web, HTML5, QT | Native distribution format for each platform | Commercial licenses available | ||
Kony | Graphical Drag and Drop | Yes, utilizes Native Platform Emulators( iOS, Android, BlackBerry BlackBerry BlackBerry is a line of mobile email and smartphone devices developed and designed by Canadian company Research In Motion since 1999.BlackBerry devices are smartphones, designed to function as personal digital assistants, portable media players, internet browsers, gaming devices, and much more... , Windows Phone 7 Windows Phone 7 Windows Phone is a mobile operating system developed by Microsoft, and is the successor to its Windows Mobile platform, although incompatible with it. Unlike its predecessor, it is primarily aimed at the consumer market rather than the enterprise market... ) |
Eclipse Eclipse (software) Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system... -based |
Yes. Support for full OS-native, hybrid, and wrapper applications. Includes Android, BlackBerry BlackBerry BlackBerry is a line of mobile email and smartphone devices developed and designed by Canadian company Research In Motion since 1999.BlackBerry devices are smartphones, designed to function as personal digital assistants, portable media players, internet browsers, gaming devices, and much more... , iOS, Java ME, Palm/webOS, Symbian, Windows Phone 7 Windows Phone 7 Windows Phone is a mobile operating system developed by Microsoft, and is the successor to its Windows Mobile platform, although incompatible with it. Unlike its predecessor, it is primarily aimed at the consumer market rather than the enterprise market... . Mobile web browser support (WML through to device-optimized HTML5) |
The native distribution format of each platform | Commercial licenses available | |
Lazarus Lazarus (software) Lazarus is a free cross-platform IDE which provides a Delphi-like development experience for Pascal and Object Pascal developers. It is developed for, and supported by, the Free Pascal compiler. Since early 2008, Lazarus has been available for Microsoft Windows, several Linux distributions,... |
Object Pascal Object Pascal Object Pascal refers to a branch of object-oriented derivatives of Pascal, mostly known as the primary programming language of Embarcadero Delphi.-Early history at Apple:... |
Yes, can debug in IDE via ActiveSync for Windows CE | Uses the emulators of the platforms | Lazarus IDE Lazarus (software) Lazarus is a free cross-platform IDE which provides a Delphi-like development experience for Pascal and Object Pascal developers. It is developed for, and supported by, the Free Pascal compiler. Since early 2008, Lazarus has been available for Microsoft Windows, several Linux distributions,... , including integrated GUI designer and debugger |
Compiled language Compiled language A compiled language is a programming language whose implementations are typically compilers , and not interpreters .... available for Windows CE Windows CE Microsoft Windows CE is an operating system developed by Microsoft for embedded systems. Windows CE is a distinct operating system and kernel, rather than a trimmed-down version of desktop Windows... , Linux-based devices, SymbianOS port in development |
The native distribution format of each platform | Free |
Macromedia Flash Lite | ActionScript ActionScript ActionScript is an object-oriented language originally developed by Macromedia Inc. . It is a dialect of ECMAScript , and is used primarily for the development of websites and software targeting the Adobe Flash Player platform, used on Web pages in the form of... |
Bundled with IDE | Macromedia Flash MX2004/8, Eclipse | SIS / CAB deployment or OTA Over-the-air programming Over-the-air programming refers to various methods of distributing new software updates or configuration settings to devices like cellphones and set-top boxes... /IR/Bluetooth SWF files |
Varies, free but limited with MTASC MTASC MTASC is an ActionScript 2.0 compiler written in the Objective Caml programming language by the company Motion-Twin. It is free software and can be used alone or with other tools like swfmill to produce SWF files, which contain interactive multimedia content playable with the Flash Player... |
||
Microbrowser Microbrowser A mobile browser, also called a microbrowser, minibrowser, or wireless internet browser , is a web browser designed for use on a mobile device such as a mobile phone or PDA. Mobile browsers are optimized so as to display Web content most effectively for small screens on portable devices... based |
XHTML XHTML XHTML is a family of XML markup languages that mirror or extend versions of the widely-used Hypertext Markup Language , the language in which web pages are written.... (WAP Wireless Application Protocol Wireless Application Protocol is a technical standard for accessing information over a mobile wireless network.A WAP browser is a web browser for mobile devices such as mobile phones that uses the protocol.Before the introduction of WAP, mobile service providers had limited opportunities to offer... 2.0), WML Wireless Markup Language Wireless Markup Language , based on XML, is a markup language intended for devices that implement the Wireless Application Protocol specification, such as mobile phones. It provides navigational support, data input, hyperlinks, text and image presentation, and forms, much like HTML... (WAP Wireless Application Protocol Wireless Application Protocol is a technical standard for accessing information over a mobile wireless network.A WAP browser is a web browser for mobile devices such as mobile phones that uses the protocol.Before the introduction of WAP, mobile service providers had limited opportunities to offer... 1.2) |
Many | Many | Basic page rendering with per page customizations for different browsers | N/A | Free | |
Meme IDE | Memescript easy to learn programming language | Validation is provided in the problems view | Yes, Android emulator can be integrated | Eclipse Eclipse (software) Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system... RCP |
Android, Windows Mobile Windows Mobile Windows Mobile is a mobile operating system developed by Microsoft that was used in smartphones and Pocket PCs, but by 2011 was rarely supplied on new phones. The last version is "Windows Mobile 6.5.5"; it is superseded by Windows Phone, which does not run Windows Mobile software.Windows Mobile is... |
The native distribution format if each platform | Free for development |
MobiAccess MobiAccess MobiAccess is a cross-platform mobile development framework. It is based on a proprietary programming language, somewhat similar to C#, compiled to various mobile platforms... |
CoBaBe, easy to learn and dedicated to mobile solutions. Six platform in one language. Very similar to .net | No | Yes, only Windows (Apple upcoming) | MobiAccess - proprietary IDE, internal SDK | iOS (iPhone, iPad,), Android, BlackBerry, WP7, Windows Mobile, PDA, Qt (Linux, Symbian) | The Native Distribution format for all platforms | Free and Commercial licenses available |
MobiFlex | Visual drag & drop tiles | N/A | N/A, runs on phone in seconds | Web Portal, comes with data management add-ins | Android, iPhone | N/A | Free for development only |
MobileNationHQ | Visual paradigm/javascript | N/A | N/A instant cloud-based deployment | Integrated SaaS environment | Android, iPhone | N/A | Free and Commercial licenses available |
Moscrif | JavaScript JavaScript JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles.... |
N/A | Bundled with Moscrif SDK | Internal SDK (Mono based) | All native: Android, iOS (iPhone), Samsung bada, Symbian, Windows Mobile | The native distribution format of each platform | Free & commercial licenses available |
Mono for Android | C# | Visual Studio 2005 and MonoDevelop | Android | The native distribution format of the platform | |||
MonoTouch | C# | Visual Studio 2005 and MonoDevelop | iOS | The native distribution format of the platform | |||
MoSync MoSync MoSync is an OS-independent virtual platform and software development kit for mobile applications. It is integrated with the Eclipse development environment, and is provided as a cross-platform mobile development SDK under the GPL version 2 license.... |
C C (programming language) C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.... , C++ C++ C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell... , Lua, HTML5 , CSS, JavaScript |
Eclipse, Visual Studio 2005 and later, MoBuild w/ text editors | Android, Java ME, Moblin, iOS (iPhone), Smartphone 2003, Symbian, Windows Mobile (Pocket PC), Blackberry (experimental) | SIS, CAB, JAD, JAR, APK, OTA Over-the-air programming Over-the-air programming refers to various methods of distributing new software updates or configuration settings to devices like cellphones and set-top boxes... deployment |
Free, GPL 2.0, Free Indie Subscription; commercial subscription available | ||
NeoMAD | Java Java (programming language) Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities... |
Uses 3rd party emulators | Eclipse and Netbeans plugin | Java ME, Android, BlackBerry, Windows Phone 7, iOS (iPhone) and Samsung bada coming soon | The native distribution format of each platform | Commercial licenses available | |
.NET Compact Framework .NET Compact Framework The Microsoft .NET Compact Framework is a version of the .NET Framework that is designed to run on resource constrained mobile/embedded devices such as personal digital assistants , mobile phones, factory controllers, set-top boxes, etc... |
C#, VB.NET Visual Basic .NET Visual Basic .NET , is an object-oriented computer programming language that can be viewed as an evolution of the classic Visual Basic , which is implemented on the .NET Framework... , Basic4ppc Basic4ppc Basic4ppc is a programming language for Smartphones and Pocket PC handheld computers running Windows Mobile operating system, by Anywhere software... |
Free emulator, source code available, also bundled with IDE | Visual Studio 2008, 2005, 2003, Basic4ppc Basic4ppc Basic4ppc is a programming language for Smartphones and Pocket PC handheld computers running Windows Mobile operating system, by Anywhere software... IDE |
Windows Mobile Windows Mobile Windows Mobile is a mobile operating system developed by Microsoft that was used in smartphones and Pocket PCs, but by 2011 was rarely supplied on new phones. The last version is "Windows Mobile 6.5.5"; it is superseded by Windows Phone, which does not run Windows Mobile software.Windows Mobile is... , Windows CE, Symbian-based devices via third party tools |
OTA Over-the-air programming Over-the-air programming refers to various methods of distributing new software updates or configuration settings to devices like cellphones and set-top boxes... deployment, CAB files, ActiveSync |
Most tools free, but commercial editions of Visual Studio needed for visual designers | |
NS BASIC/App Studio | Visual Basic Visual Basic Visual Basic is the third-generation event-driven programming language and integrated development environment from Microsoft for its COM programming model... |
No, Test in Chrome or Safari Browser | Proprietary IDE | iPhone, iPad, iPad Touch, Android 2.1+ | Java Web App or native deployment using Phonegap | Evaluation Version & Commercial Licenses available | |
OpenPlug OpenPlug OpenPlug is a French company focused on mobile applications development tools and software for mobile phones. The company was founded in August 2002 by Eric Baissus and David Lamy-Charrier... |
ActionScript ActionScript ActionScript is an object-oriented language originally developed by Macromedia Inc. . It is a dialect of ECMAScript , and is used primarily for the development of websites and software targeting the Adobe Flash Player platform, used on Web pages in the form of... , XML XML Extensible Markup Language is a set of rules for encoding documents in machine-readable form. It is defined in the XML 1.0 Specification produced by the W3C, and several other related specifications, all gratis open standards.... |
OpenPlug ELIPS plugin for Adobe Flash Builder | Android, iOS (iPad, iPhone, iPod Touch), Symbian, Windows Mobile | The native distribution format of each platform | Free & commercial licenses available | ||
Palm OS Palm OS Palm OS is a mobile operating system initially developed by Palm, Inc., for personal digital assistants in 1996. Palm OS is designed for ease of use with a touchscreen-based graphical user interface. It is provided with a suite of basic applications for personal information management... |
C C (programming language) C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.... , C++ C++ C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell... , Pascal Pascal (programming language) Pascal is an influential imperative and procedural programming language, designed in 1968/9 and published in 1970 by Niklaus Wirth as a small and efficient language intended to encourage good programming practices using structured programming and data structuring.A derivative known as Object Pascal... |
OS 1.0 - 4.1: Free Emulator provided by PalmSource (Access); OS 5.0: - 5.4 Device-specific Simulators provided by Palm (palmOne) | Palm OS Development System (Eclipse), CodeWarrior CodeWarrior CodeWarrior is an integrated development environment for the creation of software that runs on a number of embedded systems. Prior to the acquisition of the product by Freescale Semiconductor, versions existed for Macintosh, Microsoft Windows, Linux, Solaris, PlayStation 2, Nintendo GameCube,... , PocketStudio PocketStudio PocketStudio by Winsoft is an IDE supporting rapid application development for Palm OS and related operating systems like Garnet OS or Access Linux Platform... , HB++, Satellite Forms |
Palm OS Palm OS Palm OS is a mobile operating system initially developed by Palm, Inc., for personal digital assistants in 1996. Palm OS is designed for ease of use with a touchscreen-based graphical user interface. It is provided with a suite of basic applications for personal information management... handhelds, or Windows Mobile with StyleTap emulator |
PRC PRC (Palm OS) PRC is a container format for code databases in Palm OS, Garnet OS and Access Linux Platform. Its structure is similar to PDB databases. Usually, a PRC file is a flat representation of a Palm OS application that is stored as forked database on the PDA.... files, PalmSource Installer (.psi) |
Free (POSE or GCC for Palm OS), or commercial (CodeWarrior), or various commercial rapid-development frameworks | |
Particle SDK | Java Java (programming language) Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities... , ActionScript ActionScript ActionScript is an object-oriented language originally developed by Macromedia Inc. . It is a dialect of ECMAScript , and is used primarily for the development of websites and software targeting the Adobe Flash Player platform, used on Web pages in the form of... |
Eclipse Eclipse (software) Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system... plugin with GUI editor |
Android, BlackBerry, iOS, webOS, and Windows Phone 7 mobile devices plus Flash, HTML5 web apps | The native distribution format of each platform | Currently in free beta. Commercial license will be available. | ||
PhoneGap PhoneGap PhoneGap is an open-source mobile development framework developed by Nitobi Software. It enables software programmers to build applications for mobile devices using JavaScript, HTML5 and CSS3, instead of often less-known languages such as Objective-C... |
HTML HTML HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages.... , CSS CSS -Computing:*Cascading Style Sheets, a language used to describe the style of document presentations in web development*Central Structure Store in the PHIGS 3D API*Closed source software, software that is not distributed with source code... , JavaScript JavaScript JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles.... |
No, 3rd party tools | No, 3rd party tools | iPhone, Android, BlackBerry, Symbian, Palm | The native distribution format of each platform | MIT license | |
Python Python (programming language) Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive... |
Python Python (programming language) Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive... |
Add-on to Nokia Emulator | Several, including plugins for Eclipse Eclipse (software) Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system... |
Interpreted language Interpreted language Interpreted language is a programming language in which programs are 'indirectly' executed by an interpreter program. This can be contrasted with a compiled language which is converted into machine code and then 'directly' executed by the host CPU... available natively only on Nokia Series60 (and desktops) though ports exist to other mobile platforms, including PalmOS |
Sis deployment with py2sis or can use Python Runtime | Free | |
Qt SDK | C++ C++ C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell... , QML QML QML is a JavaScript-based, declarative language for designing user interface–centric applications. It is part of Qt Quick, the UI creation kit developed by Nokia within the Qt framework... |
Qt Creator Qt Creator Qt Creator is a cross-platform C++ integrated development environment which is part of the Qt SDK. It includes a visual debugger and an integrated GUI layout and forms designer. The editor's features includes syntax highlighting and autocompletion, but not tabs. Qt Creator uses the C++ compiler... |
Symbian platform, Maemo Maemo Maemo is a software platform developed by the Maemo community for smartphones and Internet tablets. It is based on the Debian Linux distribution, but has no relation to it... , MeeGo, Linux Linux Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds... , Windows, Mac OS X Mac OS X Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems... |
The native distribution format of each platform | Free & commercial licenses available | ||
Resco MobileForms Toolkit | C# | Visual Studio | Windows Mobile (Pocket PC), Windows CE, Android, iOS, Smartphone | The native distribution format of each platform | Free & commercial licenses available | ||
Rhomobile Rhodes Framework is a framework for building native applications that can run on a variety of smartphones. It is released under the MIT license. Rhodes uses a Model View Controller pattern. Views are written in HTML . Controllers are written in Ruby.... |
Ruby Ruby (programming language) Ruby is a dynamic, reflective, general-purpose object-oriented programming language that combines syntax inspired by Perl with Smalltalk-like features. Ruby originated in Japan during the mid-1990s and was first developed and designed by Yukihiro "Matz" Matsumoto... with HTML HTML HyperText Markup Language is the predominant markup language for web pages. HTML elements are the basic building-blocks of webpages.... interface features compiled through an interpreter into native applications. |
N/A, applications can run in Win32 runner, or in device emulators for supported platforms. | xCode or Eclipse, on-demand RhoHub version includes full IDE | Yes, supports iOS (incl. 3.0) on iPhone and iPad, Windows Mobile 6.1 Professional, Mobile Windows 6.0 Standard, BlackBerry 4.6, 4.7, 5.0, 6.0 (BlackBerry 4.2 and 4.5 supported but database access is very slow on these devices), Symbian and Android 1.6 and higher | OTA Over-the-air programming Over-the-air programming refers to various methods of distributing new software updates or configuration settings to devices like cellphones and set-top boxes... deployment, iOS through App store, .SIS, .CAB, .APK, .COD |
Rhodes is free and open source under the MIT License, RhoSync is under GPL or commercial, Commercial support available. Subscription for RhoHub | |
Smartface Platform Smartface Smartface Platform is drag-and-drop cross-platform mobile application development and management tool from Mobinex, and first released on 2006. Smartface Designer, the component of Smartface Platform enables visual development of mobile applications with drag-and-drop actions and interactive wizards... |
Drag-and-drop tools and action editing | No, not needed | Smartface Designer | Yes: Android, BlackBerry, J2ME, Symbian S60 | The native distribution format of each platform | Community licenses available | |
Symbian Symbian Symbian is a mobile operating system and computing platform designed for smartphones and currently maintained by Accenture. The Symbian platform is the successor to Symbian OS and Nokia Series 60; unlike Symbian OS, which needed an additional user interface system, Symbian includes a user... |
C++ C++ C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell... |
Free Emulator | Many choices Symbian Symbian is a mobile operating system and computing platform designed for smartphones and currently maintained by Accenture. The Symbian platform is the successor to Symbian OS and Nokia Series 60; unlike Symbian OS, which needed an additional user interface system, Symbian includes a user... |
Compile per target | SIS deployment | Commercial and free tools available | |
TotalCross | Java Java (programming language) Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities... |
Eclipse Eclipse (software) Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system... , TKN Mobile Studio for TotalCross |
Android, BlackBerry, iOS (iPhone, iPad), Palm OS, Windows Mobile. Windows Phone 7, Symbian planned | The native distribution format of each platform (cab, jad, apk, pdb/prc, deb) | SDK is open source and free for desktop development. VM for target devices must be licensed | ||
WebORB Integration Server WebORB Integration Server WebORB is an integration server developed and maintained by Midnight Coders Incorporated. It is used in SOA/Rich Internet Application development projects to connect browser clients and mobile clients with backend services and databases... |
C#,VB.NET, Java, PHP, ActionScript, JavaScript, Objective-C, XML | Uses emulator for corresponding mobile SDKs | Works with Eclipse, Visual Studio, intelliJ IDEA and Amethyst IDE | Android, iOS (iPhone/iPad), BlackBerry Playbook, Windows Phone7 | The native distribution format of each platform | Free development licenses; Free and Commercial deployment licenses | |
webOS | JavaScript, CSS, HTML, C and C++ through the PDK | Free emulator | Eclipse Eclipse (software) Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system... |
webOS, Palm only | OTA Over-the-air programming Over-the-air programming refers to various methods of distributing new software updates or configuration settings to devices like cellphones and set-top boxes... deployment, webOS through App store, Web URL, Precentral, .ipk |
Free | |
WinDev Mobile | WLanguage | WinDev Mobile, Android DSK | Android, Windows Mobile Windows Mobile Windows Mobile is a mobile operating system developed by Microsoft that was used in smartphones and Pocket PCs, but by 2011 was rarely supplied on new phones. The last version is "Windows Mobile 6.5.5"; it is superseded by Windows Phone, which does not run Windows Mobile software.Windows Mobile is... |
OTA Over-the-air programming Over-the-air programming refers to various methods of distributing new software updates or configuration settings to devices like cellphones and set-top boxes... deployment, apk, CAB files, ActiveSync |
Commercial licenses available | ||
Windows Mobile Windows Mobile Windows Mobile is a mobile operating system developed by Microsoft that was used in smartphones and Pocket PCs, but by 2011 was rarely supplied on new phones. The last version is "Windows Mobile 6.5.5"; it is superseded by Windows Phone, which does not run Windows Mobile software.Windows Mobile is... |
C C (programming language) C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.... , C++ C++ C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell... |
Free emulator (source code available), also bundled with IDE | Visual Studio 2010, 2008, 2005, eMbedded VC++ (free), Satellite Forms | Windows Mobile Windows Mobile Windows Mobile is a mobile operating system developed by Microsoft that was used in smartphones and Pocket PCs, but by 2011 was rarely supplied on new phones. The last version is "Windows Mobile 6.5.5"; it is superseded by Windows Phone, which does not run Windows Mobile software.Windows Mobile is... , Windows FU, Windows CE |
OTA Over-the-air programming Over-the-air programming refers to various methods of distributing new software updates or configuration settings to devices like cellphones and set-top boxes... deployment, CAB files, ActiveSync |
Free command-line tools or eMbedded VC++, or Visual Studio (Standard edition or better) | |
Windows Phone Windows Phone Windows Phone is a mobile operating system developed by Microsoft, and is the successor to its Windows Mobile platform, although incompatible with it. Unlike its predecessor, it is primarily aimed at the consumer market rather than the enterprise market... |
C# | Free emulator, also bundled with IDE | Visual Studio 2010 | Windows Phone Windows Phone Windows Phone is a mobile operating system developed by Microsoft, and is the successor to its Windows Mobile platform, although incompatible with it. Unlike its predecessor, it is primarily aimed at the consumer market rather than the enterprise market... |
OTA Over-the-air programming Over-the-air programming refers to various methods of distributing new software updates or configuration settings to devices like cellphones and set-top boxes... deployment, XAP files |
||
Worklight | Choice of standard HTML5, CSS CSS -Computing:*Cascading Style Sheets, a language used to describe the style of document presentations in web development*Central Structure Store in the PHIGS 3D API*Closed source software, software that is not distributed with source code... and JavaScript JavaScript JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles.... , native languages or a combination of both |
Bundled with the IDE as well as device SDK integration | Eclipse Eclipse (software) Eclipse is a multi-language software development environment comprising an integrated development environment and an extensible plug-in system... -based plug-in |
Yes, supports Android, BlackBerry BlackBerry BlackBerry is a line of mobile email and smartphone devices developed and designed by Canadian company Research In Motion since 1999.BlackBerry devices are smartphones, designed to function as personal digital assistants, portable media players, internet browsers, gaming devices, and much more... , iOS and Windows Phone 7 Windows Phone 7 Windows Phone is a mobile operating system developed by Microsoft, and is the successor to its Windows Mobile platform, although incompatible with it. Unlike its predecessor, it is primarily aimed at the consumer market rather than the enterprise market... , as well as modern mobile browsers for web apps |
The native distribution format of each platform | Downloadable free evaluation version, commercial licenses available | |
Fivespark | Web-based point and click | N/A | Preview in desktop browser | Web-based app builder | Android, BlackBerry BlackBerry BlackBerry is a line of mobile email and smartphone devices developed and designed by Canadian company Research In Motion since 1999.BlackBerry devices are smartphones, designed to function as personal digital assistants, portable media players, internet browsers, gaming devices, and much more... , iOS and Windows Phone 7 Windows Phone 7 Windows Phone is a mobile operating system developed by Microsoft, and is the successor to its Windows Mobile platform, although incompatible with it. Unlike its predecessor, it is primarily aimed at the consumer market rather than the enterprise market... plus other modern mobile browsers |
HTML5 OTA | Free for development |
Tiggr - Mobile Apps Builder | Web-based, visual editor, HTML5, CSS CSS -Computing:*Cascading Style Sheets, a language used to describe the style of document presentations in web development*Central Structure Store in the PHIGS 3D API*Closed source software, software that is not distributed with source code... , JavaScript JavaScript JavaScript is a prototype-based scripting language that is dynamic, weakly typed and has first-class functions. It is a multi-paradigm language, supporting object-oriented, imperative, and functional programming styles.... , jQuery Mobile JQuery Mobile jQuery Mobile is a touch-optimized web framework currently being developed by the jQuery project team. The development focuses on creating a framework compatible with a wide variety of smartphones and tablets, made necessary by the growing-but-heterogenous tablet and smartphone market... , PhoneGap PhoneGap PhoneGap is an open-source mobile development framework developed by Nitobi Software. It enables software programmers to build applications for mobile devices using JavaScript, HTML5 and CSS3, instead of often less-known languages such as Objective-C... |
Yes, in special debug window | No need, test right in browser or device | Web-based, can also export to Eclipse or Maven project | Mobile Web Mobile Web The Mobile Web refers to the use of Internet-connected applications, or browser-based access to the Internet from a mobile device, such as a smartphone or tablet computer, connected to a wireless network.... (HTML/JS/CSS), iOS, Android, BlackBerry BlackBerry BlackBerry is a line of mobile email and smartphone devices developed and designed by Canadian company Research In Motion since 1999.BlackBerry devices are smartphones, designed to function as personal digital assistants, portable media players, internet browsers, gaming devices, and much more... , Windows Phone 7 Windows Phone 7 Windows Phone is a mobile operating system developed by Microsoft, and is the successor to its Windows Mobile platform, although incompatible with it. Unlike its predecessor, it is primarily aimed at the consumer market rather than the enterprise market... |
The native distribution format of each platform or mobile Web Mobile Web The Mobile Web refers to the use of Internet-connected applications, or browser-based access to the Internet from a mobile device, such as a smartphone or tablet computer, connected to a wireless network.... (HTML/JS/CSS) |
In free beta, subscription will be available in the future |
Definition
"TestingSoftware testing
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...
is the process of executing a program with the intent of finding errors". Mobile application testing involves testing of mobile applications across various platforms.
Need For Mobile Application Testing
Mobile Application Testing is one of the most important parts of mobile application development life cycle and the possibility of errors in the coding cannot be ignored. The mobile applications today deliver complex functionalities on platforms that have limited resource for computing, so testing needs to keep up to ensure quality.The testing methods which are used for web based and desktop based applications are not sufficient to meet the testing needs of mobile application.
Types of testing supported
- Compatibility testingCompatibility testingCompatibility testing, part of software non-functional tests, is testing conducted on the application to evaluate the application's compatibility with the computing environment...
, Interoperability testing & Automation testing from hardware perspective. - Performance testingPerformance testingIn software engineering, performance testing is in general testing performed to determine how a system performs in terms of responsiveness and stability under a particular workload...
, Stress testingStress testingStress testing is a form of testing that is used to determine the stability of a given system or entity. It involves testing beyond normal operational capacity, often to a breaking point, in order to observe the results...
, Reliability testing, Functional testingFunctional testingFunctional testing is a type of black box testing that bases its test cases on the specifications of the software component under test. Functions are tested by feeding them input and examining the output, and internal program structure is rarely considered .Functional testing differs from system...
, Security testingSecurity TestingSecurity testing is a process to determine that an information system protects data and maintains functionality as intended.The six basic security concepts that need to be covered by security testing are: confidentiality, integrity, authentication, availability, authorization and non-repudiation...
, Load testingLoad testingLoad testing is the process of putting demand on a system or device and measuring its response. Load testing is performed to determine a system’s behavior under both normal and anticipated peak load conditions. It helps to identify the maximum operating capacity of an application as well as any...
, Localization testingLocalization testingLocalization testing is a part of software testing process focused on internationalization and localization aspects of software. Localization is the process of adapting a globalized application to a particular culture/locale...
& Usability TestingUsability testingUsability testing is a technique used in user-centered interaction design to evaluate a product by testing it on users. This can be seen as an irreplaceable usability practice, since it gives direct input on how real users use the system...
from end user perspective. - Compatibility testingCompatibility testingCompatibility testing, part of software non-functional tests, is testing conducted on the application to evaluate the application's compatibility with the computing environment...
- iPhoneIPhoneThe iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007...
, Android, BlackberryBlackberryThe blackberry is an edible fruit produced by any of several species in the Rubus genus of the Rosaceae family. The fruit is not a true berry; botanically it is termed an aggregate fruit, composed of small drupelets. The plants typically have biennial canes and perennial roots. Blackberries and...
, Windows, Palm OSPalm OSPalm OS is a mobile operating system initially developed by Palm, Inc., for personal digital assistants in 1996. Palm OS is designed for ease of use with a touchscreen-based graphical user interface. It is provided with a suite of basic applications for personal information management...
, Symbian OS from OS perspective. - Data exchange and Synchronization testing, Communication testing (other types of testings involved).
Following areas are crucial and differ from desktop or regular web applications:
- 1. User Interface Testing:
- User Interface of mobile devices is unique consisting of smaller screens that can be touchscreens and soft keyboards with navigation methods like hard keys, trackballs, and track wheels.
- 2. External Factors Testing:
- Testing the impact of external factors like various network connections, SD card interactions,interrupts and miscellaneous device settings is important. Network connections may of type 2G2G2G is short for second-generation wireless telephone technology. Second generation 2G cellular telecom networks were commercially launched on the GSM standard in Finland by Radiolinja in 1991...
, 3G3G3G or 3rd generation mobile telecommunications is a generation of standards for mobile phones and mobile telecommunication services fulfilling the International Mobile Telecommunications-2000 specifications by the International Telecommunication Union...
, Wi-fiWi-FiWi-Fi or Wifi, is a mechanism for wirelessly connecting electronic devices. A device enabled with Wi-Fi, such as a personal computer, video game console, smartphone, or digital audio player, can connect to the Internet via a wireless network access point. An access point has a range of about 20...
connection, network through USB connection. It is important to test an application's behavior both in the presence and absence of SD card and the application should indicate if the SD card is missing. Interrupts like phone calls and miscellaneous device settings must also be taken into consideration. Other interrupts are text messages, notifications like low battery, social media notifications (Facebook, Twitter), alarm clock, calender events.
- Testing the impact of external factors like various network connections, SD card interactions,interrupts and miscellaneous device settings is important. Network connections may of type 2G
- 3. Stress testing|Stress Testing:
- Mobile applications have resource constraints compared to desktop applications like low device memory and power available. Efficient use of these resources becomes important.
- Stress testing is of utmost important to uncover possible exceptions,deadlocks,hangs which might not get detected during functional and UI testing.
- 4. Security Testing:
- It is important to test mobile web application security, security of sensitive data and behavior of application under various device permissions. Some issues related with security which differ from desktop applications at device level are:
- Most of the mobile devices have a concept of one user. There is no switching between users, different user permissions, different user profiles.
- configuring password or unlock pattern is up to user.
- There is no guarantee that the user will configure their Wi-Fi to be secure. As a result, any communication of sensitive data should be done over SSL/TLSTransport Layer SecurityTransport Layer Security and its predecessor, Secure Sockets Layer , are cryptographic protocols that provide communication security over the Internet...
. - The essential encryption should be done at application level because device won't handle it.
- Application footprint testing should be done. It comprises of making hash files of device file structure with fingerprint analysis using tools like md5deepMd5deepmd5deep is a software package used in the computer security, system administration and computer forensics communities for purposes of running large numbers of files through any of several different cryptographic digests...
and ExamDiffExamDiff ProExamDiff Pro is a software utility for visual file comparison and directory comparison. ExamDiff Pro runs on Microsoft Windows.ExamDiff Pro features a double-pane view that allows for side-by-side comparisons, with color-coded line numbers indicating whether each line is added, deleted, or changed...
. - The permission configuration of devices should also be taken into considerations while designing test cases. It should ensure that the application gets access to required device areas and if it doesn't then application must notify user to set permissions properly.
- It is important to test mobile web application security, security of sensitive data and behavior of application under various device permissions. Some issues related with security which differ from desktop applications at device level are:
- 5. Compatibility Testing:
- It ensures that the application works as intended with the selected device, OS , screen size, display and internal hardware. Interoperability Testing is a superset of compatibility testingCompatibility testingCompatibility testing, part of software non-functional tests, is testing conducted on the application to evaluate the application's compatibility with the computing environment...
and integration testing.
- It ensures that the application works as intended with the selected device, OS , screen size, display and internal hardware. Interoperability Testing is a superset of compatibility testing
- 6. Power consumption Testing:
- Mobile applications may cause battery drainage.Device settings also can be responsible for drainage of battery life. It makes difficult to determine if the mobile application or the settings are the cause.
- For instance, Nokia Energy profiler is a stand-alone test and measurement application which enables to monitor the battery consumption on target device.
- Mobile applications may cause battery drainage.Device settings also can be responsible for drainage of battery life. It makes difficult to determine if the mobile application or the settings are the cause.
- 7. Automated Testing:
- It is done using an emulator and a performance testingPerformance testingIn software engineering, performance testing is in general testing performed to determine how a system performs in terms of responsiveness and stability under a particular workload...
tool.- For instance, eggPlantEggplant (GUI testing tool)Eggplant is a black-box GUI test automation tool, originally developed by Redstone Software starting in 2002. Redstone was acquired in 2008 by a UK-based company called TestPlant....
is a QAQuality AssuranceQuality assurance, or QA for short, is the systematic monitoring and evaluation of the various aspects of a project, service or facility to maximize the probability that minimum standards of quality are being attained by the production process...
automation and software testing product.
- For instance, eggPlant
- It is done using an emulator and a performance testing
Testing using Emulators
The application is first tested within the development environment using emulators.Later it is subjected to field testing.Emulator
Emulator
In computing, an emulator is hardware or software or both that duplicates the functions of a first computer system in a different second computer system, so that the behavior of the second system closely resembles the behavior of the first system...
s provide inexpensive way to test the applications on mobile phones to which we may not have physical access.
Here is a list of free tools for testing application across the most popular mobile operating systems
Mobile operating system
A mobile operating system, also known as a mobile OS, mobile software platform or a handheld operating system, is the operating system that controls a mobile device or information appliance—similar in principle to an operating system such as Windows, Mac OS X, or Linux distributions that controls a...
.
- Google Android Emulator
It is Android Emulator which is patched to run on a Windows PC as a standalone app without having to download and install the complete and complex Android SDK, and can be even installed and Android compatible apps can be tested on it.
- Official Android SDK Emulator
It includes a mobile device emulator which mimics all of the hardware
Hardware
Hardware is a general term for equipment such as keys, locks, hinges, latches, handles, wire, chains, plumbing supplies, tools, utensils, cutlery and machine parts. Household hardware is typically sold in hardware stores....
and software features of a typical mobile device (without the calls).
- MobiOne
MobiOne Developer is a mobile Web
Mobile Web
The Mobile Web refers to the use of Internet-connected applications, or browser-based access to the Internet from a mobile device, such as a smartphone or tablet computer, connected to a wireless network....
IDE
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
for Windows that helps developers to code, test, debug, package and deploy mobile Web application
Web application
A web application is an application that is accessed over a network such as the Internet or an intranet. The term may also mean a computer software application that is coded in a browser-supported language and reliant on a common web browser to render the application executable.Web applications are...
s to devices such as iPhone
IPhone
The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007...
, Blackberry
Blackberry
The blackberry is an edible fruit produced by any of several species in the Rubus genus of the Rosaceae family. The fruit is not a true berry; botanically it is termed an aggregate fruit, composed of small drupelets. The plants typically have biennial canes and perennial roots. Blackberries and...
, Android, and the Palm Pre
Palm Pre
The Palm Pre is a multimedia smartphone designed and marketed by Palm with a multi-touch screen and a sliding keyboard. The smartphone was the first to use Palm's Linux based mobile operating system, webOS...
.
- TestiPhone
It is a web browser
Web browser
A web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier and may be a web page, image, video, or other piece of content...
based simulator for quickly testing iPhone
IPhone
The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007...
web applications. This tool has been tested and works using Internet Explorer 7
Internet Explorer 7
Windows Internet Explorer 7 is a web browser released by Microsoft in October 2006. Internet Explorer 7 is part of a long line of versions of Internet Explorer and was the first major update to the browser in more than 5 years...
, Firefox 2 and Safari 3.
- iPhoney
It gives a pixel
Pixel
In digital imaging, a pixel, or pel, is a single point in a raster image, or the smallest addressable screen element in a display device; it is the smallest unit of picture that can be represented or controlled....
-accurate web browsing environment and it is powered by Safari
Safari
A safari is an overland journey, usually a trip by tourists to Africa. Traditionally, the term is used for a big-game hunt, but today the term often refers to a trip taken not for the purposes of hunting, but to observe and photograph animals and other wildlife.-Etymology:Entering the English...
. It can be used while developing web sites for the iPhone
IPhone
The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007...
. It is not an iPhone simulator but instead is designed for web developers who want to create 320 by 480 (or 480 by 320) websites for use with iPhone.iPhoney will only run on Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
10.4.7 or later.
- BlackBerry Simulator
There are a variety of official BlackBerry simulators available to emulate the functionality of actual BlackBerry products. With any of the BlackBerry device simulators, we can test how the BlackBerry device software, screen, keyboard and trackwheel will work with application.
Weighted Device Platform Matrix Method
End-to-end testing mimics real-world use of the application in a complete environment. For example, it may include interacting with a database, a network, hardware, or other applications. If the application is meant to run with multiple platforms, i.e. on multiple devices or Operating SystemOperating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
(OS) versions, or with other hardware and software configurations, there may be too many platform combinations to test exhaustively. In such situations, a weighted matrix of target platforms can make the number of test combinations manageable. Such target platform matrices are built as follows:
- Define the important platform parameters.
- For example, an application targeting multiple devices and multiple OS versions (or other software configurations) would have each as a platform matrix parameter.
- Arrange the platform parameters with independently variable parameters on different matrix dimensions.
- For example, hardware models may be on the vertical dimension and OS versions along the horizontal dimension, as in the table below.
- Along each matrix dimension, weight the relative importance of each platform parameter.
- For example, the importance of testing a particular device model may be may be based on its anticipated sales.
- Weight each platform combination in the matrix using a function of the combined importance parameters.
- For example, multiply the relative importance as in the table below to determine the platform weight. The resulting weight indicates the degree of end-to-end test coverage required.
Device/OS | Relative Importance | Windows CE Windows CE Microsoft Windows CE is an operating system developed by Microsoft for embedded systems. Windows CE is a distinct operating system and kernel, rather than a trimmed-down version of desktop Windows... | Windows mobile Windows Mobile Windows Mobile is a mobile operating system developed by Microsoft that was used in smartphones and Pocket PCs, but by 2011 was rarely supplied on new phones. The last version is "Windows Mobile 6.5.5"; it is superseded by Windows Phone, which does not run Windows Mobile software.Windows Mobile is... vs 2003 | Windows mobile Windows Mobile Windows Mobile is a mobile operating system developed by Microsoft that was used in smartphones and Pocket PCs, but by 2011 was rarely supplied on new phones. The last version is "Windows Mobile 6.5.5"; it is superseded by Windows Phone, which does not run Windows Mobile software.Windows Mobile is... vs 2005 | Palm OS Palm OS Palm OS is a mobile operating system initially developed by Palm, Inc., for personal digital assistants in 1996. Palm OS is designed for ease of use with a touchscreen-based graphical user interface. It is provided with a suite of basic applications for personal information management... | Symbian OS |
---|---|---|---|---|---|---|
Relative Importance | 5 | 4 | 9 | 6 | 4 | |
Symbol PPT 8800 | 7 | 35 | 42 | 63 | N/A | N/A |
HP iPAQ 2100 series | 9 | 45 | 54 | 81 | N/A | N/A |
Tungsten E2 | 5 | N/A | N/A | N/A | 30 | 20 |
Tungsten T5 | 6 | N/A | N/A | N/A | 36 | 24 |
HP iPAQ 1900 series | 7 | 35 | 42 | 63 | N/A | N/A |
High Importance | |
Medium Importance | |
Low Importance | |
Combination not available |
Tools
- FoneMonkey: This is a free Mobile Application Testing tool for iPhone applications
- Robotium: This is an automation tool for Android Mobile Application
- SikuliSikuliSikuli is a visual technology to automate and test graphical user interfaces using images of the software under test. Sikuli Script is a visual scripting API for Jython. Sikuli IDE is an integrated development environment for writing visual Sikuli scripts with screenshots. Sikuli Script can...
: This is a visual technology to automate and test graphical user interfaces (GUI) using images. - Deviceanywhere: This is an automation tool for Mobile Application across all platforms, all devices.
- MITE: A Mobile content testing and validation tool for Mobile Web application.
Challenges
- 1) Possibility of field failures:
- With testing using simulators and emulators,even if we can simulate some aspects of the application, the handset for example, we can’t be sure what happens when we try it over a real wireless networkWireless networkWireless network refers to any type of computer network that is not connected by cables of any kind. It is a method by which homes, telecommunications networks and enterprise installations avoid the costly process of introducing cables into a building, or as a connection between various equipment...
. This results in many field failures.
- With testing using simulators and emulators,even if we can simulate some aspects of the application, the handset for example, we can’t be sure what happens when we try it over a real wireless network
- 2) Emerging mobile technologies:
- Now mobile devices are of different screen sizes. They have various input methods like QWERTYQWERTYQWERTY is the most common modern-day keyboard layout. The name comes from the first six letters appearing in the topleft letter row of the keyboard, read left to right: Q-W-E-R-T-Y. The QWERTY design is based on a layout created for the Sholes and Glidden typewriter and sold to Remington in the...
, touch, normal.They also differ in platforms. For example, Android from Google Inc., BlackberryBlackberryThe blackberry is an edible fruit produced by any of several species in the Rubus genus of the Rosaceae family. The fruit is not a true berry; botanically it is termed an aggregate fruit, composed of small drupelets. The plants typically have biennial canes and perennial roots. Blackberries and...
OS from RIMResearch In MotionResearch In Motion Limited or RIM is a Canadian multinational telecommunications company headquartered in Waterloo, Ontario, Canada that designs, manufactures and markets wireless solutions for the worldwide mobile communications market...
, iOSIOSiOS is an operating system for iPad, iPhone, iPod Touch, and Apple TV.IOS may also refer to:-Companies and organisations:* Illinois Ornithological Society, American state-based bird club...
from Apple Inc., SymbianSymbianSymbian is a mobile operating system and computing platform designed for smartphones and currently maintained by Accenture. The Symbian platform is the successor to Symbian OS and Nokia Series 60; unlike Symbian OS, which needed an additional user interface system, Symbian includes a user...
OS from Symbian Foundation, BREW from QualcommQualcommQualcomm is an American global telecommunication corporation that designs, manufactures and markets digital wireless telecommunications products and services based on its code division multiple access technology and other technologies. Headquartered in San Diego, CA, USA...
are present. Testing on every device is not possible. Inconsistency in terms of functionality might be there while deploying the application across various devices and platforms.
- Now mobile devices are of different screen sizes. They have various input methods like QWERTY
- 3) Automation not easy:
- Automation saves a lot of time by enabling the execution of repetitive tests with the help of computers. In the case of mobile applications, it is difficult to automate even the mundane tests due to the inherent constraints of hardware like less memory and poor processing power on which these applications execute. The tests have to be executed manually. This demands more manual testing resource and time. To minimize the number of tests, test case prioritization based on risk becomes increasingly important.
Keys to successful testing
- One should understand the network landscape and device landscape. After that one should find out bottlenecks.
- The application must be tested in uncontrolled real-world test conditions. This is also called Field testing. It is must for multi-tier applications.
- One should selecting the appropriate automation test tool. The decision can be made based on:
- One tool that supports all desired platforms.
- The tool that supports testing for various screen types, resolutions, and input mechanisms — such as touchpadTouchpadA touchpad is a pointing device featuring a tactile sensor, a specialized surface that can translate the motion and position of a user's fingers to a relative position on screen. Touch pads are a common feature of laptop computers, and they are also used as a substitute for a mouse where desk...
and keypadKeypadA keypad is a set of buttons arranged in a block or "pad" which usually bear digits, symbols and usually a complete set of alphabetical letters. If it mostly contains numbers then it can also be called a numeric keypad...
. - The tool should be connected to the external system to carry out end-to-end testing.
- Weighted Device Platform Matrix method is useful where the number of test cases is huge.It can be used to optimize them.
- End-to-end functional flow of the application across all possible platforms is also important.
- Even if, it is possible to have performance testing, GUI testing, and compatibility testing on actual devices, they should also be tested on actual devices.
- Conditions like wireless traffic and user load which arise on actual device should be taken into consideration while measuring performance.
In general, it is a good idea to use some combination of real device and emulator testing, as recommended in the table below:
Type of testing | Using devices | Using emulators | Automated testing |
---|---|---|---|
Unit Testing | No | Yes | No |
Integration Testing | No | Yes | No |
System Testing | Yes | No | No |
Regression Testing | Yes | No | Yes |
Compatibility Testing | Yes | No | Yes |
GUI Testing | Yes | No | No |
Performance Testing | Yes | No | Yes |
Security Testing | Yes | No | Yes |
Synchronization Testing | Yes | No | No |
Application stores
Several initiatives exist both from mobile vendor and mobile operators around the world. Application developers can propose and publish their applications on the stores, being rewarded by a revenue sharing of the selling price. Most famous is Apple's App Store, where only approved applications may be distributed and run on iOS devices (otherwise known as a walled garden). HP / Palm, Inc have also created the Palm App CatalogPalm App Catalog
The Palm App Catalog is an online marketplace for applications for Palm mobile devices running webOS but not Palm OS.The App Catalog is similar to Apple's App Store for iOS, Google's Android Market for Android, and Nokia's Ovi Store for Nokia devices...
where HP / Palm, Inc webOS device users can download applications directly from the device or send a link to the application via a unique web distribution method. Recently, mobile operators such as Telefonica Group and Telecom Italia
Telecom Italia
Telecom Italia is the largest Italian telecommunications company, also active in the media and manufacturing industries. Now a private concern listed on the Borsa Italiana, it was founded in 1994 by the merger of several state-owned telecommunications companies, the most important of which was...
have launched cross-platform
Cross-platform
In computing, cross-platform, or multi-platform, is an attribute conferred to computer software or computing methods and concepts that are implemented and inter-operate on multiple computer platforms...
application stores for their subscribers.
Patents
There are numerous patent applications pending for new mobile phone apps. Most of these are in the technological fields of Business methods, Database management, Data transfer and Operator interface.Patent Enforcement
On May 31, 2011, LodsysLodsys
Lodsys, LLC is a company located in Marshall, Texas. The company has been accused of patent trolling. On May 13, 2011, it was reported that they had demanded that a number of iOS application developers obtain licenses from them. Apple has written to Lodsys stating that Apple's licenses protect...
asserted two of its four patents: U.S. Patent No. 7,620,565 ("the '565 patent") on a "customer-based design module" and U.S. Patent No. 7,222,078 ("the '078 patent") on "Methods and Systems for Gathering Information from Units of a Commodity Across a Network." against the following app developers:
- Combay
- Iconfactory
- Illusion LabsIllusion labs- Games :Illusion Labs have produced a number of games for different platforms.* iPint* Labyrinth* Labyrinth 2* Labyrinth 2 HD* Sway* Touchgrind* Touchgrind HD* Foosball* Foosball HD* Touchgrind BMX...
- Shovelmate
- Quickoffice
- Richard Shinderman of Brooklyn, New York
- Wulven Games of Hanoi, Vietnam
See also
- List of digital distribution platforms for mobile devices
- Mobile application managementMobile application managementMobile Application Management describes software and services that accelerate and simplify the creation of internally-developed or “in-house” enterprise mobile applications...
- Mobile business intelligenceMobile business intelligenceMobile Business Intelligence refers to the distribution of business data to mobile devices such as smartphones and tablet computers...
- Mobile computingMobile computingMobile computing is a form of human–computer interaction by which a computer is expected to be transported during normal usage. Mobile computing has three aspects: mobile communication, mobile hardware, and mobile software...
- Mobile Device TestingMobile Device TestingMobile-device testing is the process to assure the quality of mobile devices, like mobile phones, PDAs, etc. The testing will be conducted on both hardware and software...
- Mobile games
- Mobile MarketingMobile MarketingMobile marketing can refer to one of two categories of interest. First, and relatively new, is meant to describe marketing on or with a mobile device, such as a cell phone using SMS Marketing....
- MoSoSoMoSoSoMoSoSo is a class of mobile applications which scope is to support social interaction among interconnected mobile users. The basic idea of a MoSoSo is to overlay a location and time element to the idea of digital networking...
, Mobile Social Software - On-Device PortalOn-Device PortalOn-Device Portals allow mobile phone users to easily browse, purchase and use mobile content and services. An ODP platform enables operators to provide a consistent and branded on-device experience across their broadening portfolio of services and typically provides on-device catalogs of content...
- WURFL and WALLWurflWURFL stands for Wireless Universal Resource FiLe. It is a community effort focused on mobile device detection: the problem of presenting content on the wide variety of wireless devices. WURFL is a set of proprietary API's and an XML configuration file which contains information about device...
- JQuery MobileJQuery MobilejQuery Mobile is a touch-optimized web framework currently being developed by the jQuery project team. The development focuses on creating a framework compatible with a wide variety of smartphones and tablets, made necessary by the growing-but-heterogenous tablet and smartphone market...