One of the most interesting talks at Blogtalk 2010 conference a few weeks ago was the presentation "Apps are bad" by Ronan Skehill. The basic point that the speaker was making was that the best choice of target platform for the developers of mobile applications was the web rather than developing a "native application" for any particular mobile device platform. His reasons for saying this were the fact that there are too many different mobile platforms to keep up with andf in any case it is now possible to develop very high quality web apps that give just as good a user experience as any native application.
As part of the discussion thast followed the presentation some people raised the fact that you would categorise platforms differently depending upon whether you are a developer or a user.
From the developers point of view of developers they might categorise platforms based upon one of these:
People used to speak of Linux as a potential target platform, but this is not really a single operating system. For example, if you read the list of Linux distributions on wikipedia it is several pages long. To make thinks even more complex, there is a complex set of ways to view the dependencies between these distributions as you can see from the page which compares the various Linux distributions which typically gets several edits per day.
Ronan's advice is to develop as much as possible of your application using web programming methods and only use native interfaces when absolutely necessary. There exist a number of application development environments such as Appcelerator Titanium which allow developers to develop applications for mobile platforms that combine the portability and ease of development of web applications with the power of a native application.
By co-incidence I also heard a talk recently from the Velocity conference (via IT conversations) which was talking about the MITE platform which seems like a very impressive system that allows people to monitor how the performance of their mobile applications are performing as seen by a number of different device types on a number of networks. I have not personally used this tool, but I have experienced applications which theoretically work on a particular device but in practice they don't actually work for users on 3G networks because the network is so slow that the application keeps timing out.
As part of the discussion thast followed the presentation some people raised the fact that you would categorise platforms differently depending upon whether you are a developer or a user.
From the developers point of view of developers they might categorise platforms based upon one of these:
- Operating system: Windows, Linux, Mac OS ..
- Browser: IE, Firefox, Safari, Opera ....
- Device Form Factor: Desktop, Laptop, netbook, tablet, smartphone ....
- Price
- Size/Weight
- Colour
- Brand
People used to speak of Linux as a potential target platform, but this is not really a single operating system. For example, if you read the list of Linux distributions on wikipedia it is several pages long. To make thinks even more complex, there is a complex set of ways to view the dependencies between these distributions as you can see from the page which compares the various Linux distributions which typically gets several edits per day.
Ronan's advice is to develop as much as possible of your application using web programming methods and only use native interfaces when absolutely necessary. There exist a number of application development environments such as Appcelerator Titanium which allow developers to develop applications for mobile platforms that combine the portability and ease of development of web applications with the power of a native application.
By co-incidence I also heard a talk recently from the Velocity conference (via IT conversations) which was talking about the MITE platform which seems like a very impressive system that allows people to monitor how the performance of their mobile applications are performing as seen by a number of different device types on a number of networks. I have not personally used this tool, but I have experienced applications which theoretically work on a particular device but in practice they don't actually work for users on 3G networks because the network is so slow that the application keeps timing out.
I'll disagree while agreeing. I think the "web engine" is a valid target but for most apps, you really need to exploit it just like developing a native app. It needs to use local storage, persistent cache, and device specific UI behaviors and guidelines. There are so many web apps today that are developed thinking networks are all high speed and bandwidth is unlimited (and a plain web page == an application).
ReplyDeleteGlen,
ReplyDeleteI appreciate your skepticism and I don't want to sound like I am pushing Titanium (which I never personally used) but if you have a look at http://vimeo.com/8473513 you will see how Titanium apps can look and act like native apps with a native look and feel combined with full access to local devices e.g. GPS, camera, accelerometer etc.