This weekend I was hypothesizing how three apps I think are very cool operate, specifically: Google Voice search
. What shocked me about all of them was how available they were across platforms - particularly mobile. Then I came to quickly realize the only investment in development for each platform was front-end work; the piece they all had in common was the backend. Now, some might be familiar with some patterns that make this possible like MVC
; but what really surprises me is how unbelievably seamless these apps work in the face of having to support different platforms. This leads me to a more philosophical question about touting an "app for that..." - really what we are seeing is that behind many of the good apps there is a terrific service that is capable of being abstracted from that devices interface.
Caveat Emptor: Its probably very short sighted to assume that this is a one sided conclusion, but I think there are some great reasons to follow this pattern; there are many great reasons to have a fantastic UI, but when thinking about reaching the maximum audience it is comforting to know that following this pattern can help development remain agile in the face of new device releases (see: iPad).