<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Wuzhong</title>
    <description>The latest articles on DEV Community by Wuzhong (@wuzhongzhu).</description>
    <link>https://dev.to/wuzhongzhu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F96452%2Ffcb1c67f-57c1-4c76-b9df-2f6a4521abda.png</url>
      <title>DEV Community: Wuzhong</title>
      <link>https://dev.to/wuzhongzhu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wuzhongzhu"/>
    <language>en</language>
    <item>
      <title>Getting Started with Qlik Core</title>
      <dc:creator>Wuzhong</dc:creator>
      <pubDate>Mon, 29 Oct 2018 11:56:59 +0000</pubDate>
      <link>https://dev.to/qlikbranch/getting-started-with-qlik-core-2781</link>
      <guid>https://dev.to/qlikbranch/getting-started-with-qlik-core-2781</guid>
      <description>&lt;p&gt;A few months back, Qlik announced &lt;a href="https://www.qlik.com/us/products/qlik-core"&gt;Qlik Core&lt;/a&gt;, a Dockerized version of Qlik’s associative data engine. After playing with Core for a few weeks (the developer version is free…plus, I work for Qlik), I’ve come to realize how awesome the product is for visualizing and analyzing data. So I’m writing this blog to explain, &lt;strong&gt;in my humble opinion&lt;/strong&gt;, who will benefit from Core, and how to start using it.&lt;/p&gt;

&lt;h3&gt;
  
  
  First of all, why Qlik Core?
&lt;/h3&gt;

&lt;p&gt;Nowadays, there are several visualization libraries, &lt;a href="https://d3js.org/"&gt;D3&lt;/a&gt; probably being the most widely used library of the bunch. &lt;a href="http://bibviz.com/"&gt;Click here&lt;/a&gt; to see a fully baked example of an interactive visualization built on top of D3. For an application like this, static data is packed and loaded together with your application. But there are a few limitations with this approach, especially when the size data is large (for example, greater than 200 MB)…&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;The app takes a lifetime to load.&lt;/li&gt;
&lt;li&gt;The browser occupies a large amount of memory, which can even cause the browser to crash if the size of data exceeds the limit.&lt;/li&gt;
&lt;li&gt;It’s not easy to handle filtering and association.&lt;/li&gt;
&lt;li&gt;It can be difficult to manage state as the data is explored and filtered.&lt;/li&gt;
&lt;li&gt;It’s difficult to handle dynamic data.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;One alternative is to query a database, requesting and receiving data as we go, but this also has limitations. The main drawback is the query latency that the user may experience. Usually, a query based system takes 0.5–3 seconds to respond to user action, which diminishes the user experience and purpose of an interactive dashboard. 😟&lt;/p&gt;

&lt;h3&gt;
  
  
  Qlik Core to the rescue — but what &lt;em&gt;is&lt;/em&gt; Qlik Core?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Rg21vyui--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1600/1%2ANlcaOoOfeficrIKVBnsLEg.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Rg21vyui--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1600/1%2ANlcaOoOfeficrIKVBnsLEg.jpeg" alt="Paw Patrol Picture"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Irrelevant Paw Patrol picture (I’m a new parent), from &lt;a href="https://www.hollywoodreporter.com/live-feed/nickelodeon-renews-paw-patrol-3-more-preschool-series-1113681"&gt;here&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Qlik Core gives you direct access to the first data engine of its kind. And “data engine” is neither a data warehouse nor a database. It is a mechanism to handle data association, analytics and state, especially in large volumes of data.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And when you have this data engine at the 🧡 of an application, you don’t need to send a query to receive the data. Even pulling from different sources, Qlik Core can load the data into memory, process and index it, then power web applications reactively. The data becomes an in-memory instance and your web app now connects to Qlik Core via a WebSocket— all calculations and associations are handled remotely.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;So, as mentioned, there are many advantages to using Qlik Core, especially if the data volume is large…&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;The application data resides in a server instead of being passed to the frontend. This not only increases usability from the viewer’s perspective, but it also reduces the load of the server, causing both frontend and backend performance to improve significantly. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;The developer doesn’t need to worry about wiring up filtering and association through their code. All of this, as well as state management, is handled by Qlik Core now and the app’s visualizations and interactivity can simply hook into the engine. &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On top of all this, Qlik Core is great at loading data from different data sources and meshing them into one. &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;So, we’re killing several birds with one stone as they say. And now you know why I think this product is amazing (😍 → that’s me building with Qlik Core and I swear it’s not just because I work at Qlik).&lt;/p&gt;

&lt;h3&gt;
  
  
  Ready to get started?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/xT9IgzUuC5Ss6ZnTEs/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/xT9IgzUuC5Ss6ZnTEs/giphy.gif" alt="ready to get started gif?"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Hopefully, you're nodding like this.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Qlik Core is pretty new so getting started can be somewhat tricky (we’re working on improving this but in the meantime, please give us feedback). The official documentation for Qlik Core is at &lt;a href="https://core.qlik.com/"&gt;https://core.qlik.com/&lt;/a&gt;. There you’ll find &lt;a href="https://core.qlik.com/get-started/"&gt;this tutorial&lt;/a&gt; which I find pretty straightforward. Following the instructions will get your Qlik Core instance running quickly, especially if you’re familiar with Docker. There is also a tutorial &lt;a href="https://www.youtube.com/watch?v=KSa6nL6goOs"&gt;video&lt;/a&gt; created by Qlik Branch (more to come but this our home for all that is developer and Qlik) which goes through the basics. &lt;/p&gt;

&lt;p&gt;But what is after this?&lt;/p&gt;

&lt;h3&gt;
  
  
  Let me show you with some simple examples…
&lt;/h3&gt;

&lt;p&gt;I have built some examples to illustrate how Qlik Core is used. Basically, to use Qlik Core, you need &lt;a href="https://help.qlik.com/en-US/sense-developer/September2018/Subsystems/APIs/Content/Sense_ClientAPIs/enigmajs/enigmajs-introduction.htm"&gt;enigma.js&lt;/a&gt; (one of Qlik’s open source libraries) to easily communicate with the engine using JavaScript. The only way to talk to Qlik Core is via our &lt;a href="https://help.qlik.com/en-us/sense-developer/2.1/Subsystems/EngineAPI/Content/introducing-engine-API.htm"&gt;Engine API&lt;/a&gt; which is a language-agnostic, WebSocket-based API. Enigma.js is simply a wrapper library for this. &lt;/p&gt;

&lt;p&gt;So, here are some examples so you can better understand how Qlik Core works…&lt;/p&gt;

&lt;p&gt;*️⃣ &lt;a href="http://jsfiddle.net/wuzhong/7fmru3kd/"&gt;Hello engine example&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*️⃣ &lt;a href="http://jsfiddle.net/wuzhong/1vg47myc/"&gt;Hello data example&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*️⃣ &lt;a href="https://q-core-healthcheck.herokuapp.com/"&gt;Check if a Core instance is healthy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*️⃣ &lt;a href="https://q-model-viewer.herokuapp.com/"&gt;View data model in an app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;*️⃣ &lt;a href="http://ec2-54-255-168-158.ap-southeast-1.compute.amazonaws.com:8080/"&gt;Upload a pre-built app to Qlik Core&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hopefully, this is enough to get you started learning about and using Qlik Core. Over time, we’ll be adding more tutorials, tips and tricks to help developers not only get started with Qlik Core but also with the APIs themselves. &lt;/p&gt;

&lt;p&gt;So keep an eye for that on &lt;a href="https://developer.qlik.com/knowledge"&gt;Knowledge section of Qlik Branch&lt;/a&gt;. In the meantime, check out the tutorials there explaining more about our associative data engine, how it works and how to work with it. And if you are &lt;em&gt;really&lt;/em&gt; interested in Qlik Core or need help, let me know. Just leave a comment below or join our &lt;a href="https://medium.com/r/?url=http%3A%2F%2Fdeveloper.qlik.com%2Fslack"&gt;Qlik Branch Slack&lt;/a&gt; (see the #qlik-core channel or DM me [at]wu_zh).&lt;/p&gt;

&lt;p&gt;Cheers, happy coding and happy Halloween everyone.&lt;/p&gt;

&lt;p&gt;— Wu &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k9knXjIU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1600/1%2AAXlDRbKCE-FReIA-iG0ckQ.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k9knXjIU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1600/1%2AAXlDRbKCE-FReIA-iG0ckQ.jpeg" alt="Halloween Joke Picture"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>qlik</category>
      <category>data</category>
      <category>docker</category>
      <category>d3</category>
    </item>
    <item>
      <title>System Integration with Qlik’s APIs — Why and How</title>
      <dc:creator>Wuzhong</dc:creator>
      <pubDate>Thu, 30 Aug 2018 03:35:57 +0000</pubDate>
      <link>https://dev.to/qlikbranch/system-integration-with-qliks-apiswhy-and-how-58g8</link>
      <guid>https://dev.to/qlikbranch/system-integration-with-qliks-apiswhy-and-how-58g8</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;First of all, this article is not a “how to” tutorial but rather a white paper. It is NOT MEANT FOR TECHNICAL USERS. If you understand the value of APIs and how to use Qlik’s APIs, this is not for you.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;____________________&lt;strong&gt;&lt;em&gt;Qlik Pro’s Stop Here&lt;/em&gt;&lt;/strong&gt;______________________&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;“What are Qlik’s APIs?” 🤔&lt;/p&gt;

&lt;p&gt;“Why would someone want to use an API?” 🤔&lt;/p&gt;

&lt;p&gt;“What can you build using Qlik’s APIs.” 🤔&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you have these questions, you may find this article helpful. This blog is about various types of system integration using Qlik Sense APIs.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  So let’s dive in. With APIs, you can do amazing things. But wait, what is an API?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AFZ3oq1iOJfMl0_x8VFgPIw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AFZ3oq1iOJfMl0_x8VFgPIw.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2A9djymVQcqlaN0lWsDtbewQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2A9djymVQcqlaN0lWsDtbewQ.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2A6UNxUlrS_taO6h0uZa36pA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2A6UNxUlrS_taO6h0uZa36pA.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Behind every click, various events are triggered on the back-end.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AVghBhnFTIHy1fqofKBgjFQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AVghBhnFTIHy1fqofKBgjFQ.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The APIs are the bridge between the front and the back.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2A1fcG3qHoAzWrgXwXuNzyng.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2A1fcG3qHoAzWrgXwXuNzyng.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Usually, user interactions are restricted to front-end elements: buttons, charts, filters, etc.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AFokNr-uBKh5HwBn2YPOj7w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AFokNr-uBKh5HwBn2YPOj7w.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;So when a piece of software implements APIs, it means interactions with the back-end are no longer limited to the software’s native front-end, which opens many possibilities.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AciZOzGjf4T5JSVYsk3EIKw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AciZOzGjf4T5JSVYsk3EIKw.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Now that you know what an API is…what can you build with Qlik Sense APIs?
&lt;/h3&gt;

&lt;p&gt;APIs have always been an important and unique part of Qlik. They are the building blocks of mashups and extensions. If you don’t know about those, below is a brief explanation:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AGlU82u9waWIu6v9WeqE1Jw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AGlU82u9waWIu6v9WeqE1Jw.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But since this article is about system integration, we will focus on mashups.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Here is a random fact: you can build a mashup with extensions. That way, technically you put the visualization you put into Qlik system into your own system.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4&gt;
  
  
  Mashup Lv.1 — build a webpage of iframes
&lt;/h4&gt;

&lt;p&gt;This is probably the simplest kind of system integration. Every chart or table in Qlik Sense has an ID and an URL, which can be found in &lt;a href="https://help.qlik.com/en-US/sense-developer/June2018/Subsystems/Dev-Hub/Content/dev-hub-at-a-glance.htm" rel="noopener noreferrer"&gt;Qlik Sense DevHub&lt;/a&gt; -&amp;gt; single configurator portal.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AlCf6o99hif-Ii5vAZmOyEA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AlCf6o99hif-Ii5vAZmOyEA.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you copy the URL into your browser, you can see the object on the page. A single line of code extracted from the DevHub can, therefore, be added into an existing website to embed a Qlik chart to a web page. Put multiple iframes onto an html file and you have a dashboard.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;So in less than 1 minute, you can build a web page with four lines of code copied from DevHub. 👍&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AysdWbTLCoQ6Jl8j5jsaw-Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AysdWbTLCoQ6Jl8j5jsaw-Q.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Required skill level: ★☆☆☆☆&lt;/p&gt;
&lt;h4&gt;
  
  
  Mashup Lv.2 — mashup with APIs and libraries
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AqCi-Lhi5uO77ztGtz66FaA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AqCi-Lhi5uO77ztGtz66FaA.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;
See how it is implemented in the [Walkers Dashboard](http://playground.qlik.com/liveshowcase/playground-zombie/main.html)



&lt;p&gt;The Walkers Dashboard is an example on &lt;a href="http://playground.qlik.com/" rel="noopener noreferrer"&gt;Qlik Playground&lt;/a&gt; created by &lt;a href="https://github.com/fkabinoff" rel="noopener noreferrer"&gt;Francis Kabinoff&lt;/a&gt; which uses Qlik charts within a web page showing stats on the tv show The Walking Dead. It is a typical mashup built with the Qlik Sense &lt;a href="https://help.qlik.com/en-US/sense-developer/1.0/Subsystems/Workbench/Content/BuildingWebsites/API/qswb_mup_apireference.htm" rel="noopener noreferrer"&gt;capability APIs&lt;/a&gt;. Different from an iframe, charts are rendered using a Qlik javascript library to control the user interaction and object retrieval. This means faster and cleaner execution, customizable elements and other features.&lt;/p&gt;

&lt;p&gt;There is an easy way to create and host your own mashup too. In Qlik Sense DevHub, you can find a tool called &lt;a href="https://help.qlik.com/en-US/sense-developer/June2018/Subsystems/Dev-Hub/Content/MashupEditor/mashup-editor-overview.htm" rel="noopener noreferrer"&gt;Mashup Editor&lt;/a&gt;. It allows users to design their own web application by dragging and dropping Qlik objects onto predefined templates. But if you want to build something different, like The Walker Dashboard, you need to learn javascript and html.&lt;/p&gt;

&lt;p&gt;Required skill level: ★★☆☆☆&lt;/p&gt;
&lt;h4&gt;
  
  
  Mashup Lv.3 — building a Qlik dashboard which looks completely non-related to Qlik
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AWS5K5tnKzIMINrVPi0MOaA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AWS5K5tnKzIMINrVPi0MOaA.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;
See how it is implemented in the&lt;a href="http://playground.qlik.com/liveshowcase/maple-leafs/index.htm" rel="noopener noreferrer"&gt;Maple Leafs Dashboard&lt;/a&gt;



&lt;p&gt;Qlik Sense is business intelligence software, but not only business intelligence software. By using APIs, users may create their own visualizations, on top of a Qlik application, without using charts from Qlik. In this use case, Qlik is no longer a visualization server. It is a data warehouse plus data engine (Qlik’s Associative Engine) behind your dashboard. It handles the data processing, storage and association part but lets third-party technologies take care of the presentation part.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you are doing this, you are entitled to call yourself a Qlik Pro. 😁 The Qlik Sense DevHub Mashup Editor won’t help you at this level. You have to write every line of front-end code by yourself.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Required skill level: ★★★☆☆&lt;/p&gt;
&lt;h4&gt;
  
  
  Mashup Lv.4 — using enigma.js and engine API
&lt;/h4&gt;

&lt;p&gt;Most Qlik developers do not use &lt;a href="https://help.qlik.com/en-US/sense-developer/April2018/Subsystems/APIs/Content/enigmajs/enigmajs-introduction.htm" rel="noopener noreferrer"&gt;enigma.js&lt;/a&gt; and the &lt;a href="https://help.qlik.com/en-US/sense-developer/April2018/Subsystems/EngineAPI/Content/introducing-engine-API.htm" rel="noopener noreferrer"&gt;engine API&lt;/a&gt;. For many, the capability API is enough for most use cases.&lt;/p&gt;

&lt;p&gt;Enigma.js is a wrapper library on top of the engine API. While the capability APIs are run from a user’s browser, enigma.js can be run on an application server to interact with Qlik before serving a web page to a user. In fact, the capability API also implements enigma.js inside of an Angular application packed using require.js.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F0%2A0wY-WYnmMD-PsxSL" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F0%2A0wY-WYnmMD-PsxSL" alt="Alt text of image"&gt;&lt;/a&gt;&lt;br&gt;
The engine API is the communication protocol between the Qlik Sense server and the Qlik Sense client. The &lt;a href="https://help.qlik.com/en-US/sense-developer/June2018/Subsystems/Dev-Hub/Content/EngineApiExplorer/engine-api-explorer.htm" rel="noopener noreferrer"&gt;Engine API Explorer&lt;/a&gt; is a tool in DevHub where you can learn how the front-end talks to the back-end. Unless you are building your own support library, Enigma.js should cover most of your integration needs.&lt;/p&gt;

&lt;p&gt;Required skill level: ★★★★☆&lt;/p&gt;
&lt;h4&gt;
  
  
  Mashup(?) Lv.MAX — leveraging on the engine itself
&lt;/h4&gt;

&lt;p&gt;When you know the technology inside out, you may want to use the data engine (aka Qlik’s Associative Engine) outside of the business intelligence space. Examples speak for themselves, check them out...&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2A0013QeegwbHZeZpkgE4Yig.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2A0013QeegwbHZeZpkgE4Yig.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;
See how it is implemented in the&lt;a href="http://opensrc.axisgroup.com/emissions/" rel="noopener noreferrer"&gt;Boston Building Emissions By Axis Group&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AiT_tkVFOP7IDletZwXThcQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AiT_tkVFOP7IDletZwXThcQ.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="http://playground.qlik.com/liveshowcase/hack-challenge-slalom/index.html" rel="noopener noreferrer"&gt;C40 cities building energy by Slalom&lt;/a&gt;



&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2Ah7zXqGZFq4YWnrY1-rcoQw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2Ah7zXqGZFq4YWnrY1-rcoQw.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://www.qlik.com/us/products/qlik-core" rel="noopener noreferrer"&gt;Qlik Core&lt;/a&gt;



&lt;p&gt;Then there are some use cases that are difficult to define — they are certainly not mashups, some of them are not even web applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For example, a business intelligence chatbot…&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2ANdQmvB4llgNaC6YDa8NGFA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2ANdQmvB4llgNaC6YDa8NGFA.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="http://branch.qlik.com/#!/project/5a2fb8474666f1a641bc8e76" rel="noopener noreferrer"&gt;Qlik BotNet&lt;/a&gt;



&lt;p&gt;&lt;strong&gt;And a mirror…&lt;/strong&gt;&lt;br&gt;
&lt;iframe class="tweet-embed" id="tweet-981633788244647937-571" src="https://platform.twitter.com/embed/Tweet.html?id=981633788244647937"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-981633788244647937-571');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=981633788244647937&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;And many people don’t know this —there is a Qlik application behind &lt;a href="http://branch.qlik.com/" rel="noopener noreferrer"&gt;branch.qlik.com&lt;/a&gt;.&lt;/strong&gt; The application handles search and content management specifically. Qlik Branch is an open source project, you can find the code &lt;a href="http://branch.qlik.com/#!/project/5672a4ef2a6e57d03cd9b783" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AglZM5DXXaqIZU6QZinSt7A.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F1600%2F1%2AglZM5DXXaqIZU6QZinSt7A.png" alt="Alt text of image"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="http://branch.qlik.com/#!/" rel="noopener noreferrer"&gt;Qlik Branch&lt;/a&gt;



&lt;p&gt;Required skill level: ★★★★★&lt;/p&gt;

&lt;h3&gt;
  
  
  So, how should you get started?
&lt;/h3&gt;

&lt;p&gt;Just start experimenting! There are resources and examples on &lt;a href="http://playground.qlik.com/" rel="noopener noreferrer"&gt;Qlik Playground&lt;/a&gt;, open source examples on &lt;a href="http://branch.qlik.com/#!/" rel="noopener noreferrer"&gt;Qlik Branch&lt;/a&gt; and plenty of community members on our &lt;a href="http://bit.ly/BranchSlack" rel="noopener noreferrer"&gt;Qlik Branch Slack&lt;/a&gt;. You can also find blogs and Youtube videos about Qlik’s APIs almost effortlessly online.&lt;br&gt;
Let me know your thoughts.&lt;br&gt;
Happy coding. And shout out to all of the amazing developers out there.&lt;br&gt;
Cheers.&lt;br&gt;
— Wu&lt;/p&gt;

</description>
      <category>api</category>
      <category>qlik</category>
    </item>
  </channel>
</rss>
