Flexibility plus platform-specific functionality
At last developers can get the best of both worlds – a highly consistent cross-platform OS abstraction together with access to any platform-specific APIs or libraries they need.
Why use the Marmalade EDK?
The Marmalade EDK enables developers to design their own extension APIs and implement them on whatever OS platforms they choose, using each platform’s native SDK. In doing so, they will create standard operating system libraries that will be linked to the Marmalade app at deployment time. An extension API could be used to access niche OS-specific APIs, or to wrap third-party services that are available only as static libraries, such as an in-app advertising service.

How the EDK works
Developers start by writing their extension API as a custom C header file. Some specific text tokens are used to indicate to Marmalade’s makefile system that the API is an extension. The custom header file has the S4E file type.
Right-clicking on the S4E file brings up the option to ‘Build iPhone Extension’, ‘Build Android Extension’, etc. Choosing one of these options will generate a Marmalade makefile for the extension project on the platform in question.
Double-clicking on the Marmalade makefile will generate an IDE workspace that will automatically build a standard OS library for the extension. The C functions, as defined by the developer, will all have stub implementations that need to be completed by calling through to OS APIs. The developer implements the stub functions, and then builds the workspace project to generate a standard OS library for the extension.
When a developer uses the extension in an app, the extension library for iOS will automatically be linked to the project; the same goes for Android, and for Windows desktop. From the app development point of view, the app is using an API like any other.
Right now, the Marmalade EDK can be used on iOS, Android and Windows desktop, and will soon be available for use on other platforms supported by Marmalade.