This week we release our Eclipse RCP Refcard, helping you to get started writing applications and plug-ins based on the Eclipse Rich Client Platform. Here we catch up with the author, James Sugrue, to find out more about Eclipse RCP. Our readers will know James as editor here at JavaLobby and EclipseZone.
DZone: Could you explain a little about Eclipse RCP?
James: The Rich Client Platform is something that you use every day if Eclipse is your IDE. The platform provides ways of creating plug-ins, which contribute functionality to the base platform. So, in a nutshell, the RCP gives you the building blocks to create rich applications based on a plug-in model.
As you'll see in the Refcard, there are points that you can hook into, known as Extension Points. For example, there are extension points for menus, editors and help systems. If you contribute some code to an extension point, then you'll see your component appear in the application.
DZone: How does this approach differ to using Swing for creating your user interface?
James: There are a number of differences. First, when you're writing plug-ins, they can be part of any Eclipse installation. So you can write extensions for the IDE to help with particular aspects of development if you wish.
As well as extending Eclipse, you can create your own standalone application, without using any of the menus that exist in the IDE. Using the RCP, you can get started on a basic standalone UI very quickly. For the UI components you use SWT (Standard Widget Toolkit) for controls and JFace as a level above that to bring an MVC approach to your UI creation.
DZone: How are you involved with using Eclipse RCP?
James: The company that I work with have been using Eclipse as application platform for the last few years. When we saw the potential behind the Rich Client Platform, we decided that we would use it as the basis for all the desktop applications that we create. Since we started, we haven't looked back. It's proven to be a great choice.
In my spare time, I'm working on an RCP application called TweetHub. This is a Twitter client writing using RCP and the Eclipse ECF project. It's an open source effort and is quite enjoyable - Twitter is all the rage at the moment, and we're trying to create an impressive user interface for our users. It certainly forces me to brush up on my SWT basics.
DZone: What are your tips for people to get started using RCP?
James: As I point out in the card, there are some great examples to get you started, built into Eclipse. If you create a new RCP application using the wizards you'll see things like a mail client written in RCP. There are some great books out there - the recent edition of Eclipse Plug-ins is an indispensible reference for me, and Chris Aniszczyk is working on a RCP book due for release later this year.
I've found that the best way to learn any technology is to think of a use for it, maybe a UI that you've always wanted to write, or a plug-in that you've always needed. Through trial and error you can learn a lot. Finally, getting involved in any open source projects in the Eclipse eco-system will definitely expose you to some RCP.
DZone: What's coming up for the future in Eclipse RCP development?
James: Well,as most people are aware, the Galileo release just happened at the end of June and Eclipse 3.6 will be on the way next year, more than likely with more RCP improvements. I guess the big news at the moment is e4 - a total rework of the platform. e4 is going to be huge, as your application will be able work on the desktop or on the web. I believe the first 0.9 Release Candidate will be happening this summer.
DZone: What other Eclipse frameworks do you recommend utilitizing for desktop applications?
James: There are loads to choose from. For example, TweetHub makes use of RCP and ECF. A typical desktop application that takes advantage of a model driven approach will probably want to take look at the ever popular Eclipse Modelling Framework (EMF).
DZone: Have you any other Refcardz on the way?
James: Well, the first card I wrote was in collaboration with Ed Merks, covering the Eclipse Modelling Framework. I have an Eclipse Plug-in's Refcard on the way for release in August. That card works as a sequel to this card, covering extension points in a lot more detail, and showing how you can provide your own extensions points.