Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Taming the QIX Engine with Reactive Programming
Search
Speros Kokenes
May 16, 2017
Technology
93
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Taming the QIX Engine with Reactive Programming
Speros Kokenes
May 16, 2017
Other Decks in Technology
See All in Technology
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
470
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
770
Getting Started with Google Antigravity
glaforge
0
300
AI × アーキテクト 第1・2章|生成AIの課題とアーキテクトの素養
daidaidai
0
170
コンテナ運用におけるネットワーク・コンテナコストの削減方法/How to Reduce Network and Container Costs in Container Operations
masakiokuda
1
180
M5Stackで作る BLEマウス GPSログの世界
tomokusaba
0
420
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
430
「事実」を「計測」して、「解釈」する 〜AWS Lambdaのメモリ最適解の見つけ方〜
maimyyym
0
170
"優秀な誰か"の下位互換にならないために
yut0naga1_fa
1
1.8k
今さら理解するウェブフォントver.2026
takanorip
3
770
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
580
QA4AI 2026-Oct 生成AI時代の品質保証
tokuty
1
860
Featured
See All Featured
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Amusing Abliteration
ianozsvald
1
350
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Become a Pro
speakerdeck
PRO
31
6.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Crafting Experiences
bethany
1
380
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
2
950
Making Projects Easy
brettharned
120
6.8k
Transcript
Taming the QIX Engine with Reactive Programming Speros Kokenes Justin
Skaggs Axis Group @sperosck @justin_skaggs
QIX Engine Qlik Sense Client Business Users
Custom Interfaces
None
None
To leverage the QIX Engine Understand how QIX works &
Have a strategy for interfacing with it
Rx Understand how QIX works & Have a strategy for
interfacing with it To leverage the QIX Engine
Why tame QIX? Why Rx? QIX is basically a giant
state machine for a data set Rx handles asynchronous and mutating data easily Rx works well with QIX for scalable, maintainable apps
How does QIX work?
Models data into a state Current State: All 6 records
State can change based on interactions with the data
State can change based on interactions with the data Current
State: All 6 records
State can change based on interactions with the data Current
State: All 6 records Filter to “Monday”
State can change based on interactions with the data Current
State: All 6 records Filter to “Monday” Current State: 2 of 6 records
Users can perform calculations against the data state
Users can perform calculations against the data state Current State:
All 6 records
Users can perform calculations against the data state Current State:
All 6 records Sum of Sales by Fruit?
Users can perform calculations against the data state Current State:
All 6 records Sum of Sales by Fruit?
The QIX Engine Models data into a state State can
change Calculations against state
How do you interact with the QIX Engine? Classes with
methods for interaction: Calculate data Modify the data state Modify the app structure
In summary QIX app models data state that changes over
time State reacts to user input We have to react to the state changes to stay in sync
What is reactive programming?
Programming with asynchronous data streams
Programming with asynchronous data streams Modeling values that change over
time
Imperative example (non-reactive)
Reactive
If you’ve used Excel before, you’ve done reactive programming
None
None
None
None
Observer produce values Observable listen for values subscribing
Observable Observer
Power of Observables Composing them with synchronous-like logic called operators
Observable Operator Observable
None
None
None
How about capturing multi-click events?
How about capturing multi-click events? Example from https://gist.github.com/staltz/868e7e9bc2a7b8c1f754
Benefits: Treat async data… With composable operations With synchronously defined
logic
models data that changes over time on the server QIX
models data that changes over time on the client Rx
RxQ An RxJS wrapper for the QIX Engine API
Engine Classes wrapped in Observables All Engine methods exposed in
Operators What does RxQ do?
Enough slides, let’s code
Simple Hub Example
Simple Hub Example • Custom Hub Interface • Search functionality
• Key Themes • 2 asynchronous sources • Qlik Sense Hub (Doc List) • User (filter hub, sort, search) Hub 1 filterDocs$ search$ Marble Diagram combineLatest .filter( ) =
Combined Hub Example
Combined Hub Example • Multiple Hubs (apps & streams) •
Custom interface • Sort, filter and open applications • Key Themes • 5 asynchronous sources • hub 1, hub 2 • User (filter hub, sort, search) Hub 1 Hub 2 filterDocs$ search$ Marble Diagram combineLatest .filter( ) .filter( ) = +
Chart w/ Filter Example
Chart w/ Filter Example • Key Theme - React to
all the things • User Events -> Change Server State • Server State Change -> Update Client State • Client State Change -> Update Client View filterSelection$ data$ Marble Diagram QIX
How to learn more QIX The QIX Engine - under
the hood - Qlik Dev Group Introduction to Generic Object | Qlik Community Help.qlik.com Qlik Branch Slack
How to learn more RxJS The introduction to Reactive Programming
you've been missing · GitHub RxJS API Document - ReactiveX RxJS Lessons - Screencast Video Tutorials @eggheadio
How to learn more RxQ Tutorial: Build an Interactive Chart
on QIX with RxQ https://github.com/axisgroup/RxQ Ping me on Qlik Branch Slack
= +