incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Drew Walters <deedu...@gmail.com>
Subject Pluginization FTW
Date Wed, 18 Apr 2012 20:58:26 GMT
I've been experimenting with what it would look like for Cordova
BlackBerry to be modified such that all the API are separated out into
plugins. For those that want to cut to the chase, here's my repo:

https://github.com/deedubbu/cordova-blackberry-pluggable

This repo is a representation of what the binary download would be for
the end user and is not a fork of either cordova-js or
cordova-blackberry-webworks.  Without being able to see the change
history it might be difficult to tell what I've done so I'll provide
some high level details here:

1. Separated the native code and associated JavaScript into
independent WebWorks extensions.  Previously there was only a single
extension.  This allows us to make use of the BlackBerry WebWorks
framework build/config tools which handle packaging up only the
necessary code when building an app.
2. All Cordova JavaScript is injected from the native side. No need to
include cordova.js in your application, all the Cordova JavaScript is
loaded before the applications pages load.
3. WebWorks Extension API is hidden behind the existing Cordova Plugin
interface.  Plugin developer doesn't really need to know that they are
developing a WebWorks extension.  The only new interface requirement
for a plugin is to invoke a new constructor.
4. JavaScript API are defined as modules (no change) and can
additionally call cordova.addPlugin(...) or cordova.mergePlugin(...)
to override/merge global namespace.
5. Installation of Cordova is a simple matter of copying a folder to
the WebWorks SDK ext folder.
6. Installation of a Cordova plugin is a simple matter of copying a
folder to the WebWorks SDK ext folder.
7. Enabling a Cordova plugin requires specifying the feature id in
projects config.xml. plugins.xml is not used.

Ok, that's a quick brain dump. The README contains a few more details.
I plan on eventually pushing branches to my forks for cordova-js and
cordova-blackberry-webworks which will show the actual code changes.

Mime
View raw message