To create the story and the context here we have the beginning: I am a Silverlight developer for almost five years, and I started developing native mobile apps for all 2 major platforms two years ago. After one year and a half I’ve got interested into mobile web development because I think that they are application which need naive code but they are application which don’t.
Having this in the back of my head and also the announcements form Microsoft of MVC Mobile applications, the appearance of the new Java Script Frameworks like jQuery Mobile, Knockout.js, Backbone.js and other, I started reading more and more about this part of mobile development.
Way Single Page Applications? … Because I am used with the responsiveness of Silverlight applications in the browser and with the responsiveness of native apps on the mobile devices. I really don’t like the post back and the refresh and all that old website experience. And like me, there are our customers which on a mobile device want to do their job fast and easy, without loading, waiting and having poor navigation.
From the first search on google we will find the next description on wiki.
A single-page application (SPA), also known as single-page interface (SPI), is a web application or web site that fits on a single web page with the goal of providing a more fluid user experience like the desktop application does.
For a customer and for all of us a singe page application is a web page which does not refresh at every click and also it feels like a desktop application in a browser. A single page application is reliable, responsive, has mobility and it is available. There are a lot of examples of single page applications on the web. We can have a look at Gmail, Twitter or Facebook; they all have something in common, they are user friendly and fluid.
From Silverlight I switched to WPF. Another XAML based UI, but on the desktop. There the situation is different, you will not have a refresh feeling all the time but you will have the loading problem. We need to do the connection to the data base, and the UI loading faster; the same type of issue we will have also on the native mobile apps.
Two years ago I started developing on iOS and Windows Phone 7 and doing prototyping on Android. What I learn from this is that the native apps are very fast and very good when you work offline, but when you need a connection to one server and to be always online and in sync with the server, maybe is a good idea to have a look at the new trend and try to implement you application ones for all the platforms using web technologies.
In the next post I will have a look first on the server, WEB API, and after that on client at Backbone.