Developing mobile apps–too many options?

It is unbelievable how many companies jumped on the mobile app development bandwagon.

In the early days life was easy. When you developed for iOS (iPhone, iPod Touch and iPad) you bought a Mac, downloaded XCode and started programming in Objective-C. For Android you grabbed a PC, downloaded the Android SDK and Java was your best friend. And for Windows Phone (yes it still exists) you downloaded a version of Visual Studio, the Windows Phone SDK and you started to hack away in good old C#.

The new trend for mobile apps that don’t ask too much from the platform (say non-game, and non-multimedia applications) is to develop them cross-platform without the need to rewrite the applications multiple times in different languages.

Wikipedia gives a nice overview of some of the available mobile application development platforms at And this overview is even far from complete.

Within the development platforms you see broadly two options for developing your cross-platform mobile apps:

  1. Development in one language for a native UI, where the interaction patterns are phone specific
  2. Development one one language for a cross-platform UI, where the interaction patterns are app specific

Of course there are all kind of mixes of the above two options, for example Appcelerator where you develop your code in Javascript with a platform independent API to create native UI elements, or a lot of JavaScript libraries like PhoneJS en KendoUI where you render web technology widgets using HTML, CSS and Javascript that try to behave like native widgets.

I am very interested in the Xamarin approach where you can use C# as the common app language, but create a native UI per platform. But I am also a strong believer of the “hybrid” development approach where you develop your application using HTML, CSS and Javascript, and wrap your “application” in a host application for packaging and deploying to the app stores.

In some following posts I will dive into a few of the development options for creating hybrid mobile applications using tooling like:

All above options have their roots in the Cordova project.

No Comments