InfoQ's research widget has been deprecated and is no longer available.
Since the impact of mobile applications is ubiquitous in the whole IT industry, there are numerous ways to create an app. In this community-driven research initiative, we are examining the importance and adoption level of different tools and tool-stacks to create a mobile application.
We decided to cluster the various ways to build apps into different technologies and within those those clusters into actual products or implementations.
How do you add a mobile channel to your application landscape?
Native toolkits
- Apple Xcode (iOS): Apples full featured development environment lets you create mobile apps as well as desktop applications. Xcode comes with integrated support for Git source-code repositories, graphical editor to build user interfaces, instrumentation and debugging tooling and integrated documentation. You need Mac OS X to run XCode and it is free of charge.
- IntelliJ AppCode (iOS): Jetbrains, creator of IntelliJ IDEA, also offers an Objective-C development environment. Just like their Java IDE, AppCode comes with elaborate refactoring capabilities, on-the-fly code analysis, debugging and more. You can download a trial version or buy licenses from $89.
- Android Sudio (Android): Also based on IntelliJ IDEA, there is Android Studio. Android Studio contains Gradle build support, Lint tools, Pro-Guard app-signing tools and template-based wizards for common application components. Currently, Android Studio can be downloaded free as an early bird version.
- Android Developer Tools for Eclipse (Android): With the help of the Android Developer Tools (ADT) plugin, Eclipse gains full support for Android app development. Besides offering Android-specific coding support, ADT lets developers use various on-device debugging tools, a graphical UI builder, emulators or fully scriptable test automation support. The ADT plugin is free.
- Microsoft Visual Studio Express (Windows Phone): Microsoft offers a variant of Visual Studio for developing Windows Phone applications with .NET. Visual Studio Express offers approved Visual Studio functionality together with Windows Phone specific tooling like a graphical UI builder or phone emulator. There is a 90-day trial version of Visual Studio which can be run on Microsoft Windows 8 (x64).
- Windows Phone App Studio (Windows Phone): Windows Phone App Studio is an online service designed to create Windows Phone applications without the need to write actual code. It is based on a selection of pre-designed application templates, widgets and data-sources. Apps can easily be downloaded onto a local device or published on the app store. After creating an app online on the website, App Studio generates code which can be further edited by developers. App Studio is free to use.
Hybrid frameworks & runtimes
- Adobe PhoneGap / Apache Cordova (cross-platform, hybrid): Apache Cordova is an open-source framework to run HTML/JavaScript based applications inside a special native container on the mobile device. Native device functionality is exposed via JavaScript APIs and HTML based applications can thus access device specific functionality like sensors or camera. PhoneGap uses Cordova as its core and lets developers even build their applications in the cloud without the need of installing a native SDK. Basic PhoneGap functionality and Apache Cordova are free of charge.
- Adobe Flex (cross-platform, app engine): Besides PhoneGap, Adobe also offers Flex for creating mobile applications. Apps can be developed using Adobe Flash Builder and can access native device capabilities. Flash Builder assists the development process with code templates and generation, signature tooling and debugging support. Flash Builder Premium is available for Mac OS and Windows for $699.
- Unity (cross-platform, app engine): Focused on gaming, Unity also lets developers create applications for numerous platforms with a single code-base. Besides enhanced built-in support for audio, animation or physics, Unity hosts an asset shop to buy application fragments. Unity can be purchased for $1500 or used on a monthly base for $75/month.
- AppGuyver Steroids.js (cross platform, hybrid): Steroids.js can be used to create cross-platform HTML5 based application like PhoneGap and also uses Apache Cordova as its core. To extend Cordovas functionality and increase performance it offers access to native UI components, navigation and animation. Steroids.js is free, additional cloud based services for automatic app store updates or ad-hoc sharing of apps can be purchased.
HTML 5 & JavaScript based frameworks
- jQuery Mobile: jQuery Mobile is a JavaScript framework for creating touch enabled HTML5 websites. The sites are automatically responsive and can be used on broad range of phones and tablets. jQuery Mobile is open source and free to use.
- Sencha Touch: Similar to jQuery Mobile, Sencha Touch offers a wide range of ready-to-use HTML widgets to create complete HTML5 applications. Sencha is focused on high-performance and strives to deliver native user-experience. The pure Sencha Touch framework is free whereas license fees for the Sencha Touch bundle including standard support start from $695.
- Dojo Mobile: The Dojo toolkit is a MVC framework including data binding to create mobile apps. It comes with various pre-defined widgets like sliders or switches and includes theming for popular mobile platforms to provide native look and feel. It can be used with PhoneGap to package an application and publish it in the app stores. Using Dojo is free.
Cross-compilation & generating
- Xtend (Android): Xtend is a Java dialect which compiles to Java source-code. Include generation features let developers create applications for the Android platform without the need for boiler-plate code.
- Apportable Developers can write their applications in Objective-C for iOS and cross-compile them to Android with Apportable. Apportable does not use any virtual machines or emulator but generates native machine code for Android devices. A limited set of functionality can be used for free, full feature sets must be purchased on a yearly basis.
- Xamarin: Like Apportable, Xamarin lets developers create applications for multiple platforms with one code base. Apps can be written in C# and are cross-compiled to native Android or iOS binaries. It is even possible to use device specific APIs and functionality from within C# code. Besides a free starter plan, Xamarin must be licensed on yearly basis.
Complete solution stacks
- Appcelerator: Appcelerator Titanium not only offers a feature reach JavaScript API and MBC framework to build HTML5 based mobile apps. It also includes an integrated development environment and a mobile backend-as-a-service (MBaaS) platform. Developers can use Titanium to build and distribute mobile apps and connect them to various services like SAP or PayPal by using the secure and scalable MBaaS. Appcelerator can be used for free by individual developers, enterprise plans vary depending on SLAs and functionality.
- IBM Worklight: Applications in the IBM Worklight eco-system are hybrid HTML5 / JavaScript apps using frameworks like Dojo, Sencha, jQuery and PhoneGap. Worklight also includes feature rich development and management tools and access to cloud-based backend services. Prices depend on installation platforms and number of mobile clients.
- SAP Mobile Platform: SAP Mobile Platform offers support for development and administration of mobile applications that have access to SAP enterprise systems. It is possible to create B2B, B2E and B2C apps on various technology stacks.
- Salesforce1: Just like SAP, Salesforce offers an integrated app system to connect to Salesforce services. Apps can be built as native, hybrid and HTML5 applications or by leveraging existing mobile apps.