Monday, January 26, 2015

Developing a JavaScript SDK (Full Presentation)





































































On January 15, 2015, ZoomCharts Co-Founder and CTO Viesturs Zariņš presented at DevClub.lv - a community of Latvian IT specialists that gather monthly and host free talks, presentations, and events to allow the local IT community to share knowledge, network, and communicate. Zariņš discussed the unique challenges faced in developing JavaScript SDK.

Here is a brief overview of his PowerPoint presentation on ZoomCharts, the world’s most interactive data visualization software that will support all your data presentation needs with incredible speed.

What is ZoomCharts?

What defines ZoomCharts advanced data visualization software? It is NOT another HTML5 charts library. It is:

- Interactive
- Fast

- Touch enabled - Supports big data

A long time ago

DOS 6.2 allowed for:

- 320x240x8bpp
- Direct access to pixels on screen
- Assembler for performance

Today, the Web has finally caught up in the graphics department. Now, we have access to:

- Multiple browsers and rendering technologies
- Multiple resolutions
- Performance that varies by browser and device

Development setup:

- We write in JavaScript
- Commit to GitHub
- Build system in JavaScript
- Debug in Chrome
- Run automated tests
- Like WebStorm (and Vim)

Graphics:

Canvas (fast)
SVG (slow)
WebGL (>50%)

Interactive animations:

Zoom in and out of the graph, drag and drop data, all with your mouse or trackpad.

Graceful degradation:

High FPS (frames per second) lets you scale graphics with low image degradation.

Third party libraries:

- Raphael
- Hammer.js
- Leaflet
- Moment.js

Challenges:

- Responsive design: layouts can shift and look nice on desktop screens vs. not so nice on vertical, mobile screens
- Big screen resolutions: uses devicePixelRatio for sharp rendering, but no hardware acceleration beyond 2048x2048
- Safari compatibility: with 100% CPU, input events are blocked and browser locks up; strange code offers fixes
- HTML on canvas: DOM is slow; basic HTML markup must be parsed and rendered manually; text caching helps

Support:

- Process: Trial - Support - Buy
- 1 day issue resolution
- #1 Tell me what I did wrong
- #2 Can you do...

Testing:

- Automated tests on every GIT push

Automatically:

- Compare images
- Record performance
- View errors in console
Interactive testing:

- Next step: record and playback

BrowserStack:
- Interactive mode
- Automated: Selenium API

Debugging:

Chrome Developer tools (F12)

- Debugging
- Profiling
- Timeline

Remote debugging available: https://developer.chrome.com/devtools/docs/remote-debugging

Future:

- More charts
- Extension API
- Memory allocation tracking
- WebGL

We are looking for statically-typed language:

- Error checking
- Performance
- Superior minification

- Easy to write and read
- Easy to call from JS

Building

Custom build script:

- Compile
- Minify
- Extract documentation
- Embed customer data

Check out ZoomCharts products:

Network Chart
Big network exploration
Explore linked data sets. Highlight relevant data with dynamic filters and visual styles. Incremental data loading. Exploration with focus nodes.

Time Chart
Time navigation and exploration tool
Browse activity logs, select time ranges. Multiple data series and value axes. Switch between time units.

Pie Chart
Amazingly intuitive hierarchical data exploration
Get quick overview of your data and drill down when necessary. All in a single easy to use chart.

Facet Chart
Scrollable bar chart with drill-down
Compare values side by side and provide easy access to the long tail.

ZoomCharts
http://www.zoomcharts.com
The world’s most interactive data visualization software

No comments:

Post a Comment