incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Drew Walters <deedu...@gmail.com>
Subject Re: Pluginization FTW
Date Thu, 19 Apr 2012 12:35:50 GMT
I'd be curious to hear the advantages of moving to a single extension.
 From my experience with having a single extension for Cordova
BlackBerry here are some of the disadvantages I've come across:

1. Every application must include the entire set of API whether the
application needs it or not.
2. Every application must include all the permissions required by the
API whether they are using them or not.
3. In order for a third party to "extend" the extension they have to
copy their source code directly into your extension.  This presents a
maintenance nightmare when trying to deal with version updates.

One thing I should probably make clear about how I refactored the
code.  Although there are now extensions for each API feature set, the
Cordova PluginManager is still the central invocation point and
manager of plugin lifecycle.  This seems similar to how WebWorks is
moving to a single XHR invocation point while still maintaining
separate extensions.

On Wed, Apr 18, 2012 at 7:22 PM, Laurent Hasson <lhasson@rim.com> wrote:
> Converging WW and Cordova is a stated goal on our end :) How we get there is the fun
question. The work Gord has been doing is actually in line with our internal direction, and
I look to Gord to provide the rails to a converged path :)
>
>
> ___________________________________________
> LDH (Laurent Hasson)
> Technical Director, BlackBerry Web Platform
> Research In Motion
> Email: lhasson@rim.com
> Mobile: 646-460-7066
> -----------------------------------------------------------------
> "That's who you remind me of: an evil Mr. Rogers!" - Simon Phoenix
> -----------------------------------------------------------------
> Sent from my BlackBerry Torch!
>
> ----- Original Message -----
> From: Filip Maj [mailto:fil@adobe.com]
> Sent: Wednesday, April 18, 2012 04:36 PM
> To: callback-dev@incubator.apache.org <callback-dev@incubator.apache.org>
> Subject: Re: Pluginization FTW
>
> Just a quick note, the RIM guys have talked in passing (nothing official -
> just what I have heard on the interwebz) about actually converting BB
> WebWorks to more of a (current) cordova implementation, re: single
> extension for everything. So in terms of being "more compliant" to what
> WebWorks recommends, what we're doing currently, as far as I understand,
> may actually be better. Heh.
>
> Perhaps Gord/Dan/Ken/Laurent can comment on that in more detail and more
> authority than I can.
>
> On 4/18/12 1:58 PM, "Drew Walters" <deedubbu@gmail.com> wrote:
>
>>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.
>
>
> ---------------------------------------------------------------------
> This transmission (including any attachments) may contain confidential information, privileged
material (including material protected by the solicitor-client or other applicable privileges),
or constitute non-public information. Any use of this information by anyone other than the
intended recipient is prohibited. If you have received this transmission in error, please
immediately reply to the sender and delete this information from your system. Use, dissemination,
distribution, or reproduction of this transmission by unintended recipients is not authorized
and may be unlawful.

Mime
View raw message