Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Taming the QIX Engine with Reactive Programming

Taming the QIX Engine with Reactive Programming

Avatar for Speros Kokenes

Speros Kokenes

May 16, 2017

Other Decks in Technology

Transcript

  1. To leverage the QIX Engine Understand how QIX works &

    Have a strategy for interfacing with it
  2. Rx Understand how QIX works & Have a strategy for

    interfacing with it To leverage the QIX Engine
  3. 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
  4. State can change based on interactions with the data Current

    State: All 6 records Filter to “Monday”
  5. State can change based on interactions with the data Current

    State: All 6 records Filter to “Monday” Current State: 2 of 6 records
  6. The QIX Engine Models data into a state State can

    change Calculations against state
  7. How do you interact with the QIX Engine? Classes with

    methods for interaction: Calculate data Modify the data state Modify the app structure
  8. 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
  9. models data that changes over time on the server QIX

    models data that changes over time on the client Rx
  10. 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( ) =
  11. 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( ) = +
  12. 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
  13. 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
  14. 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
  15. 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
  16. = +