Until recently, developers approached applications with a mindset that matched the kind of application they were working on: desktop, Web, and, more recently, smartphone or tablet. Now that the distinctions between those apps have blurred, David Intersimone, vice president of developer relations and chief evangelist for tool maker Embarcadero Technologies, says it's time to adopt a new mindset.
"I've been thinking about this for a while, that we in the developer community should think about dropping the Web word and just talk about building rich applications," said Intersimone.
When you think about it, the word 'Web' in rich Web applications is probably redundant. After all, an application is an application and very few applications created today don't run on the Web or connect to the Web or, indeed, begin life as a Web application.
"An app is an app, period," Intersimone said. "Every app uses graphics, the Internet is ubiquitous, and the distinctions between different kinds of apps have blurred."
He noted that nearly all applications share the same elements: frameworks, application platforms, programming languages, function calls, and rich user interfaces.
"Of course, developers can run into issues unique to a specific run-time environment, but if they adopt best practices for UIs, they can overcome just about anything," he said.
Intersimone's UI "best practices" consist of using buttons, edit boxes, modal or modeless dialog boxes, themes and skins that enable developers to create a consistent look across all pages.
The Rise of Native Apps
Intersimone certainly makes some very valid points, all of which reflect one of his core beliefs: that one of the best development practices developers can follow is to build native code rich apps.
Not surprisingly, Embarcadero has a solution for building native code rich apps called RAD Studio XE. This comprehensive application development suite provides a quick way to visually build GUI-intensive, data-driven applications for Windows, .NET, PHP and the Web. RAD Studio includes Delphi, C++Builder, Delphi Prism, and RadPHP, all of which enable developers to build and deliver applications rapidly across multiple Windows, Web, and database platforms.
Intersimone added that technologies such Adobe Flash/Flex, Microsoft Silverlight, and HTML5 make it easy and practical to build user interfaces in the browser. These technologies give Web apps the same look and feel as apps designed for desktops and notebooks.
The trend of building native applications has exploded in the past decade, accelerated greatly by the widespread adoption of social networking and mobile phone usage.
Native data applications, such as social networking, multimedia and maps installed on smartphones, now account for 50 percent of all mobile data volume according to a global smartphone report by Finnish mobile analytics company Zokem.
In its report, released last fall, Zokem found that while the mobile Web browser is still the most popular smartphone app, the use of native apps outside the browser is growing faster than mobile browsing itself.
The report found that the Web browser accounted for 54 percent of data application face time and 50 percent of data volume.
Zokem's findings are based on patented non-parametric measurements that take place directly in smartphones. In the study, the researcher analyzed a dataset of more than 10,000 smartphone users, including 6.5 million distinct smartphone application usage sessions in 16 countries during 2009 and 2010.
While Web -- or if you prefer, "rich" -- apps have taken a good decade to catch up with desktop apps, there are signs that they have eclipsed them, and that designs are moving from the Web and tablet to desktop apps.
These rich apps incorporate enhancements such as better graphics, tooling support, and tighter integration with data. All major software companies are already heading in this direction, trying to gain a competitive advantage, or at least trying desperately to avoid being left behind.