Re: Learn to develop gnome applications ????



On Tue, 2005-25-01 at 11:09 -0600, Ignacio Galmarino wrote:
> i want to learn to develop gnome aplications ..... how to begin ????
> 
> what docs i need to read ??
> what apps i need to to use ???
> 
> which is the best way to begin ???
> 
> Thanks
> Ignacio

Do you mean programmer of GNOME based applications, or a developer of
GNOME itself? There's a lot of overlap between the two, so lets give it
a shot:

1. Decide what you want to do. If you want to write a new GNOME app, you
need a pencil and paper, and you need to start designing your cool new
application on paper (this will take a while). 

Otherwise you need to decide which GNOME module your most interested in,
and study up on how it works generally: read the website, join the
relevant mailing list(s), and stop by in IRC.

2. Now that you know basically what libraries/tools you need to start
programming, you need to now *learn* how they work. Go to
http://www.imendio.com/projects/devhelp/ and download devhelp. It is a
program that displays the library API documentation that is auto
generated from the source code. This is your friend at all times while
programming GNOME.

Also, visit both developer.gnome.org and live.gnome.org and begin
looking for documentation on the modules/libraries you are interested
in. http://developer.gnome.org/doc/tutorials/ is a good place to start.
Also, do not forget that a number of GNOME's technologies are from
FreeDesktop.org, so be sure to got there to look for your documentation.
Lastly there is always google.com.

The most detailed but hardest to understand form of documentation is the
source code itself. Grab a copy of the latest version -- but unless your
a supreme coder, you won't get far by trying to read the whole thing at
once. Use it as a reference when you're trying to understand small
portions of the code-base.

3. The best way to learn how to program anything is to write very simple
example programs. As you learn more, graduate to increasingly more
complex code until you have a basic application working.

If the module you're learning has a tutorial, open up a text editor and
terminal, and start typing in and compiling the code as you're reading.
Interactivity is best.

If the module you're learning does *not* have a tutorial then WRITE ONE
as you learn it by yourself (and use yourself as the target audience).
Even if you never show it to others, it will be invaluable to giving you
a deeper understanding about the code.

Learning a module without a tutorial is tough because you only have the
API documentation and source code to work with:

If the module is a library, start by browsing the API documentation to
get an idea of how it works, then start writing simple trial and error
programs that use the API. If you run into a road-block and cannot get
past it yourself, you can turn to the mailing-list(s) and IRC to get
help from fellow programmers. However, remember that the core
developers/maintainers are busy people too, and you should only ask
their help as a last resort.

If the module is a application, then the "API" is in the header files
(.h) in the source code, and may not be well documented. You will have
to begin the task of learning from the source. Once again, small trial
and error changes to the source code is best.

Learning a code base is a never-ending task, so you need not task
yourself with learning the whole thing at once! Break it up into pieces
and come up for air once and a while.

4. Now you should have a very basic understanding of the module. If you
goal is to write your own application, skip to the next step. If you
goal is to help with GNOME, you need to start asking around how you can
help out. Remember to START SMALL, with bite-sized pieces, then work
your way up to bigger things.

Check out #gnome-love on IRC or read the GNOME-love section on
live.gnome.or for advice with this, or ask your module's maintainer
directly. Begin answering questions that you can handle on the mailing
list, and generally participating in the community discussions. Head
over to bugzilla.gnome.org, make an account for yourself, and start
looking at the bugs for your module. Some bugs can be easily marked as
duplicate, or otherwise can be updated with more correct details. If
you're confident, you can try proposing a solution or even writing a
patch.

5. Learn how to use the open source development tools. There are a lot
of them, specialized on the kind of job they were meant to do, so find
out exactly what you need to know. The most important are CVS, which is
the source code repository where all the latest copies of GNOME modules
are kept, and 'diff', which is a program to generate patches based on
the differences between the new code you've written, and the original
code from CVS.

Check out developer.gnome.org, live.gnome.org, or google.com to learn
how to use them.

6. Have fun. If you don't enjoy what you do, then you'll never stay at
it.

Cheers,
Ryan




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]