Table of Contents
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.