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 http://en.wikipedia.org/wiki/Mobileapplicationdevelopment. And this overview is even far from complete.
Within the development platforms you see broadly two options for developing your cross-platform mobile apps:
- Development in one language for a native UI, where the interaction patterns are phone specific
- Development one one language for a cross-platform UI, where the interaction patterns are app specific
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.