summaryrefslogtreecommitdiff
path: root/pages/develop/start.md.txt
blob: dedce5b75a5ae72be8d0a871a1ad76b5a9925f30 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
---
~~Title: Developing with the Enlightenment Foundation Libraries (EFL)~~
~~NOCACHE~~
---

# Developing with the Enlightenment Foundation Libraries (EFL) #

The Enlightenment Foundation Libraries (EFL) are designed to build on top of each other in layers, steadily becoming higher level yet allowing access to each individual level as they go. Whether you're looking for the types of low-level helpers contained in the ``Eina`` library or the high-level abstractions of ``Elementary`` you'll find a wealth of assistance within EFL.

Use the menu on the right to navigate this documentation. Below there's a short description of the content of each section.

## Legacy vs. Unified APIs ##

The documentation on this section of the website is written with a focus on the next-generation API called **Unified API**, currently rolling out of the beta stage. While this means that the Unified documentation is only partial in places, it will get you started with the very latest revision of EFL and all the new and improved features it brings.

Documentation on the **Legacy API** of EFL can be found in the [Legacy section](legacy/). It is possible to use both APIs in the same application, although not recommended. Information about that is in the [Unified and Legacy](/develop/unified-and-legacy.md) page.

Information on porting existing software to the Unified API can be found as part of the [Programming Guides](#Programming_Guides) section.

## Languages ##

Developers working with the Enlightenment Foundation Libraries can do so in a variety of languages. Each of the following documentation categories is split by language: at present the majority include documentation only for the C and C# languages, with documentation for additional languages to follow.

In all cases, the language to which a particular document applies will be indicated in the page location: a document in ``/develop/tutorials/c`` will be for the C language, whereas ``/develop/tutorials/csharp`` offers alternatives for C# developers.

A full list of the languages available is available on the landing page for each section.

## Setting up the Development Environment ##

Information on downloading EFL and configuring a development environment can be found in the [Setup section](setup/).

## Tutorials ##

The [EFL Tutorials](tutorials/start.md) are designed to introduce the functions and features of EFL to those who already have programming experience. Each tutorial walks through the implementation of a particular EFL feature or function, building upon previous tutorials to offer a step-by-step guide to getting comfortable with developing using EFL.

Although you do not need previous experience with EFL to work through the tutorials, general programming knowledge is required.

## Programming Guides ##

The [Programming Guides](guides/start.md) are designed to provide informative material to developers working with EFL, including code snippets demonstrating the use of various features. They are provided both as a reference guide for experienced EFL developers and as an alternative or extension to the tutorials for those who prefer less guided experimentation.

## API Reference Documentation ##

A reference to the features and functions of the Unified API can be found in the [C API Reference section](api/) and [C# API Reference section](https://enlightenment.github.io/www-content/gh-pages/api/csharp/api).

The Legacy API equivalent documentation in the [Legacy API Reference section](legacy/api/c/) (Only for C).

## Debugging EFL Applications ##

[Debugging EFL Applications](debug/start.md) demonstrates how to debug your application, from tracking down memory leaks with Valgrind to diagnosing user interface issues with Clouseau.

## Contributing Code ##

If you have been working on an EFL-based project which you believe would be of value to other EFL or Enlightenment users, please consider contributing the code. Details on how to contribute your code to the Enlightenment Project, whether it's an entire application or a simple bug-fix, can be found on the [Developer Contributions page](/contrib/devs/start.md).

## IRC Channels ##

The official Enlightenment IRC channels, hosted on the Freenode network, are often the quickest way to communicate with fellow developers. Available in English, German, French, and Korean, the channels are accessible 24/7 and are open to both developers and end-users.

Connection information is as follows:

| IRC Server       | Port | Channel | Topic           |
|------------------|------|---------|-----------------|
| irc.freenode.net | 6667 | #e      | General         |
| irc.freenode.net | 6667 | #e.py   | Python-related  |
| irc.freenode.net | 6667 | #e.bsd  | BSD-related     |
| irc.freenode.net | 6667 | #e.de   | General - German|
| irc.freenode.net | 6667 | #e.fr   | General - French|
| irc.freenode.net | 6667 | #e.kr   | General - Korean|

## Mailing Lists ##

The Enlightenment Project maintains several mailing lists, full details of which are available on the [Contact page](/contact). The developer-focused lists, which are available in English only, are as follows:

| Mailing List                                                                                 | Archive                                                                                       | Topic                        |
|----------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|------------------------------|
| [enlightenment-devel](http://lists.sourceforge.net/lists/listinfo/enlightenment-devel)       | [SourceForge](http://sourceforge.net/mailarchive/forum.php?forum_name=enlightenment-devel)    | E/EFL development discussion |
| [enlightenment-announce](http://lists.sourceforge.net/lists/listinfo/enlightenment-announce) | [SourceForge](http://sourceforge.net/mailarchive/forum.php?forum_name=enlightenment-announce) | E/EFL announcements          |
| [enlightenment-intl](http://lists.sourceforge.net/lists/listinfo/enlightenment-intl)         | [SourceForge](http://sourceforge.net/mailarchive/forum.php?forum_name=enlightenment-intl)     | Internationalization changes |
| [enlightenment-git](mailto:git@lists.enlightenment.org?body=subscribe)                       |                                                                                               | Git commits                  |
| [enlightenment-e-bork](mailto:e-bork@lists.enlightenment.org?body=subscribe)                 |                                                                                               | Quality assurance reports    |