If you’ve been looking at the Corona daily build summaries over the past month, you might have been wondering what this mysterious “Project Gluon” is all about. And for that matter, what is a gluon?
Well it’s all related to what I mentioned in my previous post about offering more 3rd party services.
Integrating 3rd party services has been a huge challenge for us, especially when it comes to maintaining the 3rd party SDKs that are integrated into the core Corona engine. The logistics are a lot more complicated when you dig past the surface. When we integrate just a single 3rd party service, we are implicitly dealing with two development cycles: ours and that of a 3rd party SDK (e.g. an ad network, an analytics provider, a social network, etc).
When a 3rd party service updates their SDK to fix bugs, there’s an inevitable lag between when they release it and when we can integrate it. Often, we’ll catch bugs in the 3rd party SDK, and even more often, you’ll find bugs that turn out to be bugs in the 3rd party SDK. This just further compounds the lag time.
An unfortunate fact of life is that the 3rd party provider will change the API of their SDK, breaking backward compatibility. This further compounds the problem because in order to offer the latest features, we have to throw away the existing integration work if we want to upgrade. A good example is the transition from Facebook Connect 2.x to 3.x.
It’s a lot of work just dealing with these issues for a single service. Now imagine the combinatorics when you are dealing with more than just a handful of services. And then picture what happens when dealing with this once for iOS and once for Android. Yikes!
We quickly realized if we just kept on adding more services, we’d never get more other stuff done. Brute force was not the answer, so we came up with Project Gluon to create the infrastructure for adding more 3rd party services and do it in a way that addresses some of the integration challenges I talked about. This technology will enable more folks to offer plugins to all Corona developers.
We have some pretty ambitious goals longer-term to open this up to more folks, but we want to work out the kinks first. In the immediate future, we’ll offer plugins from existing partners — folks like Amazon, Facebook, inneractive, and others. These plugins will be made available to both SDK and Enterprise developers. We’re also making some major enhancements to CoronaEnterprise so that those developers can create plugins that can be reused across projects.
So why did we call it Project Gluon? Well, in particle physics, there are these fundamental particles called gluons. These particles that hold together other fundamental particles called quarks; they “glue” quarks together. And we needed our own special gluons to connect 3rd party services with the Corona engine.
At least that was the theory behind the code name :)