Feasibility
---------------
For iOS, plugins can be static libraries, that is no problem. You cannot
use dynamic libraries in iOS (the .frameworks you see used are essentially
static libs in a different packaging). Assets should be .bundle packages
(essentially folders with the .bundle suffix). So you will have the .a,
header files, and any .bundle assets.

Problems
--------------
Authors have to make sure that the .a lib is a fat binary that includes all
architectures. If not, a user cannot test on the Simulator for example, if
the i386 architecture wasn't included. I suppose plugman or some tool can
check for this by using the 'lipo -info [lib]' command.


Benefits
------------
Plugin marketplace, selling of plugins without releasing the source.
Plugman already supports .a plugins indirectly, you would just add the
plugin as a <framework> instead of a <source-file> in plugin.xml


On Fri, Feb 22, 2013 at 9:29 AM, Michael Brooks <mich...@michaelbrooks.ca>wrote:

> Hi all,
>
> I'd like to pick your brain around the feasibility of plugins existing as
> static or dynamic libraries.
>
> I had this idea a few years ago, when we first started discussing plugins.
> At the time, it was
> possible on BlackBerry and, with some work, possible on Android and iOS.
> However, a lot
> has changed in the last few years, so I'd like to revisit the topic.
>
> Overview:
>
> - A plugin developer would compile their plugin as a static or dynamic
> library.
> - A plugin developer would publish their plugin as the library.
> - An app developer would install the static or dynamic library.
>
> Benefits:
>
> - The plugin is only compiled by the author who distributes it.
>     - For complex plugins, this may help avoid compile-time errors around
> dependencies.
> - The plugin may be able to bundle some of its assets, simplifying the
> installation process.
> - Can be an alternative (not replacement) to distributing plugins as
> source-code.
>
> Questions:
>
> - For each platform, how feasible is this?
> - What problems (or other benefits) would exist with plugins as libraries?
>
> Thanks!
> Michael
>

Reply via email to