views:

221

answers:

6

Hi,

I don't want to build the Thunderbird functionality. I just want to build a project with plug-in features, cross platform, and easy to install. Is there any document which point to the development of Firefox or Thunderbird?

I know the Thunderbird is build in C++, then how can i get these kind of graphics and all other function.

Please help me.

+1  A: 

Eclipse RCP can be a good solution to build rich cross-platform client applications with plug-in features. Eclipse RCP is based on Java and SWT technologies.

Here is a list of applications build with Eclipse RCP. A demo mail client build with RCP is also available here. Another great software build with RCP is RSSOwl, a feed reader.

Desintegr
+1  A: 

While selecting a language/platform for development, I think the following points are to be thought of:

  1. Development support for the features looking for.
  2. Maintainability - in terms of the support of the platform/language, how much it is supported for maintenance.
  3. Compatibility with the platforms of intention (cross platform etc.)
  4. Future expandability of the language/platform

C++ is simply a great language. The rest (making use of rich graphics etc.) is to learn...

Kangkan
+3  A: 

You can browse the source code of Firefox here:

http://mxr.mozilla.org/firefox/source/.

And Thunderbird:

http://mxr.mozilla.org/seamonkey/source/.

Anyway if you want to build a portable app with plug-ins I suggest you forget about trying to copy Mozilla and learn Qt or wxWidgets instead.

Manuel
A: 

Lots of options and others have already suggested good ideas. Java will make your life (reasonably) easy but C/C++ give you more power at the expense of needing to abstract APIs.

I should add be careful - it'll likely be difficult to make changes to your app once you have committed to one set of technologies and done some serious development without re-writing. For example, if you chose C and the Apache Portable Runtime, you might have a hard time converting to something else. Likewise if you write a UI in swing, converting to SWT/Eclipse will mean a UI rewrite. I don't want to discourage you, just add a warning that I think x-platform apps require quite careful planning.

A few notes r.e. the Mozilla tree too. Thunderbird/Firefox etc essentially build from the same source tree, just using different components. The Mozilla build system is pretty complicated, in my opinion more so than the Linux Kernel. Thus, Manuel's suggestion about forgetting Mozilla is a good one unless there's something to be gained by their route.

Ninefingers
+3  A: 

In the spirit of other answers, I feel obliged to point out that Mozilla provides the platform they used to build their applications, including Firefox and Thunderbird, -- see XULRunner.

With XULRunner you

  • develop interfaces in XUL (cross-platform UI description language that Firefox and Thunderbird use) or even HTML,
  • develop program logic in JavaScript or, if you really need to, C++ (or even Python, like Komodo does),
  • have support for the same extension mechanism as used Firefox/Thunderbird

Here's a partial list of applications built on top of XULRunner: XULRunner Hall of Fame.


To answer your original question, the Mozilla platform provides rich functionality on many platforms by specifying a set of cross-platform APIs (e.g. (oversimplifying) XUL for interface definitions) and implementing each API on each platform.

Implementing such a cross-platform layer from scratch is lots of work, so instead of trying to look at and copy Thunderbird's implementation, you should pick one of the cross-platform solutions mentioned in the answers here (Mozilla, Eclipse, QT, wxWidgets, etc.)

Each has its strengths and weaknesses, without knowing your current expertise and requirements it's not possible to pick one for you.

Nickolay
Yep. If you want the look and feel of Thunderbird, then do it in XUL. If you don't want to code in C++, there are other options, even using the same interface.
pc1oad1etter
It's remarkable how few people are aware of the existence of XULRunner as an application development platform.
StackedCrooked
A: 

Mozilla's category manager makes it very easy to add plugin support to your application, but like other posters said, you'll have a fair hill to climb before you get there.

Eric