As a hardcore Qlik mashup developer, you probably have tried many different Qlik APIs. Among all of them, I bet capability API is the apple of your eye; it is at least for me. Since its release, it has no doubt been my №1 tool for visualization embedding. However, I think it is about time to say my saddest farewell.
Well, first of all, I would like to explain why I think the Capability API no longer works for me.
The primary reason is the Capability API is chunky. It wraps every single possible function into one js file. Most projects only leverage 20 percent of the functions. Using the Capability API imposes significant redundancy, especially during load time.
To me, another limitation of the Capability API is that it is loaded from the Qlik server.
Most users take three steps to load a chart into a webpage:
Authenticate -> Load Require.js from Qlik -> use Require.js to load the Capability API. (#Tip: You can use your local instance of Require.js, to improve performance.)
The Capability API is too old. Its development was based on the first version of Angular.js, which was invented in the Stone age of the web programming world. Even though it is still usable, i̵t̵ ̵m̵a̵k̵e̵s̵ ̵m̵e̵ ̵f̵e̵e̵l̵ ̵o̵l̵d̵ ̵u̵s̵i̵n̵g̵ ̵i̵t̵, it is awkward to use together with newer frameworks like React.JS or mobile development.
I decided it’s about time to switch to enigma.js and nebula.js, both of which are open-source libraries from Qlik.
First of all, both enigma.js and nebula.js are available on NPM, which is a huge plus for me. Below is a graph explaining why. (TLDR: it is faster, lighter, and more flexible)
For me, enigma.js and nebula.js together are the perfect replacement for the Capability API. They are not only faster, but they also don’t compromise functionality. Below is a list of all APIs in Capability API and their relevant counterparts in enigma+nebula.
So that concludes the article, but that is not the end of it. Below is a list(very long) mapping all functions from the Capability API to enigma.js and nebula.js. Hope you find it useful.