SlideShare a Scribd company logo
A HTML5 & IE10
PROOF OF CONCEPT
Thibault Lanssade     Lucas Lampietti
           @tibolan     @lucaslampietti
    App Developper      Architect
                 #JS    #JS
     #HTML5 #CSS3


  Nicolas Massouh       Damien Berseron
  @nicolasmassouh       @hikkyu
 Motion developper      Motion developper
    #CSS3 #HTML5        #CSS3 #HTML5



      Florian Harmel    Loïc Calvy
     @florianharmel     @loic_calvy
Creative Technologist   CTO
                 #JS    #JS
PLEASE, DRAW ME A SLIDOTRON
OUR ANSWER : SNAPYX
SNAPYX ?

WHAT ?                HOW ?

                      HTML5 & CSS3
A CLIENT SIDE
APPLICATION           BACKBONE.JS &
                      BACKBONE-RELATIONAL.JS
SINGLE PAGE           & BACKBONE-
                      INDEXEDDB.JS
APPLICATION
                      APP CACHE (CACHE
OFFLINE USAGE –       MANIFEST)
CLIENT SIDE STORAGE
                      INDEXEDDB
IMAGING TOOL          FILE API / CANVAS
HTML5 / CSS3 : Project structure

CLIENT SIDE APPLICATION
SOME NEW THINGS IN HTML5
SOME NEW THINGS IN HTML5
               .parent {
                 display: -ms-grid;
                 -ms-grid-columns:(220px 10px)[12];
                 -ms-grid-rows: 50px 220px 10px 220px 27px;
               }
               .bloc1 {
                 -ms-grid-column:1; -ms-grid-row:2;
                  height:220px; width:220px;
               }
               .bloc2 {
                 -ms-grid-column:1; -ms-grid-row:4;
                  height:220px; width:220px;
               }
               .bloc3 {
                 -ms-grid-column:3; -ms-grid-row:2; -ms-grid-row-span:3;
                 width:450px; height:450px;
               }
               .bloc4 {
                 -ms-grid-column:7; -ms-grid-row:2;
                  width:450px; height:220px;
               }
               .bloc5 {
                 -ms-grid-column:7; -ms-grid-row:4;
               }
               .bloc6 {
                 -ms-grid-column:9; -ms-grid-row:4;
               }
Backbone.js project organisation

SINGLE PAGE APPLICATION
BACKBONE.JS

 Client Side « MVP » Framework
 REST / JSON
 Server Side handle persistence (and
  create id)
 Models (& Collections) / Views /
  Routes
 Events
 Backbone.Sync
 Template is basically managed by
  Underscore.js
BACKBONE.JS = RAW FRAMEWORK

 No default View
 No default Model
 Router not handle views lifecycles
DEFAULT VIEW

 DefaultView extend initialize to
 remotely get and apply view template
  Templates in lazyloading mode
  HTML indented and easily editable by
    IDE
 Method to unload views
  Disposing HTML in DOM
  Unbind events
WATCH PERFORMANCES
ROUTER

 Adding a business layer to handle init
  splashscreen
 No HTML5 deeplinking
IndexedDB

CLIENT SIDE STORAGE
BACKBONE.JS + BACKBONE-
INDEXEDDB.JS
 Backbone.Sync function overridded
 Change Server Side storage by client
  Side with HTML5 IndexedDB API
 IndexedDB :
  No relationnal local Database
  Complex objects storage as JSON
  Natively asynchronous
 Fork backbone-indexeddb.js :
  Now support chrome 17/
   FF11/IE10DP&CP
  Unit testing : jstestdriver + qunit
WORK WITH INDEXEDDB?

 Developpement phase :
  deletedb or fallback to random db name
    at each F5
 Control : Idbexplorer.htm
 Using unit tests
 No transactions or updating during
  schema version upgrade
 IndexedDB is roughly implemented
  All objects types are not supported
    depending on browsers
FileAPI

LOCAL IMAGE UPLOAD +
PREPARE FOR STORAGE
FILE API

 File API usage context
  Native drag’n’drop from desktop allowing
   multiple file upload
  Binary conversion of the uploaded File
   object
  Keeping model image content for persistent
   storage
 Goal
  Treating large 8M files on client side
  Store it in the right way
  Using it in SVG or Canvas
HOW TO STORE IMAGES? NO KIDING
TO HEAVY FOR FIREBUG????

 First try with base64 :


 To Heavy in DOM and for Firebug!
 Save in blob (FF11 & IE10 CP):
Canvas / SVG

LOCAL IMAGE TREATMENT
WHY CANVAS TO DEAL WITH STATIC
IMAGES?
 SVG limitations
  Unable to export a SVG filter into a Base
   64 string usable in images tag
  Photo filters are harder to calibrate in
   SVG
 Our solution
  Using canvas to treat images px/px
  Using Pixastic library (under MPL)
SUM UP

 A lot of new things
 Need to go fast ;)
 No idea of the performance troubles
  related to HTML5 new things
 Small knowledges on big complex
  HTML5 apps

 Experimental brief
 Experimental technologies
 F*** experimental browser
A SMALL THING WE ARE PROUD OF

An app on the Win 8 Store
http://www.ekino.com/
   @3k1n0

To see or read :

• « Slides, quelques démos et vidéos des sessions IE10/HTML5/CSS3 des Techdays
  2012 » (fr)
  David Roussethttp://blogs.msdn.com/b/davrous/archive/2012/02/20/slides-quelques-
  d-233-mos-et-vid-233-os-des-sessions-ie10-html5-css3-des-techdays-2012.aspx

• Keynote « World of developers » including SnapyX demo (fr)
  MS TechDays 2012 :
  http://www.youtube.com/watch?v=r64B13fh9nc

• Vidéo de présentation de l’application :
  http://www.youtube.com/watch?v=3winPXeMx_c

Frameworks and plugins Used :

• Backbone : here
• Backbone Relational : here
• Backbone Indexed DB
      • Original : here
      • Our fork : here
• Underscore : here
• Pixastic : here
• IdbExplorer : here
• Raphael Goetter CSS3 presentation : here

More Related Content

PDF
Moving to the Client - JavaFX and HTML5
PPT
Moving to the Client - JavaFX and HTML5 (PowerPoint Version)
PDF
VueJS Best Practices
PPTX
Moving to the Client - JavaFX and HTML5
PPTX
Rapid Application Development with MEAN Stack
PPTX
SnapyX
PDF
WordPress development checklist
PPTX
Moving To The Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5
Moving to the Client - JavaFX and HTML5 (PowerPoint Version)
VueJS Best Practices
Moving to the Client - JavaFX and HTML5
Rapid Application Development with MEAN Stack
SnapyX
WordPress development checklist
Moving To The Client - JavaFX and HTML5

What's hot (20)

PDF
GraphQL Bangkok Meetup 6.0
PPTX
JavaFX and HTML5 - Like Curds and Rice
PPTX
Cross-platform JavaScript
PDF
The MEAN stack - SoCalCodeCamp - june 29th 2014
PPT
MVP with GWT and GWTP
PPTX
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
PDF
JS digest. May 2017
PPTX
001. Introduction about React
PDF
Introduction à GWT
PDF
Firebase and AngularJS
PDF
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
PDF
How to keep Drupal relevant in the Git-based and API-driven CMS era - BADCamp
PDF
RIA front-ends: Flex, GWT integration in Nuxeo
PPTX
JS digest, March 2017
PPTX
006. React - Redux framework
PPTX
005. a React project structure
PPTX
JS digest. Mid-Summer 2017
PPT
Node.js
PPTX
The Future Is The Cloud
PDF
WebKit2 And You (GUADEC 2013)
GraphQL Bangkok Meetup 6.0
JavaFX and HTML5 - Like Curds and Rice
Cross-platform JavaScript
The MEAN stack - SoCalCodeCamp - june 29th 2014
MVP with GWT and GWTP
Gutenberg: You Can't Teach an Old Dev New Tricks - WordCamp Chicago 2018
JS digest. May 2017
001. Introduction about React
Introduction à GWT
Firebase and AngularJS
Conquer Architectural Challenges with End-to-End JavaScript - enterJS 2014
How to keep Drupal relevant in the Git-based and API-driven CMS era - BADCamp
RIA front-ends: Flex, GWT integration in Nuxeo
JS digest, March 2017
006. React - Redux framework
005. a React project structure
JS digest. Mid-Summer 2017
Node.js
The Future Is The Cloud
WebKit2 And You (GUADEC 2013)
Ad

Viewers also liked (18)

PPTX
Goodwin’s theory
PPTX
What is the function of a music video
PPTX
Hola
PPTX
How i used video transition (editing)
PPTX
IITI Hub BTP Report
PPTX
Maria chimborazo primero d
PPTX
Analysis of digipak mock up
PPTX
Windows azure overview
PPTX
Don’t hold your breath
PPTX
Locations
PPTX
The Java EE 7 Platform: Developing for the Cloud
PPTX
JAX-RS 2.0: RESTful Web services on steroids
PDF
Качество - залог успеха Maika ua
PPTX
Run leona lewis
PPT
Qstix
PPTX
Ravers
PPTX
Smm для maika
PPTX
Zachman Framework As Enterprise Architecture Ontology
Goodwin’s theory
What is the function of a music video
Hola
How i used video transition (editing)
IITI Hub BTP Report
Maria chimborazo primero d
Analysis of digipak mock up
Windows azure overview
Don’t hold your breath
Locations
The Java EE 7 Platform: Developing for the Cloud
JAX-RS 2.0: RESTful Web services on steroids
Качество - залог успеха Maika ua
Run leona lewis
Qstix
Ravers
Smm для maika
Zachman Framework As Enterprise Architecture Ontology
Ad

Similar to SnapyX - ParisJS (20)

PPTX
Bringing HTML5 alive in SharePoint
PDF
Get Ahead with HTML5 on Moible
PDF
HTML5 and the dawn of rich mobile web applications pt 1
PPTX
HTML5: An Overview
PPTX
The web as it should be
PDF
HTML5 Hotness
PDF
Why Game Developers Should Care About HTML5
PDF
East of Toronto .NET Usergroup - Put the 5 in HTML
PDF
Bd conf sencha touch workshop
PDF
Front-End Frameworks: a quick overview
PDF
Browsers with Wings
PDF
Cross platform mobile web apps
PPTX
HTML5 on Mobile(For Designer)
PDF
HTML5とIE10とWindows 8 in OSC2012会津
PDF
Attractive HTML5~開発者の視点から~
PPTX
Pros and Cons of developing a Thick Clientside App
KEY
HTML5 apps for iOS (and probably beyond)
PDF
Building cross platform mobile web apps
PPTX
Comparing XAML and HTML: FIGHT!
PDF
HTML5がIE10/Windows 8にもたらすもの
Bringing HTML5 alive in SharePoint
Get Ahead with HTML5 on Moible
HTML5 and the dawn of rich mobile web applications pt 1
HTML5: An Overview
The web as it should be
HTML5 Hotness
Why Game Developers Should Care About HTML5
East of Toronto .NET Usergroup - Put the 5 in HTML
Bd conf sencha touch workshop
Front-End Frameworks: a quick overview
Browsers with Wings
Cross platform mobile web apps
HTML5 on Mobile(For Designer)
HTML5とIE10とWindows 8 in OSC2012会津
Attractive HTML5~開発者の視点から~
Pros and Cons of developing a Thick Clientside App
HTML5 apps for iOS (and probably beyond)
Building cross platform mobile web apps
Comparing XAML and HTML: FIGHT!
HTML5がIE10/Windows 8にもたらすもの

Recently uploaded (20)

PPTX
A Presentation on Artificial Intelligence
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Univ-Connecticut-ChatGPT-Presentaion.pdf
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Accuracy of neural networks in brain wave diagnosis of schizophrenia
PPTX
OMC Textile Division Presentation 2021.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
cloud_computing_Infrastucture_as_cloud_p
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Machine learning based COVID-19 study performance prediction
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Spectroscopy.pptx food analysis technology
PDF
A comparative study of natural language inference in Swahili using monolingua...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
A Presentation on Artificial Intelligence
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Unlocking AI with Model Context Protocol (MCP)
Building Integrated photovoltaic BIPV_UPV.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Univ-Connecticut-ChatGPT-Presentaion.pdf
gpt5_lecture_notes_comprehensive_20250812015547.pdf
SOPHOS-XG Firewall Administrator PPT.pptx
Accuracy of neural networks in brain wave diagnosis of schizophrenia
OMC Textile Division Presentation 2021.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
cloud_computing_Infrastucture_as_cloud_p
NewMind AI Weekly Chronicles - August'25-Week II
Mobile App Security Testing_ A Comprehensive Guide.pdf
Encapsulation_ Review paper, used for researhc scholars
Machine learning based COVID-19 study performance prediction
Digital-Transformation-Roadmap-for-Companies.pptx
Spectroscopy.pptx food analysis technology
A comparative study of natural language inference in Swahili using monolingua...
Assigned Numbers - 2025 - Bluetooth® Document

SnapyX - ParisJS

  • 1. A HTML5 & IE10 PROOF OF CONCEPT
  • 2. Thibault Lanssade Lucas Lampietti @tibolan @lucaslampietti App Developper Architect #JS #JS #HTML5 #CSS3 Nicolas Massouh Damien Berseron @nicolasmassouh @hikkyu Motion developper Motion developper #CSS3 #HTML5 #CSS3 #HTML5 Florian Harmel Loïc Calvy @florianharmel @loic_calvy Creative Technologist CTO #JS #JS
  • 3. PLEASE, DRAW ME A SLIDOTRON
  • 4. OUR ANSWER : SNAPYX
  • 5. SNAPYX ? WHAT ? HOW ? HTML5 & CSS3 A CLIENT SIDE APPLICATION BACKBONE.JS & BACKBONE-RELATIONAL.JS SINGLE PAGE & BACKBONE- INDEXEDDB.JS APPLICATION APP CACHE (CACHE OFFLINE USAGE – MANIFEST) CLIENT SIDE STORAGE INDEXEDDB IMAGING TOOL FILE API / CANVAS
  • 6. HTML5 / CSS3 : Project structure CLIENT SIDE APPLICATION
  • 7. SOME NEW THINGS IN HTML5
  • 8. SOME NEW THINGS IN HTML5 .parent { display: -ms-grid; -ms-grid-columns:(220px 10px)[12]; -ms-grid-rows: 50px 220px 10px 220px 27px; } .bloc1 { -ms-grid-column:1; -ms-grid-row:2; height:220px; width:220px; } .bloc2 { -ms-grid-column:1; -ms-grid-row:4; height:220px; width:220px; } .bloc3 { -ms-grid-column:3; -ms-grid-row:2; -ms-grid-row-span:3; width:450px; height:450px; } .bloc4 { -ms-grid-column:7; -ms-grid-row:2; width:450px; height:220px; } .bloc5 { -ms-grid-column:7; -ms-grid-row:4; } .bloc6 { -ms-grid-column:9; -ms-grid-row:4; }
  • 10. BACKBONE.JS  Client Side « MVP » Framework  REST / JSON  Server Side handle persistence (and create id)  Models (& Collections) / Views / Routes  Events  Backbone.Sync  Template is basically managed by Underscore.js
  • 11. BACKBONE.JS = RAW FRAMEWORK  No default View  No default Model  Router not handle views lifecycles
  • 12. DEFAULT VIEW  DefaultView extend initialize to remotely get and apply view template Templates in lazyloading mode HTML indented and easily editable by IDE  Method to unload views Disposing HTML in DOM Unbind events
  • 14. ROUTER  Adding a business layer to handle init splashscreen  No HTML5 deeplinking
  • 16. BACKBONE.JS + BACKBONE- INDEXEDDB.JS  Backbone.Sync function overridded  Change Server Side storage by client Side with HTML5 IndexedDB API  IndexedDB : No relationnal local Database Complex objects storage as JSON Natively asynchronous  Fork backbone-indexeddb.js : Now support chrome 17/ FF11/IE10DP&CP Unit testing : jstestdriver + qunit
  • 17. WORK WITH INDEXEDDB?  Developpement phase : deletedb or fallback to random db name at each F5  Control : Idbexplorer.htm  Using unit tests  No transactions or updating during schema version upgrade  IndexedDB is roughly implemented All objects types are not supported depending on browsers
  • 18. FileAPI LOCAL IMAGE UPLOAD + PREPARE FOR STORAGE
  • 19. FILE API  File API usage context Native drag’n’drop from desktop allowing multiple file upload Binary conversion of the uploaded File object Keeping model image content for persistent storage  Goal Treating large 8M files on client side Store it in the right way Using it in SVG or Canvas
  • 20. HOW TO STORE IMAGES? NO KIDING TO HEAVY FOR FIREBUG????  First try with base64 :  To Heavy in DOM and for Firebug!  Save in blob (FF11 & IE10 CP):
  • 21. Canvas / SVG LOCAL IMAGE TREATMENT
  • 22. WHY CANVAS TO DEAL WITH STATIC IMAGES?  SVG limitations Unable to export a SVG filter into a Base 64 string usable in images tag Photo filters are harder to calibrate in SVG  Our solution Using canvas to treat images px/px Using Pixastic library (under MPL)
  • 23. SUM UP  A lot of new things  Need to go fast ;)  No idea of the performance troubles related to HTML5 new things  Small knowledges on big complex HTML5 apps  Experimental brief  Experimental technologies  F*** experimental browser
  • 24. A SMALL THING WE ARE PROUD OF An app on the Win 8 Store
  • 25. http://www.ekino.com/ @3k1n0 To see or read : • « Slides, quelques démos et vidéos des sessions IE10/HTML5/CSS3 des Techdays 2012 » (fr) David Roussethttp://blogs.msdn.com/b/davrous/archive/2012/02/20/slides-quelques- d-233-mos-et-vid-233-os-des-sessions-ie10-html5-css3-des-techdays-2012.aspx • Keynote « World of developers » including SnapyX demo (fr) MS TechDays 2012 : http://www.youtube.com/watch?v=r64B13fh9nc • Vidéo de présentation de l’application : http://www.youtube.com/watch?v=3winPXeMx_c Frameworks and plugins Used : • Backbone : here • Backbone Relational : here • Backbone Indexed DB • Original : here • Our fork : here • Underscore : here • Pixastic : here • IdbExplorer : here • Raphael Goetter CSS3 presentation : here