path: root/pages/develop/
blob: 787875541b58d89f384ddef836e94ec0bad67a5c (plain) (tree)




# Using Unified and Legacy APIs together

The process of moving an application from our old stable API to the new Unified EFL may take some time. Enlightenment is probably the largest EFL application so we know how complicated this could be! To ease the transition we are ensuring that the APIs are interchangeable.

## Object Compatibility

Our main approach to ensure compatibility is making sure that our legacy API can work with Unified EFL objects.
That means that an `Eo *` created with the new Unified API will work with the equivalent APIs from the legacy API.

For example:

  * `Efl_Canvas` objects can be passed to `evas_object_*` methods
  * `Efl_Canvas_Layout` objects can be passed to `edje_object_*` methods
  * `Efl_Ui` objects work with `elm_object_*` methods

Also the `eina` and `eo` namespaces are retained over these versions so you can continue to pass `Eina_Bool` or `Eo *` where you previously did.

## Combined Releases

For the foreseeable future all EFL releases will contain both the Legacy and the Unified APIs meaning that you can upgrade once you feel that our new APIs are ready for your usage. The benefits of moving over should be compelling, but as usage varies between apps we will continue to support the legacy API for all our users.