Let's start with two, non trivial, claims: (a) native apps are not dead yet (OS native, as opposed to web apps), (b) people prefer the native apps.
It's relatively easy to see that when looking at the modern mobile platforms: iOS and Android. There are so many native apps and developers even develop native apps for both platform. In most cases, this could be solved with one good web app. But people prefer the native apps. Facebook is a good example. They have a good mobile site, but people still install and use the native client.
Why? I don't have anything substantiated, but here's my guess:
- Unified experience - it fits better within the OS: it looks the same, uses the same widgets, etc.
- It works offline.
Does this applies to the larger devices? I believe so. On the face of it, there's a rise in web apps and decline is desktop apps. But, the desktop is not dead yet. Office apps are a good example: even Microsoft thought it would be wise to create a web-based office apps, but it still kept the Office 2010 on track (with 9M beta downloads...) and we would probably see Office 2012...
I believe most of the reasons above still apply in the desktop world. Speed is less of an issue with the current browsers arms races. That leaves us with offline capabilities and unified experience.
Now, let's look at Eclipse. IMHO, it is the best open source framework for cross platform desktop app development. Mainly because it blends into the operating system. It feels more natural than any other solution. It blends so well, some people will never know it is Java behind the scenes.
Eclipse Helios (aka Eclipse 3.6), which was released a couple of weeks ago takes this even further with cool new ways of assimilating your application into the operating system. I chose two new features that may look minor, but make a lot of difference to end users.
Open File Feature
This features enables Eclipse to open files directly from the OS. This means files may be associated with Eclipse or Eclipse-based applications. For example, you can associate Java files with Eclipse and have them open for Editing within Eclipse with a simple double click. If you've always wanted to use Eclipse as a text editor, now is your chance.
The new feature enables launching Eclipse and opening a file from the command line as well as opening a file in an existing Eclipse instance, although I found that works better on a Mac and not as well on Windows. The original Eclipse distro does not include an installer, so it does not set any file associations in the operating system. You can do it yourself, more details can be found in the Eclipse wiki. Nevertheless, it opens the door for other distributions and Eclipse-RCP based applications to provide such features with minimal effort.
Taskbar/Dock Icon API
The TaskItem API enables some very cool tricks that can be applied to the application icon in the Taskbar on Windows or Dock in OS X. It includes:
- Overlaying an image or text over the icon.
- Displaying progress.
- Adding custom right-click actions to the icon.
The images were taken from the Eclipse Helios New and Noteworthy pages. Developers who wish to utilize those new features should look at this snippet as an example.
IMHO, these features, along with many more additions, makes Helios an even more compelling choice for cross platform desktop development. Once you do decide to make the leap and turn your app into a web app, check out Eclipse RAP as a possible solution (but that's a topic for a different article).