Project: titanium
Issue TIMOB-8721: BlackBerry: Implement module API
This is the api that will be available for 3rd party module extensions. This api also needs to be well documented. "The "Extending Titanium" set of guides might be a good starting point: http://docs.appcelerator.com/titanium/2.1/index.html#!/guide/Extending_Titanium_Mobile There will need to be a C/C++ API for module developers. You can look at the API documentation for Android and iOS to get an idea of what sort of native API we expose for extensions. Module developers should be able to create their own proxy and views. Need to also figure out how these external modules get compiled into the application. I am guess module developers will provide some sort of static/dynamic library that gets included into the application. For application developers they use the require() function to load these external modules. So you will need to add support into your require implementation to search for these external modules if it can't find any files in the applications resources folder. For external modules we use the module's ID string for the require lookup. Ex: require('com.my.module') We also support external CommonJS modules. The Titanium Cloud module is an example of this type of module. This document provides some details: https://wiki.appcelerator.org/display/guides/CommonJS+Modules+in+Titanium Basically this allows module developers to distribute JS only modules. This works by extending the require() search path to include these modules when the application developers adds them to their tiapp.xml section. So I hope that gives you a good starting line. Feel free to ask for detailed questions on each of these requirements. We should also loop in the module team and work closely with them on any requirements they require for creating modules for BB. -- Joshua Roesslein Platform Engineer Appcelerator, Inc. jroesslein@appcelerator.com"
Story points: 15