Lately there has been quite a vivid discussion about the future of mobile applications, whether they dead or not. Personally I'm somewhere in between; mobile solutions have their market but the time is over when mobile application development was the wizard's work. Or maybe the same applies to mobile applications that was the case when Frank Zappa characterized jazz-music:
"Mobile applications are not dead, they just smell funny"
My top reason why mobile applications should be considered dead is that developing the mobile application no longer differs from development for other platforms. You are able to create the mobile solution using the same methodologies as "normal" web applications. In case you haven't noticed, there has been a huge improvement on usability of mobile browsing - you can forget the native application development unless you have a very good reason not to use a browser. In fact, the native application development becomes analogous to device driver development in desktop world. Somebody must do that to keep the wheels spinning, but does it have to be you? Just in case that web development isn't enough, there is an increasing number of runtimes available in mobile terminals - the same runtimes that you would use in desktop development.
On the other hand, mobile applications are alive and kicking because of the nature of the device. Unlike a desktop browser, mobile browser is with user all the time and everywhere. Clearly the use cases and needs are different in mobile world, but isn't that more psychology than engineering? When the required solution features are identified, the implementation is very much as the desktop browser development.
Some time ago I realized what the "new" mobile (browsing) development resembles: mobile versions and localizations are very close each other, because:
- In desktop world browser implementation is the first assumption and if it is clearly not feasible, then an installable application will be created (when was the last time you wrote an installable PC-application?). In mobile world the order should be the same.
- You wouldn't create a new solution just for one locale and language, would you? You wouldn't create a new solution just for one screen size, would you?
- If you don't design the implementation with new localizations in mind, you must do extra work when localizing your application - the following localizations are easier. If you don't design the implementation with mobile devices in mind, you must do extra work when mobilizing your application first time - supporting new devices is then a lot easier.
I have a feeling that I must write more about this topic...//Harri