The post has also been picked up by a number of other well known mobile blogs including Dean Bubley at Disruptive Analysis, Patrick at Just Another Mobile Monday, Stefan at IntoMobile and others all of whom are adding to the conversation.
For future trends in mobile development there has been a lot of discussion around the web as platform with proponents saying its solves distribution and fragmentation problems. However, aside from obvious capability issues, web as a platform has its own variations on the usual problems:
- Browser fragmentation exists too and causes some of the same issues as platform fragmentation (e.g. Apple iPhone web application are hit and miss on the S60 Browser yet they share the same rendering engine). Good developers can of course get round this by allowing for this in the way they develop, but precisely the same thing can be said about other development methodologies. With multiple platform a given on mobile for the foreseeable future we're going to have browser fragmentation too.
- People tend to think of the web and widgets as a universal platform, but it is not really true. Pure web applications are fragmented by browsers (and by add-ons such as Google Gears), widgets are not always compatible (e.g. S60's WRT versus Widsets vs Yahoo Widgets). It is fair to say these all use the same technologies and are therefore easier to port between, but native development is going that way too with the likes of Open C and Qt.
- Distribution and marketing can be just as tricky - getting people to a website may be easier than getting them to install an application. However once installed a native application is probably easier to access than a web based one (fewer access barriers). Incidentally this is one of the stronger arguments for Widgets (packaging web as a platform in a native application shell). The distribution and marketing issue is a universal one, each type of mobile development has its won strengths and weakness', but the basic issue is customer awareness and customer discovery.
I still think web as platform will be hugely important in the future and for certain type of applications it is the way to go. However I also think there is a current tendency to over value web as a platform (in the near term at least). Arguably the same thing happened with native mobile application development, with Java and with others.
My view is that mobile development has evolved as mobile device have evolved. Open software platforms are starting to reach the stage of (relative) maturity. The importance of the OS and UI layer as a source of innovation is decreasing reflecting this maturity. More activity is now focused around the software and service layer than ever before. I see Nokia's Ovi strategy as being emblematic of this. As such I think there are more opportunities in mobile development than there ever have been before as the scope of what is possible widens. An enabler of this trend is a proliferation in run time technologies of which the web is just one.
Each run time has its on benefits and weakness and each has a place because it is the best solution for a particular problem. I see mobile development as having a continuum of development types. For S60 we might consider Symbian C++, Open C, Python, Java ME, Flash Lite, WRT, Web. Developer should pick the best tool for the job.
|Symbian C++||Deeper system integration, application performance.
Multimedia applications, Complex Productivity Applications, DRM and Security
||Advantages of native, but increased portability,Applications using open source components or with common application logic across multiple platforms.
Database systems (Berkley DB), Telephony Services (SIP Stack), Games (N-Gage)?
|Python||Rapid prototyping, low learning curve, used in academic institutions. May allow web based applications to integrate with system (e.g. Mobile Web Server).
Cross- platform on mobile, but fragmented implementations. Performance issues. SWT introduces native look and feel, but at portability cost.
||Designing user interfaces and graphically rich applications. Allows designers into mobile development space.
Branded applications, basic games?
||Combines web with some system integration (WRT). Expands potential developer pool.
Informational and transaction based applications?
||Web as platform
Best for connected applications that are transactional in nature?
S60 is also moving towards a transparent consumer model - the idea that all applications are accessed and behave in a similar way. The idea is that the technology an application uses (be it native C++, WRT or Flash Lite) is invisible to the user. All applications have an icon in the application launcher, all can be multi-tasked, all have a similar look and feel (or the potential too).
A similar story can be found, or will be found on other platforms.
Thus I think current trends in mobile development are less about the death of native applications and more about the need for developers to show increasing flexibility in the tools they choose to use.
The other benefit of a maturing market is that the numbers of customers are starting to become very significant. S60 announced 150 million cumulative device shipments. Actual users on the S60 3rd Edition is of course less, but annual sale volumes are trending strongly upwards. 2008 will see 70-75 million S60 device sold - a significant user base in itself.
But there is still a discovery problem. I've yet to see the universal answer to it and I wonder if there even is one.