With the Ecore library we have concluded the EFL tour. You should have a fairly good idea of the capabilities of the EFL libraries by now. You may have begun to imagine how you should use them in your next project! If some implementation details escape you, do not worry. This was exactly the purpose of this document. Rather than confusing you with low level stuff and lengthy code listings of all the details we have attempted to give you a gentle introduction into the general concepts surrounding the most important of EFL libraries.
At this point you may wonder why we stopped at Ecore and did not continue with the rest of the EFL libraries. Eet and Embryo are mentioned several times in the text so it is natural to expect a separate chapter on each one them. Why stop now?
We think that it is better to just focus on Evas/Edje/Ecore only. There are three reasons for this decision. First of all, a lot of programmers who come in contact with EFL are confused by the exact nature of each library since all of them start with "E". While reading the documentation they forget which library does what and whether it is important (essential) for a program or not. The fact that most EFL applications also start with the letter "E" makes things even worse. It is easy to lose track of things with all the "E" names around you. By focusing on only 3 libraries we think it is easy for you to understand quickly what EFL is all about. You can instantly decide what is important and what is not and if you need this particular library for your project or not. While both Eet and Embryo are important EFL libraries, it should be clear that your first programs do not need to use them in order to do something useful. After all, Eet is hidden behind the Edje themes and Embryo scripts are rather advanced and in a way litter the clean-cut Edje theme files.
The second reason is that Evas and Edje are the libraries which are really groundbreaking. These are the libraries that provide you with new capabilities that you have hardly seen before. We could spend a lot of time talking about how Eet stores its data in an architecture independent form or how Epsilon/Epeg create thumbnails, but you would probably shake your head and think "I have seen this in library xyz before". But can you say the same for Evas or even Edje? Ecore is presented in this document because it is the glue library of EFL and it will save you a lot of code if you use the facilities it offers.
Finally remember that all EFL libraries are under heavy development. Several libraries have changed purposes/API/design over time. Some have even been declared obsolete. So instead of giving you a description of libraries that might not even be released eventually, we focus only on Evas/Edje/Ecore. These libraries have existed for a long time, they are stable, well documented and tested. They will almost certainly be a part of the EFL libraries when released. Several smaller EFL libraries come and go (in the form or ideas or partial implementations) but these 3 will always be there for you to play with.
When you start using the EFL for your projects, do not forget that you can also help develop the libraries themselves. EFL, the Enlightenment window manager and assorted applications are offered under an open source licence.
If you are a programmer with heavy C skills you are most welcome to send patches for EFL code or even become a regular developer. Subscribe to the Enlightenment development list, see what are the problems at hand and decide where your want to help. You need of course to use the latest code available (offered via CVS) in order to be able to keep up with the ever changing EFL code base.
If you are an artist instead (a guru in Gimp maybe) you will be happy to learn that EFL is all about eye candy. Browse through the pages for Themes/backgrounds/modules/splash screens and see what other users have already submitted. Then either modify an existing theme to your needs or even better create you own from scratch. You will soon find that EFL is THE platform that you can showcase how good artist you are (second only to OpenGL/textures/gaming engines). Several of the EFL programmers actually consider themselves more as an artist than you would think.
You can also help with documentation. Once you start using EFL for your themes/programs you will certainly discover some tricks/concepts/methods/functions which lack good documentation. Do not hesitate to write about your discoveries. The document that you are reading at the moment may for example be inadequate in some areas in your opinion. If you think that you can improve it in any way contact its author and show your interest!
Finally if you are just a (mortal) user do not despair! You can help too. Download the snapshots from freedesktop.org (or if you feel lucky directly from CVS) and perform some bug hunting. Programmers can only test a small set of functionality and sometimes miss some test cases. They never know what users will actually try to do with their software!. If you submit a bug make sure that you give a thorough description (all error messages, gdb backtrace e.t.c.). There is also a separate mailing list just for users (it also serves the Enlightenment version 16 users.
Rather that including links inside that main text of this document, we have decided to gather all resources in one place. This makes things easier when you have already read the document once and start searching for more information.
- The Enlightenment website
- Enlightenment Documentation
- Enlightenment contact channels)
- EFL release snapshots
- Enlightenment extra downloads
- The Elive CD
- QT at Trolltech
- The GTK+ toolkit
- Blender 3D (3D Animation)
- Synfig 2D (Vector Animation)
- The Gimp (Image Manipulation)
- Inkscape (vector drawing)