During the last few months my graduate supervisor and I have been doing a lot of demos to the major canadian telecommunications companies. In the demos we show different devices interacting with each other (which is something people love at demos). One of the things we get asked fairly often is: “How long did it take to build each one of these applications?” and our usual answer is about less than a day. This usually shocks people.
How can this be done? Simple, we use thin clients and the cloud (or some robust and scalable servers). By having outsourced the client logic to the cloud it is possible to build thin clients. The thin clients just do a few data calls (or get their data pushed into them) to exchange information.
Of course, this requires extra effort at front when building the server logic but it saves A LOT of work later.
Just as a note, in all cases many client side optimizations should not be overlooked. As an example, client side caching is a good thing when possible.