SlideShare a Scribd company logo
HTML5 and CSS3 and
Mobile Applications
SVCC 2013 (10/05/2013)
Foothill College Los Altos
Oswald Campesato
oswald@swiftbot.com
ocampesato@yahoo.com
Main Topics in This Session
CSS3 Features (condensed summary)
CSS3 Graphics/Animation (2D and 3D)
CSS3 and the GPU (must-have support)
Reflow/Repaint (what/when/how/why)
Chrome Continuous Update (CSS3/JS)
CSS3 "Gong" Game (CSS3/jQuery Mobile)
PhoneGap 3.0 Mobile Apps (in 4 lines)
CSS3-base Apps on Glass (also native)
Fun Canvas Demos (video and animation)
CSS3 Features (condensed list)
(Perf) Gradients (linear and radial)
(Perf) Rounded corners/drop shadows
CSS3 filters (merged with SVG filters)
Simple shapes (circle/ellipse/rectangle)
(Perf) 2D and 3D animation
Multi-column support
Exclusions and regions
Flexbox (like “grid bag” in Java AWT)
CSS3 Transforms (summary)
CSS3 2D transforms:
rotate, scale, translate, matrix, and
perspective, and skew (deprecated)
• CSS3 3D transforms (invoke the GPU):
1) similar to 2D versions (but no „skew‟)
2) also three axis-specific methods:
rotateX, rotateY, rotateZ (and so forth)
• CSS3 animation via keyframes rule

Recommended for you

Responsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and TechniquesResponsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and Techniques

Responsive Web design challenges Web designers to adapt a new mindset to their design and coding processes. This talk provides an overview of various practical techniques, tips and tricks that you might want to be aware of when working on a new responsive design project.

cssweb design and developmentresponsive
J query presentation
J query presentationJ query presentation
J query presentation

jQuery is a lightweight JavaScript library that makes HTML document traversal and manipulation, event handling, animation, and Ajax interactions easier. It takes common tasks that require many lines of JavaScript code and wraps them into methods that can be called with a single line of code. Originally created in 2006, jQuery simplifies HTML document navigation and manipulation, as well as event handling, CSS animation, and Ajax interactions for rapid web development. It has a simple syntax of $() selector and action() methods and is now one of the most popular JavaScript libraries.

Make your own Print & Play card game using SVG and JavaScript
Make your own Print & Play card game using SVG and JavaScriptMake your own Print & Play card game using SVG and JavaScript
Make your own Print & Play card game using SVG and JavaScript

Want to leverage your creativity, love of board games, and web platform experience to do something different? Turn your imagination into a Print & Play card game using only a modern web browser, color printer and text editor. This session will use the Scalable Vector Graphics (SVG) image format and JavaScript programming language to make a deck of cards for a simple game. Creating a few cards in graphics software like Inkscape is one thing, but what about 50 or 100 cards? What happens when you need to update them all? That’s the value of generating your SVG using JavaScript. We will start with a blank screen, adding color and graphics elements like lines, shapes, text and images. Learn about container elements and defining content for re-use. Understand how units in the SVG coordinate system can transform our on-screen creation into an 8.5 by 11 inch printed page (or PDF). SVG examples will be both in their native XML format and created from JavaScript using Snap.svg, an open source library from Adobe designed for modern web browsers. You will leave this session with a basic knowledge of SVG concepts, how to programmatically generate SVG using JavaScript, and how to make your SVG creation printer friendly.

javascriptsvg
Frameworks and Toolkits (1)
• Very good HTML5/CSS3 IDEs:
+ Sencha Animator and Adobe Edge (commercial?)
• JavaScript/SVG toolkits:
+ D3 (modern browsers) and Raphael (supports IE6-8)
+ Inkscape for SVG and iD (for maps)
• JavaScript-based toolkits for Canvas:
+ EaselJS, FabricJS, PaperJS
• http://graphicdesignjunction.com/2013/04/html5-
tools-for-designers-developers/
Frameworks and Toolkits (2)
 Workless:
+ an HTML5-CSS3 framework for building cross-browsers
websites
+ started as a mashup of Bootstrap + HTML5 Boilerplate
+ https://github.com/iKreativ/Workless
 Junior:
+ an HTML5 framework for front-end creating mobile
apps that look and behave like native
+ uses CSS3 transitions and supports swipeable
carousels
+ includes various UI components (from Ratchet)
Frameworks and Toolkits (3)
 Literally Canvas:
+ an HTML5 open source widget
+ can be integrated into any page
+ enables users to draw online
+ provides with a simple set of tools including:
draw, erase, color-picker, undo, redo, pan and zoom
 cgSceneGraph:
+ an OO JavaScript animation framework
+ built on top of HTML5 canvas
+ created for apps and games
+ works cross-browser
+ many built-in nodes (images/text/buttons/shapes)
Modular and Scalable CSS (1)
OOCSS: Object Oriented CSS
SMACSS: Scalable and Modular Architecture
for CSS
DRY: Don‟t Repeat Yourself CSS
BEM: Block, Element, Modifier

Recommended for you

Svg
SvgSvg
Svg

SVG (Scalable Vector Graphics) is a XML-based format for defining vector graphics. It allows graphics to be scalable, zoomable and searchable. Common SVG shapes that can be created include circles, rectangles, ellipses, lines, and paths. Attributes like cx, cy, r are used to define properties of circles and ellipses, while x1, y1, x2, y2 define the start and end points of a line. SVG graphics do not lose quality when resized.

HTML5 and CSS3: does now really mean now?
HTML5 and CSS3: does now really mean now?HTML5 and CSS3: does now really mean now?
HTML5 and CSS3: does now really mean now?

Code at http://people.opera.com/cmills/css3book/css3-html5-dnrmn.zip. The browser vendors love them! The browser fans and cutting edge designers are producing some really remarkable stuff, but what do HTML5 and CSS3 really mean for you, the pragmatic designer on the street? If you sidle up to one of those guys and whisper "but what about IE6 support", they are likely to slap you in the face, or run away with their hands clamped over their ears, yelling "la lala lala, I can't hear you." In this talk, Chris Mills will have a look at some of the new features of HTML5 and CSS3 - new semantics, video, media queries, rounded corners, web fonts, drop shadows and more. He will show real world examples, and then look at how they actually perform on those shady older browsers we are often called on to support. He will then look at strategies for providing support for those older browsers, including using JavaScript, fallbacks, and progressive enhancement.

html5alternativecss3
Learn svg
Learn svgLearn svg
Learn svg

This document introduces Scalable Vector Graphics (SVG) and provides an overview of its history, capabilities, and structure. Key points include: - SVG was developed as an open standard by the W3C to provide rich, reusable visual content for the web using XML. - SVG allows for vector graphics that can be scaled, manipulated via scripting, styled with CSS, and more. It provides many advantages over raster graphics. - As an XML format, SVG files are small in size, resolution-independent, and can be dynamically generated and styled on the client-side via JavaScript. - The document outlines SVG's emergence and development timeline, its structure as an XML language, and its

svgebooklearn svg
Modular and Scalable CSS (2)
#1 and #2 avoid id (prefer class)
all share common goals
they use different approaches
provide general guidelines (not absolute)
try to understand underlying principles
then take the relevant parts
What “Works” with CSS3?
Combine any of these with CSS3 in a Web Page:
SVG and D3 (=Data Driven Documents=JS+SVG)
HTML5 Canvas (bitmap and without a DOM)
For Web applications:
jQuery (cross-browser and cross-platform)
BackboneJS (MVP reduces spaghetti code)
AngularJS (open source from Google)
Basically any JavaScript-based toolkit
When CSS3 Alone isn‟t Enough
CSS3 can leverage the power of SVG:
+ reference SVG documents via “url()”
• SVG can leverage CSS3 by:
+ embedding CSS selectors in an SVG doc
use jQuery methods:
+ the css() method for updating properties
• Use jQuery Mobile features:
+ use bindings to handle mouse/touch events
Strengths of CSS3/SVG/Canvas
 CSS3: a) 2D/3D graphics/animation, b) GPU support, c)
embeddable in SVG <defs> element, d) “easing
functions” for animation, e) animate HTML elements
 SVG: a) 2D graphics/animation, b) some GPU support, c)
create arbitrary 2D shapes, d) custom <pattern>s, and e)
grouping via the <g> element, and “easing functions in
D3 (but SVG cannot animate HTML)
 Canvas: a) 2D graphics/animation, b) GPU support, c)
good for updating many small objects (games), d) works
with video (use ThreeJS/WebGL for 3D animation)

Recommended for you

Trendsetting: Web Design and Beyond
Trendsetting: Web Design and BeyondTrendsetting: Web Design and Beyond
Trendsetting: Web Design and Beyond

My presentation for A Day In The Life Conference - April 9, 2011 - Baltimore, MD. http://adayinthelifeconference.com

introhtml5trends
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web Development

HTML5 is the next generation web development standard that improves upon HTML4 and XHTML. It focuses on features rather than syntax, and includes new elements like <article> and <section>, native audio/video support, drawing APIs, geolocation, drag and drop, web forms 2.0, and more. HTML5 aims to improve multimedia capabilities while keeping code readable by humans and machines. It is supported by all major browsers, though support for specific features may vary, and polyfills can help with backwards compatibility.

html5web 2.0audio
[SF HTML5] Responsive Cross-Device Development with Web Standards (2013)
[SF HTML5] Responsive Cross-Device Development with Web Standards (2013)[SF HTML5] Responsive Cross-Device Development with Web Standards (2013)
[SF HTML5] Responsive Cross-Device Development with Web Standards (2013)

This document discusses cross-device development using web standards. It covers the concepts of adaptive design, responsive design, fluid layouts, media queries and responsive images. For layouts, it discusses moving from fixed tables and floats to newer CSS techniques like flexible boxes, multi-column layouts, and CSS grids. It provides examples of fluid layouts using these techniques. It also covers media queries in depth, including using them for breakpoints, device characteristics like orientation and resolution. The document discusses challenges and solutions for responsive images, including resolution switching, art direction, high DPI images, and emerging standards like srcset and the picture element.

rwdw3chtml5
Useful Features of SVG (summary)
An XML-based vocabulary for 2D shapes:
render circles/ellipses/elliptic arcs
squares/rectangles/parallelograms
cubic/quadratic Bezier curves
arbitrary polygons
linear/radial gradients and filters
mouse events and animation support (*)
good for charts/graphs
works well with CSS3
(*) consider using D3.js
Other Aspects of SVG
 SVG elements are inserted in the DOM so you can
track/manage groups of SVG elements
 no blurred/jagged edges when zooming in
 Convenient format for import/export between tools
 Can apply XSL stylesheets to SVG documents
On the other hand:
• Verbose (what do you expect? It‟s XML)
• Can be difficult/incomprehensible (SVG tiger)
 Animation code can be cumbersome/tedious
 Consider D3 instead of “pure” SVG
Blog by Patrick Dengler: SVG versus Canvas
The Famous SVG Tiger
Contents of SVG Tiger
• 100K SVG file versus 140K PNG file
• Contains 240 SVG <path> elements
<svg:path d="M-122.304 84.285 C-122.304 84.285 -
122.203 86.179 -123.027 86.16 C-123.851 86.141 -
140.305 38.066 -160.833 40.309 C-160.833 40.309 -
143.05 32.956 -122.304 84.285z"/>
NVIDIA GPU-accelerated SVG path rendering:
http://www.youtube.com/watch?v=bCrohG6PJQE

Recommended for you

Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschi
Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschiIasi code camp 12 october 2013 responsive images in the wild-vlad zelinschi
Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschi

The document discusses responsive images and different solutions for optimizing images for responsive design. It begins by providing context on responsive design and the challenges of supporting different devices. It then focuses on images, explaining their importance but also the issues they can cause for performance. The document evaluates several solutions for responsive images including CSS media queries, SVG, Picturefill.js and the proposed picture element. It concludes by noting there is no perfect solution and developers should choose based on their specific needs and constraints.

Html5
Html5Html5
Html5

The document discusses HTML5 and provides an agenda for an HTML5 training session. It introduces HTML5 and covers new HTML5 elements, the <canvas> element for drawing graphics, and how to draw paths, boxes, circles and text on the canvas using JavaScript. It also briefly mentions HTML5 features for media, storage, and forms.

SVG (Devoxx 2011, 2011-NOV-14)
SVG (Devoxx 2011, 2011-NOV-14)SVG (Devoxx 2011, 2011-NOV-14)
SVG (Devoxx 2011, 2011-NOV-14)

This document provides an introduction to Scalable Vector Graphics (SVG). It begins with an agenda that outlines topics including what SVG is, why it should be used, tools for working with SVG, and sample artwork. The document then discusses the history and standards behind SVG, how it works as a vector format, and why it may be preferable to other formats like JPEG, PNG, Flash or Silverlight. Browser support, manual and programmatic production of SVG files, and related resources are also covered. The document concludes with an invitation for questions.

svgdevoxx
CSS3 for SVG 3D Effects
 #1: create an SVG document
 #2: create an SVG <defs> element
 #3: create CSS3 selectors with CSS3 3D animation effects
and put them in a <style> element
 #4: insert the <style> element in <defs> element
 #5: set the “class” attribute in SVG elements so that it
matches a CSS3 selector in the <style> element
Example: 3DSineWave4RG2TurbFilterAnim1.svg
NB: You can also reference an external CSS stylesheet
CSS3+SVG or CSS3+D3?
CSS3+SVG: useful when 1) you already have
SVG-based data and 2) you must support IE6
(can do with Raphael toolkit but not D3)
• CSS3+D3: for modern browsers, and also easier
for defining event handlers and animation
(probably also easier to maintain/enhance)
• Notes:
• CSS3+SVG might not have GPU support
• Consider D3 with BackboneJS/AngularJS/etc
What about CSS3 and HTML5 Canvas?
Insert a <canvas> element in a Web page
• JavaScript APIs for 2D shapes (similar to Skia)
All shapes are rendered in a <canvas> element
Modern browsers support <canvas> element
“write-and-forget” (no DOM-based “history”)
• CSS3 selectors can match the <canvas> element
• Canvas often faster than SVG for showing
polygons
• Tracing Canvas calls:
http://www.html5rocks.com/en/tutorials/canvas/ins
pection/
Which is Faster: CSS3/Canvas/SVG?
• CSS3 is faster than Canvas for simple animation:
http://phrogz.net/tmp/image_move_speed.html
• CSS3 is faster than SVG for gradients
• D3 is better/faster than SVG for “follow the
mouse”
• Canvas is better than SVG for many small objects
• Test/compare performance on mobile devices

Recommended for you

Dynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and MobileDynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and Mobile

The document discusses responsive design techniques for desktop and mobile interfaces. It covers: - Adapting layouts using AlloyUI Viewport and media queries to target different screen sizes. - Dynamically retrieving data using the Pjax utility and ScrollInfo plugin. - The future potential of CSS Flexbox layout for complex responsive designs.

flexiblecssinterfaces
7 Things Testers Should Know About The Cloud with Bill Wilder & XBOSoft March...
7 Things Testers Should Know About The Cloud with Bill Wilder & XBOSoft March...7 Things Testers Should Know About The Cloud with Bill Wilder & XBOSoft March...
7 Things Testers Should Know About The Cloud with Bill Wilder & XBOSoft March...

“Software designed to take advantage of public cloud features is different from traditional software. It stands to reason that testing such software will require some different insights and approaches.” -- Bill Wilder, Windows Azure, MVP In this talk, author and cloud consultant Bill Wilder covers 7 Things testing pros ought to know about the public cloud. The tips span cloud tools for better process and execution, walks you through real examples in Windows Azure, and highlights considerations to streamline the process between dev and test.

software testingsaasiaas
jQuery Comes to XPages
jQuery Comes to XPagesjQuery Comes to XPages
jQuery Comes to XPages

Whether you want to add some serious eye candy to your XPages Applications or just want to do more with less code, jQuery, the world’s most popular JavaScript framework can help you. Come to this webinar and find out how you can use some of the thousands of jQuery plugins, in harmony with Dojo, within your XPages applications to create a better experience not only for your users, but for you as a developer. In this webinar, we'll look at how jQuery works, how to add it to your XPages, and how a complete JavaScript beginner can take advantage of its power. We'll demonstrate many working examples -- and a sample database will be provided.

What is a GPU?
Graphics Processing Unit
A GPU is a single-chip dedicated processor
Boost the performance of video/graphics:
2-D or 3-D graphics
Digital output to flat panel display monitors
Texture mapping
MPEG decoding
Rendering polygons
Hardware overlays
Nvidia and GPUs
• The first GPU:
developed by NVidia in 1999 (GeForce 256)
processed 10 million polygons/second
contained more than 22 million transistors
• Nexus 7 2 (Android 4.3):
400MHz Adreno 320 Snapdragon S4 Pro
64 ALU, 400MHz, 57GFLOPS
GPU Support in Browsers
 the browser must be able to use the driver of the graphics
card installed on the host OS
 GPU acceleration for one browser on a given machine
doesn‟t guarantee support for all browsers
 Opera: hardware acceleration turned off by default
(might have changed recently)
 http://www.useragentman.com/blog/2012/09/23/cross-
browser-gpu-acceleration-and-requestanimationframe-in-
depth/
CSS3 and GPU Acceleration
 Add a “go faster hack” (aka “null transform”)
 common CSS3 transforms to invoke the GPU:
translate3D(0,0,0) or translateZ(0)
• Preceding “no-op” guarantees GPU is invoked
• Absence of such code does not mean that the GPU is not
invoked
• Convert some/all 2D transforms (except skew) to 3D?

Recommended for you

Top 10 HTML5 features
Top 10 HTML5 featuresTop 10 HTML5 features
Top 10 HTML5 features

HTML5 contains many new interesting features that make the platform a capaple development platform. Sockets, SVG, geolocation, local storage and many more are included in the platform. In this one hour session, we will look at cool implementations of 10 features of HTML5

htmljavascripthtml5
Svcc 2013-d3
Svcc 2013-d3Svcc 2013-d3
Svcc 2013-d3

This document provides an overview of a presentation on using D3 for data visualization on desktops, smartphones, and Google Glass. It discusses how D3 works, examples of basic charts like scatter plots and bar charts using D3, and how to incorporate features like mouse interactions, animations, filters and gradients. It also covers using D3 with technologies like Android, PhoneGap, and Google Glass to create mobile visualizations.

d3svg
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)

This document provides an overview of a presentation on using D3 for data visualization on desktops, smartphones, and Google Glass. It discusses topics like what D3 is, how it works, examples of creating simple charts and adding interactivity with mouse events, using SVG filters and gradients, and integrating D3 visualizations into Android and Google Glass apps. It also briefly mentions related technologies, resources for learning more, and potential training topics.

d3svg
Chrome and the “Null Transform”
#1) Chrome switches on hardware compositing mode (if
supported and not already “on”)
#2) Chrome creates a new layer and “backing surface”
Comments:
• A “backing surface” (= bitmap?) is a graphics context
(aka texture) into which layers are drawn
• Backing surfaces are uploaded to the GPU
• Layers sometimes share the same “backing surface”
• Rules that Chrome uses for creating new backing surfaces
in the next slide…
Chrome + Layers + Backing Surfaces
Chrome creates new backing surface if a layer:
1) uses 3D or perspective transform CSS properties
2) is used by <video> element using accelerated video
decoding
3) is used by a <canvas> element with a 3D context or
accelerated 2D context
4) uses a CSS animation for its opacity or uses an animated
webkit transform
5) uses accelerated CSS filters
6) has a descendant that is a compositing layer
7) has a sibling with a lower z-index which has a compositing
layer (is the layer rendered on top of a composited layer?)
Null Transform: can it be slower?
 Try this sample code in your browser:
http://dl.dropboxusercontent.com/u/17844821/zeug/
hwtest.html
 Contains 4,000 small <div> elements
 Original stackoverflow post (04/2012):
http://stackoverflow.com/questions/10014461/why-
does-enabling-hardware-acceleration-in-css3-slow-
down-performance
CSS3 Mask + Performance
• Mask results in a new offscreen buffer (OSB)
GPU first writes to the OSB instead of directly to
VRAM (Video RAM)
then the OSB contents are copied to VRAM
VRAM is comparatively limited on mobile
devices and it‟s “easily exhausted”
rounded corners and drop shadows use mask
combination of rounded corners and drop
shadows is extra slow;(

Recommended for you

Pres valor real-opendata -aag_120412_v01
Pres valor real-opendata -aag_120412_v01Pres valor real-opendata -aag_120412_v01
Pres valor real-opendata -aag_120412_v01

Este documento analiza el uso real de datos abiertos ("opendata") en gobiernos. Clasifica los tipos de información que los gobiernos suelen publicar como datos abiertos, como información geográfica, meteorológica, económica, social, de tráfico, turismo y agricultura. También muestra estadísticas sobre qué datos son los más descargados en las comunidades autónomas del País Vasco y Navarra, como calendarios laborales y mapas. El objetivo final es medir el retorno de la inversión de public

Pres valor real-opendata -aag_120412_v01
Pres valor real-opendata -aag_120412_v01Pres valor real-opendata -aag_120412_v01
Pres valor real-opendata -aag_120412_v01

Este documento analiza el valor real del uso de datos abiertos (opendata). Presenta un diagrama sobre el "círculo estúpido" de la implementación de opendata por parte de políticos y ciudadanos. Luego enumera diferentes formas en que los datos abiertos podrían generar valor a través de ingresos fiscales, ahorros en servicios sociales, mejoras en productividad, y reducciones en corrupción y evasión fiscal. Finalmente, clasifica los tipos de información pública disponible como datos abiertos en diferentes regiones de España.

OWC 2012 (Open Web Camp)
OWC 2012 (Open Web Camp)OWC 2012 (Open Web Camp)
OWC 2012 (Open Web Camp)

This document discusses 3D graphics techniques using CSS3, jQuery, CSS shaders, and WebGL. It provides demonstrations of 3D effects created with only CSS3 and jQuery mobile code. CSS shaders and WebGL allow more complex 3D graphics by using vertex and fragment shaders. Toolkits like Three.js and tQuery.js simplify working with WebGL. The document recommends books and meetups for learning more about these technologies.

What are Reflow and Repaint?
Reflow: process of calculating the position
of elements in a Web page
Repaint: re-rendering pixel colors in a Web page
Compare “display” versus “visibility” in CSS:
+ display: none it‟s neither present nor visible so it
requires reflow and repaint
+ visibility: hidden it‟s still present, so no geometry
change, and only repaint is required
(Performance difference is small in this scenario)
What Causes Reflow and Repaint?
scroll and hover
box-shadow and drop shadows
floats and tables
opacity and gradients
border-radius
transparency and transitions
changing the font size
Add/remove/update the DOM
Leaf-side nodes: probably small changes
Top-side nodes: propagation can cause
many changes
Chrome and Layout Changes
 Chrome "batches" layout changes asynchronously
in order to maximize rendering performance
• Style information causes synchronous updates:
+ offsetTop, offsetLeft
+ offsetWidth, offsetHeight
+ scrollTop/Left/Width/Height
+ clientTop/Left/Width/Height
+ getComputedStyle()
 The goal: find and eliminate JavaScript code
and/or CSS selectors that cause synchronous
updates
Avoid Synchronous Updates (why?)
#1) Any request for style information about a
node forces the browser to provide the most
up-to-date value.
#2) In order to do so, the browser must apply
all scheduled changes, flush the queue, and
perform a reflow.
Minimize this type of code:
el.style.left = el.offsetLeft + 10 + "px";

Recommended for you

How are we working to improve life in our cities?
How are we working to improve life in our cities?How are we working to improve life in our cities?
How are we working to improve life in our cities?

The document discusses how open data from cities can enable third party developers to create applications that improve city services and quality of life for citizens. It provides examples of applications developed using open data from various cities, including Barcelona, Amsterdam, and cities around the globe. These applications have been successful and in some cases outcompeted the cities' own applications. The document advocates for cities to release more open data to enable more third party innovation and improve services for citizens.

appscustomer experienceopen government
Data Binding: Is It the Next Big Thing?
Data Binding: Is It the Next Big Thing?Data Binding: Is It the Next Big Thing?
Data Binding: Is It the Next Big Thing?

This document discusses data binding in Android development. It begins by explaining what data binding is, which is connecting UI components to data sources. It then shows how data binding improves upon traditional MVC patterns. The document proceeds to demonstrate how to implement data binding through layout files, view models, and generated binding classes. It explores observable objects, collections, and fields to notify UI of data changes. Attribute bindings and custom bindings are also covered to extend XML and reduce boilerplate code. Overall, the document promotes data binding as a way to write less code, build more maintainable apps, and enable easier testing through separation of UI and logic.

data bindingmobile developmentframework
Android Data Binding Support Library
Android Data Binding Support LibraryAndroid Data Binding Support Library
Android Data Binding Support Library

Data binding is a declarative way to bind UI components to application data sources. It minimizes code needed to bind layouts to data and supports MVVM pattern. Data binding engine allows binding layouts to observable data sources and updating UI automatically when data changes. It works on Android 2.1+ and uses XML syntax like <layout> and @{} to bind variables and call methods.

mvvmandroidmobile development
The Painting Process
 browser combines DOM and CSSOM
 Involves “Skia” for:
+ rasterizing software with Canvas-like APIs
+ output is set of bitmaps
• bitmaps are sent to the GPU and:
+ GPU composites them (calculates pixel values)
+ renders the output on screen
"Compositing is the process where each of the individual
textures uploaded to the GPU is drawn
out in turn and results in the final page."
Using/Examining the Timeline (1)
• Open Web Inspector and click on “Timeline”
• Click the (black) “start button
• search for elements with significant paint time:
look for “long” horizontal bars
Now do this:
 toggle the CSS styles of those elements to
determine performance culprit(s)
 search for yellow warning icon in the timeline
 hover over these records
 You will see a “stack trace” that contains:
1) invalidating code, and also
2) code that caused the layout
Using/Examining the Timeline (2)
Detailed Timeline instructions:
https://developers.google.com/chrome-
developer-tools/docs/timeline
Some Topics (many others as well):
Analyzing Timeline recordings
Viewing details about a record
Locating forced synchronous layouts
Emulate touch events
Using Chrome Continuous Paint (CCP)
• #1: load a Web page into browser
• #2: Web Inspector > Profiles and select:
a) Collect JavaScript CPU Profile or
b) Collect CSS Selector Profile
• #3: “Start CPU Profiling” by clicking on black dot in
lower-left corner
• #4: Navigate around elements in the screen
• #5: “Stop CPU Profiling” by clicking on red dot
• #6: examine the newly generated timeline
• Note: CCP is in Chrome v29

Recommended for you

Data binding
Data bindingData binding
Data binding

Presentation by DataBinding done by Leonid from GDG and me at "Sweetest aMazing" session at Google Cloud Next event.

androidandroid academymvvm
Infinum Android Talks #14 - Data binding to the rescue... or not (?) by Krist...
Infinum Android Talks #14 - Data binding to the rescue... or not (?) by Krist...Infinum Android Talks #14 - Data binding to the rescue... or not (?) by Krist...
Infinum Android Talks #14 - Data binding to the rescue... or not (?) by Krist...

We're checking out new data binding lib announced on the last Google I/O. We'll go in depth of data binding - goals, benefits and drawbacks. Less code should mean less bugs - in theory.

androidandroid softwaremobile apps
SVG, CSS3, and D3 for Beginners
SVG, CSS3, and D3 for BeginnersSVG, CSS3, and D3 for Beginners
SVG, CSS3, and D3 for Beginners

This document provides an overview of SVG, CSS3, and D3 for beginners. It covers key SVG elements like <line>, <ellipse>, <rect>, <polygon>, and <path> as well as features like gradients, filters, transforms and animation. It also demonstrates CSS3 concepts like rounded corners, gradients and transforms. Examples are provided in HTML files with linked CSS style sheets. The document then introduces D3, an open source JavaScript library for data visualization that uses SVG, HTML and CSS. Key D3 concepts, functionality and use cases are outlined.

svgd3css3
CSS3 Flying Borg Cube (Demo)
CSS3 2D skew (for the three cube faces)
CSS3 3D linear/radial gradients
CSS3 2D and 3D transforms
CSS3 3D animation effects (keyframes)
No JS so select CSS profiling in Chrome
How Browsers Parse CSS Selectors
browsers read selectors right-to-left:
this is a "bottom up" approach
the “key” selector: the right-most part of a
CSS selector
Why right-to-left is more efficient:
a) element:parent is 1:1 whereas
b) parent:child is many:1
Rewriting CSS Selectors (1)
 Sample CSS and HTML:
#mylist a { ... }
<ul id="mylist">
<li a=... class="abc" .../>
<li a=... class="abc" .../>
<li a=... class="abc" .../>
….
</ul>
Suppose you have:
1) 100 <a> elements, and
2) you only want the three <a> with an 'abc' class
Rewriting CSS Selectors (2)
This CSS selector matches 100 elements:
#mylist a { ... }
This CSS selector matches 3 elements:
#mylist .abc { ... }
• Ariya Hidayat (Continuous Painting):
http://css.dzone.com/articles/continuous-painting-
mode

Recommended for you

SVGD3Angular2React
SVGD3Angular2ReactSVGD3Angular2React
SVGD3Angular2React

The document discusses features of SVG and D3, including different SVG elements, colors/gradients/filters, transforms and animation, and how D3 builds upon SVG to enable data visualization. It provides examples of creating basic SVG shapes and charts with D3, binding data to DOM elements, adding mouse interactions and transitions. It also covers using D3 with other technologies like Angular, working with different data formats and large datasets, and transpires for working with modern JavaScript.

svg d3 angular2 reactjs
How to develop an Android Weather app using Weatherlib
How to develop an Android Weather app using WeatherlibHow to develop an Android Weather app using Weatherlib
How to develop an Android Weather app using Weatherlib

Android weather lib tutorial. How to code an android app using weatherlib in github

opensourceandroidapp
React nativebeginner1
React nativebeginner1React nativebeginner1
React nativebeginner1

This document provides an introduction and overview of React Native, including what it is, how it works, and how to set it up for both iOS and Android development. It discusses some key differences between React Native and traditional web development, provides code samples and explanations of common React Native components and patterns, and outlines steps for creating a new React Native project. It also addresses common errors and links to additional documentation resources.

swiftandroidreact native
Sample Selector and “Efficient” CSS
 calculate/layout/paint in a sample selector:
.results h2 { // recalculate style
height: 25px; // layout
text-shadow: 2px black; // paint
}
 fast/efficient CSS (with null transform hack):
scale/translate/rotate/fade (opacity)
• Other operations incur layout and/or paint
• Paul Irish (Performance Tooling):
http://www.youtube.com/watch?v=HAqjyCH_LOE
Translate() versus top/left/right/bottom
 Factors in favor of translate():
+ tends to perform better
+ translate() does not touch the DOM
+ involves subpixels (and smoother due to blurring effect)
+ use it for “design-y motion” (animating a button press)
 Factors in favor of top/left/right/bottom:
+ use when element has relative/absolute/fixed positioning
Note: Both can yield different results on different browsers
+ Detailed articles (Chris Coyier/Paul Irish):
http://css-tricks.com/tale-of-animation-performance/
http://www.paulirish.com/2012/why-moving-elements-with-translate-is-
better-than-posabs-topleft/
Bootstrap 3.0 Improvements
 Bootstrap 3.0 is twice as fast as BS 2.3.2
 Provides a “mobile first” responsive grid
 Bootswatch and WrapBootstrap (“full themes”)
 Paul Irish checks BS 3.0 using CCP:
http://encosia.com/the-big-change-in-bootstrap-3-that-no-
ones-talking-about/
• Pamela Fox (“When Bootstrap Attacks”):
http://www.youtube.com/watch?v=xbpnqbM6cRk&feature
=youtu.be&goback=%2Egde_2071438_member_265749116#
%21
Issues with iOS7 and HTML5
 CSS-related requestAnimationFrame animations do not suspend
correctly
 Resizing a composited layer (with 3D transforms) sometimes does not
repaint correctly
 Performance issues for SVG animation
 Launching/quitting same home-screen app several times can hard-
lock your device
 Maximiliano Firtman‟s iOS7/HTML5 post:
http://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis-
review

Recommended for you

Angular2 for Beginners
Angular2 for BeginnersAngular2 for Beginners
Angular2 for Beginners

Slides for a four-hour Angular 2 workshop that models some real world Angular 2 applications, along with SVG graphics samples.

githubsvghttp
Android NFC
Android NFCAndroid NFC
Android NFC

This document provides an overview of using NFC (Near Field Communication) on Android devices. It discusses registering an NFC intent filter in the manifest to listen for NDEF tags, handling foreground NFC dispatch, interacting with tags using the NfcAdapter class, and reading the payload of NDEF tags which can contain text, URIs, or other data. Future posts will describe extracting specific information from different tag types.

source codetutorialandroid
5 angularjs features
5 angularjs features5 angularjs features
5 angularjs features

This document summarizes AngularJS scopes, digest cycles, data binding, dependency injection, and modularity. It discusses how scopes are created and inherited, how to use $digest and $watch, how expressions are evaluated, the benefits of dependency injection, and best practices for managing modules. Key recommendations include trusting the scope hierarchy, using $apply instead of $digest, avoiding non-isolated directives, and structuring code into independent, testable modules.

angular practices features
CSS3 “Gong” Game (Demo)
 Graphics: pure CSS3 (border-radius=50%)
 Animation: setTimeout() function
 JavaScript: for collision detection
• jQuery Mobile:
+ updating position (jQuery css() function)
+ creating elements (jQuery clone() function)
+ event handlers (jQuery Mobile vmouse)
• Deployed as an Android apk
CSS3 on Mobile: Android (Eclipse)
1) Create an Android app Hello and modify the main xml
layout file and Java file (see below)
2) modify $TOP/res/layout/activity_main.xml:
insert a WebView component (shown later)
3) create the directory $TOP/assets/www
4) Copy Hello.html (+ assets) into $TOP/assets/www
5) modify $TOP/src/com/…/HelloActivity.java:
reference Hello.html in the method onCreate()
Contents of activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<WebView
xmlns:android="http://….”
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
Contents of onCreate() in Java File
= Initial contents:
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
= Additional (appended) contents:
mWebView = (WebView) findViewById(R.id.webview);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.loadUrl(
"file:///android_asset/www/Hello.html");

Recommended for you

TypeScript
TypeScriptTypeScript
TypeScript

This document provides an overview of TypeScript, including: - What TypeScript is and how it supports features like interfaces, classes, and subclasses - How TypeScript uses a compiler to provide type checking and transpiles code to JavaScript - Examples of using basic TypeScript syntax like types, functions, classes, and interfaces - How to set up a TypeScript development environment and use the tsc compiler - Popular IDEs and resources for learning more about TypeScript

tscclassesgenerics
Testable Android Apps using data binding and MVVM
Testable Android Apps using data binding and MVVMTestable Android Apps using data binding and MVVM
Testable Android Apps using data binding and MVVM

The document discusses testing Android apps using data binding and MVVM. It covers setting up the MVVM architecture with a Note taking app example. It discusses using the Model-View-ViewModel pattern with data binding in Android. It also discusses how to write JVM unit tests for the ViewModel and mock dependencies by using stubs and spies.

espressotestingandroid
ECMA5 and ES6 Promises
ECMA5 and ES6 PromisesECMA5 and ES6 Promises
ECMA5 and ES6 Promises

This document provides an overview of a workshop on working with ECMA5 and ES6 including promises. The workshop will cover nested functions/closures, arrow functions, promises, and other ECMA5/ES6 features useful for ReactJS and Angular 2. It includes examples of functions, closures, filter, map, reduce, and promises as well as exercises for participants. Promises are introduced as a way to avoid callback hell and determine success/failure asynchronously.

filter reduce merge currying closures promisesrest spread asynchronousmap
HTML5/CSS3 and PhoneGap
A Plugin to create Hybrid Mobile apps
A JavaScript “bridge”
Available on 6 platforms
PhoneGap 3.0 requires NodeJS
Always creates an index.html Web page
Why use PhoneGap?
No compilation required
No Java/Objective-C code
Handles the manual steps for you
Provides access to hardware (camera/etc)
PhoneGap 3.0 camera/sensors/etc support
is available via different modules
Create/Compile/Deploy in PhoneGap 3.0
Prerequisites: install NodeJS and PhoneGap
Create/compile/deploy:
#1: phonegap create hello com.demo.hello Hello1
#2: cd hello
#3: phonegap build android [ios …]
#4: phonegap install android [ios …]
Combine #3 and #4 with this step:
phonegap run android ios […]
CSS3 Demo on Google Glass
Step #1: create and compile an Android project (let‟s
call it “CSS3Demo”) in Eclipse
Step #2: deploy the Android apk to Glass:
adb install CSS3Demo.apk
Step #3: get the package and main Android Activity:
Let‟s call them “a.b.c” and “CSS3Main”
Step #4: launch from the command line:
adb shell am start -a android.intent.action.MAIN -n
a.b.c/.CSS3Demo

Recommended for you

JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3

The document discusses using Java with HTML5 and related technologies like CSS3 and WebSockets. It provides an overview of HTML5 features like Canvas, SVG, CSS3 animations, and WebSockets. It describes how these features can be used to build interactive client-side applications and how Java servers can integrate with HTML5 apps by saving/retrieving application state and graphics from the client. Java servers can generate graphics like SVG dynamically based on data from HTML5 clients.

websockethtml5java
Streaming of SVG animations on the Web
Streaming of SVG animations on the WebStreaming of SVG animations on the Web
Streaming of SVG animations on the Web

Presentation given during the HTML5 Dev Conf and The Graphical Web, showing how to create and play SVG content in a streaming manner.

graphicsstreamingsvg
Html5 Canvas and Mobile Graphics
Html5 Canvas and Mobile GraphicsHtml5 Canvas and Mobile Graphics
Html5 Canvas and Mobile Graphics

Engin Yağız Hatay gave a presentation on graphics and animation capabilities in web browsers. He discussed several technologies including CSS3, Canvas, SVG, and WebGL, and when each is best suited. He provided details on HTML5 Canvas capabilities and limitations. Hatay also covered browser support for these technologies and recommended several JavaScript libraries that can be used to create graphics and animations, including PaperJS, ProcessingJS, and ThreeJS. He concluded with a discussion of tools and frameworks for mobile graphics development.

mobile graphicspaperjsprocessingjs
CSS3 Resources
• caniuse.com
online forums (Yahoo group)
Various meetup groups in BA
stackoverflow.com
Impressive HTML5 Canvas Demos
• Various HTML5 Canvas demos:
http://www.craftymind.com/factory/html5video/C
anvasVideo.html
http://codepen.io/stuffit/pen/KrAwx
http://davidwalsh.name/canvas-demos
Some “Favorite” People
• Tab Atkins
• Eric Bidelman
• Mike Bostock
• Pamela Fox
• Paul Irish
• John Resig
• Alex Russell
• Steve Souders
• Lea Verou
• David Walsh
• Nicholas Zakas
• Vincent Hardy/Brian Leroux/Tony Parisi (*)
Some Training Topics
• D3/SVG
• HTML5 (CSS3/Canvas/etc)
jQuery/jQuery Mobile
Android (iOS later)
BackboneJS/PhoneGap

Recommended for you

Thats Not Flash?
Thats Not Flash?Thats Not Flash?
Thats Not Flash?

Vector graphics allow shapes to be mathematically represented and scaled smoothly, while raster graphics use a grid of pixels. SVG is an XML format for describing vector shapes and is supported natively by modern browsers. DojoX GFX provides a normalized API for creating vector graphics across browsers using SVG, VML, Canvas, or Silverlight depending on browser support. It implements a procedural subset of SVG for creating shapes and text programmatically similar to the canvas API.

dojoxgfxvector
Vector Graphics on the Web: SVG, Canvas, CSS3
Vector Graphics on the Web: SVG, Canvas, CSS3Vector Graphics on the Web: SVG, Canvas, CSS3
Vector Graphics on the Web: SVG, Canvas, CSS3

This document summarizes different vector graphic options for use on the web. It discusses the differences between vector and raster graphics, and why vectors are preferable for resolution independence and smaller file sizes. It then examines SVG, Canvas, VML, and CSS3 as vector graphic options, outlining browser support, APIs, and common uses for each. While SVG is ideal theoretically, browser support is still limited, so libraries like SVG Web and Raphael.js are recommended to abstract cross-browser differences. In the end, SVG is generally better than Canvas for interactive graphics with events, while Canvas may be better for full-screen animations and games.

html5svgcanvas
Practical tipsmakemobilefaster oscon2016
Practical tipsmakemobilefaster oscon2016Practical tipsmakemobilefaster oscon2016
Practical tipsmakemobilefaster oscon2016

Doris Chen is a senior developer evangelist at Microsoft who focuses on web technologies like JavaScript and HTML5. Her presentation covers optimizing Cordova app performance, including measuring startup cost and memory usage, using CSS for gradients instead of images, animating with translate3d instead of left/top, and handling events through bubbling instead of individual listeners. She provides tips like keeping the DOM simple, batching layout changes, and cleaning up unused objects to prevent memory leaks.

Open Source Projects (graphics)
• Graphics Projects on http://code.google.com/p:
+ css3-graphics and html5-canvas-graphics
+ css3-jquery-graphics and d3-graphics
+ svg-graphics and svg-filters-graphics
+ easel-graphics, fabric-graphics, paper-graphics
+ ThreeJS, jQuery, Raphael, Google Go, Android
+ Dart, Dojo, JSF, Two.js, JavaFX 2.0
+ Lua, PHP, Perl, Python, Ruby, SWT graphics
Recent/Upcoming Books
1) HTML5 Canvas and CSS3 Graphics (2012)
2) jQuery, CSS3, and HTML5 for Mobile (2013)
3) HTML5 Pocket Primer (2013)
4) jQuery Pocket Primer (2013)
5) HTML5 Mobile Pocket Primer (2014)
6) D3 Pocket Primer (2014)
• “WebGL: Up and Running” (Tony Parisi)
Co-creator of VRML and X3D

More Related Content

What's hot

Drupal Backbone.js in the Frontend
Drupal Backbone.js in the FrontendDrupal Backbone.js in the Frontend
Drupal Backbone.js in the Frontend
David Corbacho Román
 
SVG For Web Designers (and Developers)
SVG For Web Designers (and Developers) SVG For Web Designers (and Developers)
SVG For Web Designers (and Developers)
Sara Soueidan
 
SVG - Scalable Vector Graphic
SVG - Scalable Vector GraphicSVG - Scalable Vector Graphic
SVG - Scalable Vector Graphic
Akila Iroshan
 
Responsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and TechniquesResponsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and Techniques
Vitaly Friedman
 
J query presentation
J query presentationJ query presentation
J query presentation
akanksha17
 
Make your own Print & Play card game using SVG and JavaScript
Make your own Print & Play card game using SVG and JavaScriptMake your own Print & Play card game using SVG and JavaScript
Make your own Print & Play card game using SVG and JavaScript
Kevin Hakanson
 
Svg
SvgSvg
HTML5 and CSS3: does now really mean now?
HTML5 and CSS3: does now really mean now?HTML5 and CSS3: does now really mean now?
HTML5 and CSS3: does now really mean now?
Chris Mills
 
Learn svg
Learn svgLearn svg
Learn svg
FitBlar Mit
 
Trendsetting: Web Design and Beyond
Trendsetting: Web Design and BeyondTrendsetting: Web Design and Beyond
Trendsetting: Web Design and Beyond
Andy Stratton
 
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web Development
Tilak Joshi
 
[SF HTML5] Responsive Cross-Device Development with Web Standards (2013)
[SF HTML5] Responsive Cross-Device Development with Web Standards (2013)[SF HTML5] Responsive Cross-Device Development with Web Standards (2013)
[SF HTML5] Responsive Cross-Device Development with Web Standards (2013)
Tomomi Imura
 
Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschi
Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschiIasi code camp 12 october 2013 responsive images in the wild-vlad zelinschi
Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschi
Codecamp Romania
 
Html5
Html5Html5
SVG (Devoxx 2011, 2011-NOV-14)
SVG (Devoxx 2011, 2011-NOV-14)SVG (Devoxx 2011, 2011-NOV-14)
SVG (Devoxx 2011, 2011-NOV-14)
Filip Van Laenen
 
Dynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and MobileDynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and Mobile
peychevi
 
7 Things Testers Should Know About The Cloud with Bill Wilder & XBOSoft March...
7 Things Testers Should Know About The Cloud with Bill Wilder & XBOSoft March...7 Things Testers Should Know About The Cloud with Bill Wilder & XBOSoft March...
7 Things Testers Should Know About The Cloud with Bill Wilder & XBOSoft March...
XBOSoft
 
jQuery Comes to XPages
jQuery Comes to XPagesjQuery Comes to XPages
jQuery Comes to XPages
Teamstudio
 
Top 10 HTML5 features
Top 10 HTML5 featuresTop 10 HTML5 features
Top 10 HTML5 features
Gill Cleeren
 

What's hot (19)

Drupal Backbone.js in the Frontend
Drupal Backbone.js in the FrontendDrupal Backbone.js in the Frontend
Drupal Backbone.js in the Frontend
 
SVG For Web Designers (and Developers)
SVG For Web Designers (and Developers) SVG For Web Designers (and Developers)
SVG For Web Designers (and Developers)
 
SVG - Scalable Vector Graphic
SVG - Scalable Vector GraphicSVG - Scalable Vector Graphic
SVG - Scalable Vector Graphic
 
Responsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and TechniquesResponsive Web Design: Clever Tips and Techniques
Responsive Web Design: Clever Tips and Techniques
 
J query presentation
J query presentationJ query presentation
J query presentation
 
Make your own Print & Play card game using SVG and JavaScript
Make your own Print & Play card game using SVG and JavaScriptMake your own Print & Play card game using SVG and JavaScript
Make your own Print & Play card game using SVG and JavaScript
 
Svg
SvgSvg
Svg
 
HTML5 and CSS3: does now really mean now?
HTML5 and CSS3: does now really mean now?HTML5 and CSS3: does now really mean now?
HTML5 and CSS3: does now really mean now?
 
Learn svg
Learn svgLearn svg
Learn svg
 
Trendsetting: Web Design and Beyond
Trendsetting: Web Design and BeyondTrendsetting: Web Design and Beyond
Trendsetting: Web Design and Beyond
 
HTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web DevelopmentHTML5: An Introduction To Next Generation Web Development
HTML5: An Introduction To Next Generation Web Development
 
[SF HTML5] Responsive Cross-Device Development with Web Standards (2013)
[SF HTML5] Responsive Cross-Device Development with Web Standards (2013)[SF HTML5] Responsive Cross-Device Development with Web Standards (2013)
[SF HTML5] Responsive Cross-Device Development with Web Standards (2013)
 
Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschi
Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschiIasi code camp 12 october 2013 responsive images in the wild-vlad zelinschi
Iasi code camp 12 october 2013 responsive images in the wild-vlad zelinschi
 
Html5
Html5Html5
Html5
 
SVG (Devoxx 2011, 2011-NOV-14)
SVG (Devoxx 2011, 2011-NOV-14)SVG (Devoxx 2011, 2011-NOV-14)
SVG (Devoxx 2011, 2011-NOV-14)
 
Dynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and MobileDynamic User Interfaces for Desktop and Mobile
Dynamic User Interfaces for Desktop and Mobile
 
7 Things Testers Should Know About The Cloud with Bill Wilder & XBOSoft March...
7 Things Testers Should Know About The Cloud with Bill Wilder & XBOSoft March...7 Things Testers Should Know About The Cloud with Bill Wilder & XBOSoft March...
7 Things Testers Should Know About The Cloud with Bill Wilder & XBOSoft March...
 
jQuery Comes to XPages
jQuery Comes to XPagesjQuery Comes to XPages
jQuery Comes to XPages
 
Top 10 HTML5 features
Top 10 HTML5 featuresTop 10 HTML5 features
Top 10 HTML5 features
 

Viewers also liked

Svcc 2013-d3
Svcc 2013-d3Svcc 2013-d3
Svcc 2013-d3
Oswald Campesato
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)
Oswald Campesato
 
Pres valor real-opendata -aag_120412_v01
Pres valor real-opendata -aag_120412_v01Pres valor real-opendata -aag_120412_v01
Pres valor real-opendata -aag_120412_v01
Alberto Abella
 
Pres valor real-opendata -aag_120412_v01
Pres valor real-opendata -aag_120412_v01Pres valor real-opendata -aag_120412_v01
Pres valor real-opendata -aag_120412_v01
Alberto Abella
 
OWC 2012 (Open Web Camp)
OWC 2012 (Open Web Camp)OWC 2012 (Open Web Camp)
OWC 2012 (Open Web Camp)
Oswald Campesato
 
How are we working to improve life in our cities?
How are we working to improve life in our cities?How are we working to improve life in our cities?
How are we working to improve life in our cities?
Alberto Abella
 
Data Binding: Is It the Next Big Thing?
Data Binding: Is It the Next Big Thing?Data Binding: Is It the Next Big Thing?
Data Binding: Is It the Next Big Thing?
GlobalLogic Ukraine
 
Android Data Binding Support Library
Android Data Binding Support LibraryAndroid Data Binding Support Library
Android Data Binding Support Library
ersin ertan
 
Data binding
Data bindingData binding
Data binding
Yonatan Levin
 
Infinum Android Talks #14 - Data binding to the rescue... or not (?) by Krist...
Infinum Android Talks #14 - Data binding to the rescue... or not (?) by Krist...Infinum Android Talks #14 - Data binding to the rescue... or not (?) by Krist...
Infinum Android Talks #14 - Data binding to the rescue... or not (?) by Krist...
Infinum
 
SVG, CSS3, and D3 for Beginners
SVG, CSS3, and D3 for BeginnersSVG, CSS3, and D3 for Beginners
SVG, CSS3, and D3 for Beginners
Oswald Campesato
 
SVGD3Angular2React
SVGD3Angular2ReactSVGD3Angular2React
SVGD3Angular2React
Oswald Campesato
 
How to develop an Android Weather app using Weatherlib
How to develop an Android Weather app using WeatherlibHow to develop an Android Weather app using Weatherlib
How to develop an Android Weather app using Weatherlib
Francesco Azzola
 
React nativebeginner1
React nativebeginner1React nativebeginner1
React nativebeginner1
Oswald Campesato
 
Angular2 for Beginners
Angular2 for BeginnersAngular2 for Beginners
Angular2 for Beginners
Oswald Campesato
 
Android NFC
Android NFCAndroid NFC
Android NFC
Francesco Azzola
 
5 angularjs features
5 angularjs features5 angularjs features
5 angularjs features
Alexey (Mr_Mig) Migutsky
 
TypeScript
TypeScriptTypeScript
TypeScript
Oswald Campesato
 
Testable Android Apps using data binding and MVVM
Testable Android Apps using data binding and MVVMTestable Android Apps using data binding and MVVM
Testable Android Apps using data binding and MVVM
Fabio Collini
 
ECMA5 and ES6 Promises
ECMA5 and ES6 PromisesECMA5 and ES6 Promises
ECMA5 and ES6 Promises
Oswald Campesato
 

Viewers also liked (20)

Svcc 2013-d3
Svcc 2013-d3Svcc 2013-d3
Svcc 2013-d3
 
SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)SVCC 2013 D3.js Presentation (10/05/2013)
SVCC 2013 D3.js Presentation (10/05/2013)
 
Pres valor real-opendata -aag_120412_v01
Pres valor real-opendata -aag_120412_v01Pres valor real-opendata -aag_120412_v01
Pres valor real-opendata -aag_120412_v01
 
Pres valor real-opendata -aag_120412_v01
Pres valor real-opendata -aag_120412_v01Pres valor real-opendata -aag_120412_v01
Pres valor real-opendata -aag_120412_v01
 
OWC 2012 (Open Web Camp)
OWC 2012 (Open Web Camp)OWC 2012 (Open Web Camp)
OWC 2012 (Open Web Camp)
 
How are we working to improve life in our cities?
How are we working to improve life in our cities?How are we working to improve life in our cities?
How are we working to improve life in our cities?
 
Data Binding: Is It the Next Big Thing?
Data Binding: Is It the Next Big Thing?Data Binding: Is It the Next Big Thing?
Data Binding: Is It the Next Big Thing?
 
Android Data Binding Support Library
Android Data Binding Support LibraryAndroid Data Binding Support Library
Android Data Binding Support Library
 
Data binding
Data bindingData binding
Data binding
 
Infinum Android Talks #14 - Data binding to the rescue... or not (?) by Krist...
Infinum Android Talks #14 - Data binding to the rescue... or not (?) by Krist...Infinum Android Talks #14 - Data binding to the rescue... or not (?) by Krist...
Infinum Android Talks #14 - Data binding to the rescue... or not (?) by Krist...
 
SVG, CSS3, and D3 for Beginners
SVG, CSS3, and D3 for BeginnersSVG, CSS3, and D3 for Beginners
SVG, CSS3, and D3 for Beginners
 
SVGD3Angular2React
SVGD3Angular2ReactSVGD3Angular2React
SVGD3Angular2React
 
How to develop an Android Weather app using Weatherlib
How to develop an Android Weather app using WeatherlibHow to develop an Android Weather app using Weatherlib
How to develop an Android Weather app using Weatherlib
 
React nativebeginner1
React nativebeginner1React nativebeginner1
React nativebeginner1
 
Angular2 for Beginners
Angular2 for BeginnersAngular2 for Beginners
Angular2 for Beginners
 
Android NFC
Android NFCAndroid NFC
Android NFC
 
5 angularjs features
5 angularjs features5 angularjs features
5 angularjs features
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Testable Android Apps using data binding and MVVM
Testable Android Apps using data binding and MVVMTestable Android Apps using data binding and MVVM
Testable Android Apps using data binding and MVVM
 
ECMA5 and ES6 Promises
ECMA5 and ES6 PromisesECMA5 and ES6 Promises
ECMA5 and ES6 Promises
 

Similar to Svcc 2013-css3-and-mobile

JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3
Helder da Rocha
 
Streaming of SVG animations on the Web
Streaming of SVG animations on the WebStreaming of SVG animations on the Web
Streaming of SVG animations on the Web
Cyril Concolato
 
Html5 Canvas and Mobile Graphics
Html5 Canvas and Mobile GraphicsHtml5 Canvas and Mobile Graphics
Html5 Canvas and Mobile Graphics
Engin Hatay
 
Thats Not Flash?
Thats Not Flash?Thats Not Flash?
Thats Not Flash?
Mike Wilcox
 
Vector Graphics on the Web: SVG, Canvas, CSS3
Vector Graphics on the Web: SVG, Canvas, CSS3Vector Graphics on the Web: SVG, Canvas, CSS3
Vector Graphics on the Web: SVG, Canvas, CSS3
Pascal Rettig
 
Practical tipsmakemobilefaster oscon2016
Practical tipsmakemobilefaster oscon2016Practical tipsmakemobilefaster oscon2016
Practical tipsmakemobilefaster oscon2016
Doris Chen
 
Html5
Html5Html5
Html5
mikusuraj
 
HTML5: An Overview
HTML5: An OverviewHTML5: An Overview
HTML5: An Overview
Nagendra Um
 
Web Vector Graphics
Web Vector GraphicsWeb Vector Graphics
Web Vector Graphics
Dmitry Baranovskiy
 
The Future State of Layout
The Future State of LayoutThe Future State of Layout
The Future State of Layout
Stephen Hay
 
SVG 101
SVG 101SVG 101
SVG 101
Sang-Min Yoon
 
SVG Icons and Screen Reader Accessibility
SVG Icons and Screen Reader AccessibilitySVG Icons and Screen Reader Accessibility
SVG Icons and Screen Reader Accessibility
Dennis Lembree
 
New Elements & Features in CSS3
New Elements & Features in CSS3New Elements & Features in CSS3
New Elements & Features in CSS3
Jamshid Hashimi
 
Intro to CSS3
Intro to CSS3Intro to CSS3
Intro to CSS3
Denise Jacobs
 
Wordcamp Thessaloniki 2011 The Nextweb
Wordcamp Thessaloniki 2011 The NextwebWordcamp Thessaloniki 2011 The Nextweb
Wordcamp Thessaloniki 2011 The Nextweb
George Kanellopoulos
 
Professional reports with SVG
Professional reports with SVGProfessional reports with SVG
Professional reports with SVG
SpeedPartner GmbH
 
About Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JSAbout Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JS
Naga Harish M
 
[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher
Ivano Malavolta
 
SVG Strikes Back
SVG Strikes BackSVG Strikes Back
SVG Strikes Back
Matt Baxter
 
Before Going Vector
Before Going VectorBefore Going Vector
Before Going Vector
david deraedt
 

Similar to Svcc 2013-css3-and-mobile (20)

JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3JavaONE 2012 Using Java with HTML5 and CSS3
JavaONE 2012 Using Java with HTML5 and CSS3
 
Streaming of SVG animations on the Web
Streaming of SVG animations on the WebStreaming of SVG animations on the Web
Streaming of SVG animations on the Web
 
Html5 Canvas and Mobile Graphics
Html5 Canvas and Mobile GraphicsHtml5 Canvas and Mobile Graphics
Html5 Canvas and Mobile Graphics
 
Thats Not Flash?
Thats Not Flash?Thats Not Flash?
Thats Not Flash?
 
Vector Graphics on the Web: SVG, Canvas, CSS3
Vector Graphics on the Web: SVG, Canvas, CSS3Vector Graphics on the Web: SVG, Canvas, CSS3
Vector Graphics on the Web: SVG, Canvas, CSS3
 
Practical tipsmakemobilefaster oscon2016
Practical tipsmakemobilefaster oscon2016Practical tipsmakemobilefaster oscon2016
Practical tipsmakemobilefaster oscon2016
 
Html5
Html5Html5
Html5
 
HTML5: An Overview
HTML5: An OverviewHTML5: An Overview
HTML5: An Overview
 
Web Vector Graphics
Web Vector GraphicsWeb Vector Graphics
Web Vector Graphics
 
The Future State of Layout
The Future State of LayoutThe Future State of Layout
The Future State of Layout
 
SVG 101
SVG 101SVG 101
SVG 101
 
SVG Icons and Screen Reader Accessibility
SVG Icons and Screen Reader AccessibilitySVG Icons and Screen Reader Accessibility
SVG Icons and Screen Reader Accessibility
 
New Elements & Features in CSS3
New Elements & Features in CSS3New Elements & Features in CSS3
New Elements & Features in CSS3
 
Intro to CSS3
Intro to CSS3Intro to CSS3
Intro to CSS3
 
Wordcamp Thessaloniki 2011 The Nextweb
Wordcamp Thessaloniki 2011 The NextwebWordcamp Thessaloniki 2011 The Nextweb
Wordcamp Thessaloniki 2011 The Nextweb
 
Professional reports with SVG
Professional reports with SVGProfessional reports with SVG
Professional reports with SVG
 
About Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JSAbout Best friends - HTML, CSS and JS
About Best friends - HTML, CSS and JS
 
[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher[2015/2016] HTML5 and CSS3 Refresher
[2015/2016] HTML5 and CSS3 Refresher
 
SVG Strikes Back
SVG Strikes BackSVG Strikes Back
SVG Strikes Back
 
Before Going Vector
Before Going VectorBefore Going Vector
Before Going Vector
 

More from Oswald Campesato

Working with tf.data (TF 2)
Working with tf.data (TF 2)Working with tf.data (TF 2)
Working with tf.data (TF 2)
Oswald Campesato
 
Introduction to TensorFlow 2 and Keras
Introduction to TensorFlow 2 and KerasIntroduction to TensorFlow 2 and Keras
Introduction to TensorFlow 2 and Keras
Oswald Campesato
 
Introduction to Deep Learning
Introduction to Deep LearningIntroduction to Deep Learning
Introduction to Deep Learning
Oswald Campesato
 
Introduction to TensorFlow 2
Introduction to TensorFlow 2Introduction to TensorFlow 2
Introduction to TensorFlow 2
Oswald Campesato
 
Introduction to TensorFlow 2
Introduction to TensorFlow 2Introduction to TensorFlow 2
Introduction to TensorFlow 2
Oswald Campesato
 
"An Introduction to AI and Deep Learning"
"An Introduction to AI and Deep Learning""An Introduction to AI and Deep Learning"
"An Introduction to AI and Deep Learning"
Oswald Campesato
 
H2 o berkeleydltf
H2 o berkeleydltfH2 o berkeleydltf
H2 o berkeleydltf
Oswald Campesato
 
Introduction to Deep Learning, Keras, and Tensorflow
Introduction to Deep Learning, Keras, and TensorflowIntroduction to Deep Learning, Keras, and Tensorflow
Introduction to Deep Learning, Keras, and Tensorflow
Oswald Campesato
 
Introduction to Deep Learning for Non-Programmers
Introduction to Deep Learning for Non-ProgrammersIntroduction to Deep Learning for Non-Programmers
Introduction to Deep Learning for Non-Programmers
Oswald Campesato
 
TensorFlow in Your Browser
TensorFlow in Your BrowserTensorFlow in Your Browser
TensorFlow in Your Browser
Oswald Campesato
 
Deep Learning in Your Browser
Deep Learning in Your BrowserDeep Learning in Your Browser
Deep Learning in Your Browser
Oswald Campesato
 
Deep Learning and TensorFlow
Deep Learning and TensorFlowDeep Learning and TensorFlow
Deep Learning and TensorFlow
Oswald Campesato
 
Introduction to Deep Learning and TensorFlow
Introduction to Deep Learning and TensorFlowIntroduction to Deep Learning and TensorFlow
Introduction to Deep Learning and TensorFlow
Oswald Campesato
 
Intro to Deep Learning, TensorFlow, and tensorflow.js
Intro to Deep Learning, TensorFlow, and tensorflow.jsIntro to Deep Learning, TensorFlow, and tensorflow.js
Intro to Deep Learning, TensorFlow, and tensorflow.js
Oswald Campesato
 
Deep Learning and TensorFlow
Deep Learning and TensorFlowDeep Learning and TensorFlow
Deep Learning and TensorFlow
Oswald Campesato
 
Introduction to Deep Learning and Tensorflow
Introduction to Deep Learning and TensorflowIntroduction to Deep Learning and Tensorflow
Introduction to Deep Learning and Tensorflow
Oswald Campesato
 
Deep Learning, Scala, and Spark
Deep Learning, Scala, and SparkDeep Learning, Scala, and Spark
Deep Learning, Scala, and Spark
Oswald Campesato
 
Deep Learning in your Browser: powered by WebGL
Deep Learning in your Browser: powered by WebGLDeep Learning in your Browser: powered by WebGL
Deep Learning in your Browser: powered by WebGL
Oswald Campesato
 
Deep Learning, Keras, and TensorFlow
Deep Learning, Keras, and TensorFlowDeep Learning, Keras, and TensorFlow
Deep Learning, Keras, and TensorFlow
Oswald Campesato
 
C++ and Deep Learning
C++ and Deep LearningC++ and Deep Learning
C++ and Deep Learning
Oswald Campesato
 

More from Oswald Campesato (20)

Working with tf.data (TF 2)
Working with tf.data (TF 2)Working with tf.data (TF 2)
Working with tf.data (TF 2)
 
Introduction to TensorFlow 2 and Keras
Introduction to TensorFlow 2 and KerasIntroduction to TensorFlow 2 and Keras
Introduction to TensorFlow 2 and Keras
 
Introduction to Deep Learning
Introduction to Deep LearningIntroduction to Deep Learning
Introduction to Deep Learning
 
Introduction to TensorFlow 2
Introduction to TensorFlow 2Introduction to TensorFlow 2
Introduction to TensorFlow 2
 
Introduction to TensorFlow 2
Introduction to TensorFlow 2Introduction to TensorFlow 2
Introduction to TensorFlow 2
 
"An Introduction to AI and Deep Learning"
"An Introduction to AI and Deep Learning""An Introduction to AI and Deep Learning"
"An Introduction to AI and Deep Learning"
 
H2 o berkeleydltf
H2 o berkeleydltfH2 o berkeleydltf
H2 o berkeleydltf
 
Introduction to Deep Learning, Keras, and Tensorflow
Introduction to Deep Learning, Keras, and TensorflowIntroduction to Deep Learning, Keras, and Tensorflow
Introduction to Deep Learning, Keras, and Tensorflow
 
Introduction to Deep Learning for Non-Programmers
Introduction to Deep Learning for Non-ProgrammersIntroduction to Deep Learning for Non-Programmers
Introduction to Deep Learning for Non-Programmers
 
TensorFlow in Your Browser
TensorFlow in Your BrowserTensorFlow in Your Browser
TensorFlow in Your Browser
 
Deep Learning in Your Browser
Deep Learning in Your BrowserDeep Learning in Your Browser
Deep Learning in Your Browser
 
Deep Learning and TensorFlow
Deep Learning and TensorFlowDeep Learning and TensorFlow
Deep Learning and TensorFlow
 
Introduction to Deep Learning and TensorFlow
Introduction to Deep Learning and TensorFlowIntroduction to Deep Learning and TensorFlow
Introduction to Deep Learning and TensorFlow
 
Intro to Deep Learning, TensorFlow, and tensorflow.js
Intro to Deep Learning, TensorFlow, and tensorflow.jsIntro to Deep Learning, TensorFlow, and tensorflow.js
Intro to Deep Learning, TensorFlow, and tensorflow.js
 
Deep Learning and TensorFlow
Deep Learning and TensorFlowDeep Learning and TensorFlow
Deep Learning and TensorFlow
 
Introduction to Deep Learning and Tensorflow
Introduction to Deep Learning and TensorflowIntroduction to Deep Learning and Tensorflow
Introduction to Deep Learning and Tensorflow
 
Deep Learning, Scala, and Spark
Deep Learning, Scala, and SparkDeep Learning, Scala, and Spark
Deep Learning, Scala, and Spark
 
Deep Learning in your Browser: powered by WebGL
Deep Learning in your Browser: powered by WebGLDeep Learning in your Browser: powered by WebGL
Deep Learning in your Browser: powered by WebGL
 
Deep Learning, Keras, and TensorFlow
Deep Learning, Keras, and TensorFlowDeep Learning, Keras, and TensorFlow
Deep Learning, Keras, and TensorFlow
 
C++ and Deep Learning
C++ and Deep LearningC++ and Deep Learning
C++ and Deep Learning
 

Recently uploaded

Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
Bert Blevins
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
SynapseIndia
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
Matthew Sinclair
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
Andrey Yasko
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
BookNet Canada
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 

Recently uploaded (20)

Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
Password Rotation in 2024 is still Relevant
Password Rotation in 2024 is still RelevantPassword Rotation in 2024 is still Relevant
Password Rotation in 2024 is still Relevant
 
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptxRPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
RPA In Healthcare Benefits, Use Case, Trend And Challenges 2024.pptx
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
Comparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdfComparison Table of DiskWarrior Alternatives.pdf
Comparison Table of DiskWarrior Alternatives.pdf
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 

Svcc 2013-css3-and-mobile

  • 1. HTML5 and CSS3 and Mobile Applications SVCC 2013 (10/05/2013) Foothill College Los Altos Oswald Campesato oswald@swiftbot.com ocampesato@yahoo.com
  • 2. Main Topics in This Session CSS3 Features (condensed summary) CSS3 Graphics/Animation (2D and 3D) CSS3 and the GPU (must-have support) Reflow/Repaint (what/when/how/why) Chrome Continuous Update (CSS3/JS) CSS3 "Gong" Game (CSS3/jQuery Mobile) PhoneGap 3.0 Mobile Apps (in 4 lines) CSS3-base Apps on Glass (also native) Fun Canvas Demos (video and animation)
  • 3. CSS3 Features (condensed list) (Perf) Gradients (linear and radial) (Perf) Rounded corners/drop shadows CSS3 filters (merged with SVG filters) Simple shapes (circle/ellipse/rectangle) (Perf) 2D and 3D animation Multi-column support Exclusions and regions Flexbox (like “grid bag” in Java AWT)
  • 4. CSS3 Transforms (summary) CSS3 2D transforms: rotate, scale, translate, matrix, and perspective, and skew (deprecated) • CSS3 3D transforms (invoke the GPU): 1) similar to 2D versions (but no „skew‟) 2) also three axis-specific methods: rotateX, rotateY, rotateZ (and so forth) • CSS3 animation via keyframes rule
  • 5. Frameworks and Toolkits (1) • Very good HTML5/CSS3 IDEs: + Sencha Animator and Adobe Edge (commercial?) • JavaScript/SVG toolkits: + D3 (modern browsers) and Raphael (supports IE6-8) + Inkscape for SVG and iD (for maps) • JavaScript-based toolkits for Canvas: + EaselJS, FabricJS, PaperJS • http://graphicdesignjunction.com/2013/04/html5- tools-for-designers-developers/
  • 6. Frameworks and Toolkits (2)  Workless: + an HTML5-CSS3 framework for building cross-browsers websites + started as a mashup of Bootstrap + HTML5 Boilerplate + https://github.com/iKreativ/Workless  Junior: + an HTML5 framework for front-end creating mobile apps that look and behave like native + uses CSS3 transitions and supports swipeable carousels + includes various UI components (from Ratchet)
  • 7. Frameworks and Toolkits (3)  Literally Canvas: + an HTML5 open source widget + can be integrated into any page + enables users to draw online + provides with a simple set of tools including: draw, erase, color-picker, undo, redo, pan and zoom  cgSceneGraph: + an OO JavaScript animation framework + built on top of HTML5 canvas + created for apps and games + works cross-browser + many built-in nodes (images/text/buttons/shapes)
  • 8. Modular and Scalable CSS (1) OOCSS: Object Oriented CSS SMACSS: Scalable and Modular Architecture for CSS DRY: Don‟t Repeat Yourself CSS BEM: Block, Element, Modifier
  • 9. Modular and Scalable CSS (2) #1 and #2 avoid id (prefer class) all share common goals they use different approaches provide general guidelines (not absolute) try to understand underlying principles then take the relevant parts
  • 10. What “Works” with CSS3? Combine any of these with CSS3 in a Web Page: SVG and D3 (=Data Driven Documents=JS+SVG) HTML5 Canvas (bitmap and without a DOM) For Web applications: jQuery (cross-browser and cross-platform) BackboneJS (MVP reduces spaghetti code) AngularJS (open source from Google) Basically any JavaScript-based toolkit
  • 11. When CSS3 Alone isn‟t Enough CSS3 can leverage the power of SVG: + reference SVG documents via “url()” • SVG can leverage CSS3 by: + embedding CSS selectors in an SVG doc use jQuery methods: + the css() method for updating properties • Use jQuery Mobile features: + use bindings to handle mouse/touch events
  • 12. Strengths of CSS3/SVG/Canvas  CSS3: a) 2D/3D graphics/animation, b) GPU support, c) embeddable in SVG <defs> element, d) “easing functions” for animation, e) animate HTML elements  SVG: a) 2D graphics/animation, b) some GPU support, c) create arbitrary 2D shapes, d) custom <pattern>s, and e) grouping via the <g> element, and “easing functions in D3 (but SVG cannot animate HTML)  Canvas: a) 2D graphics/animation, b) GPU support, c) good for updating many small objects (games), d) works with video (use ThreeJS/WebGL for 3D animation)
  • 13. Useful Features of SVG (summary) An XML-based vocabulary for 2D shapes: render circles/ellipses/elliptic arcs squares/rectangles/parallelograms cubic/quadratic Bezier curves arbitrary polygons linear/radial gradients and filters mouse events and animation support (*) good for charts/graphs works well with CSS3 (*) consider using D3.js
  • 14. Other Aspects of SVG  SVG elements are inserted in the DOM so you can track/manage groups of SVG elements  no blurred/jagged edges when zooming in  Convenient format for import/export between tools  Can apply XSL stylesheets to SVG documents On the other hand: • Verbose (what do you expect? It‟s XML) • Can be difficult/incomprehensible (SVG tiger)  Animation code can be cumbersome/tedious  Consider D3 instead of “pure” SVG Blog by Patrick Dengler: SVG versus Canvas
  • 15. The Famous SVG Tiger
  • 16. Contents of SVG Tiger • 100K SVG file versus 140K PNG file • Contains 240 SVG <path> elements <svg:path d="M-122.304 84.285 C-122.304 84.285 - 122.203 86.179 -123.027 86.16 C-123.851 86.141 - 140.305 38.066 -160.833 40.309 C-160.833 40.309 - 143.05 32.956 -122.304 84.285z"/> NVIDIA GPU-accelerated SVG path rendering: http://www.youtube.com/watch?v=bCrohG6PJQE
  • 17. CSS3 for SVG 3D Effects  #1: create an SVG document  #2: create an SVG <defs> element  #3: create CSS3 selectors with CSS3 3D animation effects and put them in a <style> element  #4: insert the <style> element in <defs> element  #5: set the “class” attribute in SVG elements so that it matches a CSS3 selector in the <style> element Example: 3DSineWave4RG2TurbFilterAnim1.svg NB: You can also reference an external CSS stylesheet
  • 18. CSS3+SVG or CSS3+D3? CSS3+SVG: useful when 1) you already have SVG-based data and 2) you must support IE6 (can do with Raphael toolkit but not D3) • CSS3+D3: for modern browsers, and also easier for defining event handlers and animation (probably also easier to maintain/enhance) • Notes: • CSS3+SVG might not have GPU support • Consider D3 with BackboneJS/AngularJS/etc
  • 19. What about CSS3 and HTML5 Canvas? Insert a <canvas> element in a Web page • JavaScript APIs for 2D shapes (similar to Skia) All shapes are rendered in a <canvas> element Modern browsers support <canvas> element “write-and-forget” (no DOM-based “history”) • CSS3 selectors can match the <canvas> element • Canvas often faster than SVG for showing polygons • Tracing Canvas calls: http://www.html5rocks.com/en/tutorials/canvas/ins pection/
  • 20. Which is Faster: CSS3/Canvas/SVG? • CSS3 is faster than Canvas for simple animation: http://phrogz.net/tmp/image_move_speed.html • CSS3 is faster than SVG for gradients • D3 is better/faster than SVG for “follow the mouse” • Canvas is better than SVG for many small objects • Test/compare performance on mobile devices
  • 21. What is a GPU? Graphics Processing Unit A GPU is a single-chip dedicated processor Boost the performance of video/graphics: 2-D or 3-D graphics Digital output to flat panel display monitors Texture mapping MPEG decoding Rendering polygons Hardware overlays
  • 22. Nvidia and GPUs • The first GPU: developed by NVidia in 1999 (GeForce 256) processed 10 million polygons/second contained more than 22 million transistors • Nexus 7 2 (Android 4.3): 400MHz Adreno 320 Snapdragon S4 Pro 64 ALU, 400MHz, 57GFLOPS
  • 23. GPU Support in Browsers  the browser must be able to use the driver of the graphics card installed on the host OS  GPU acceleration for one browser on a given machine doesn‟t guarantee support for all browsers  Opera: hardware acceleration turned off by default (might have changed recently)  http://www.useragentman.com/blog/2012/09/23/cross- browser-gpu-acceleration-and-requestanimationframe-in- depth/
  • 24. CSS3 and GPU Acceleration  Add a “go faster hack” (aka “null transform”)  common CSS3 transforms to invoke the GPU: translate3D(0,0,0) or translateZ(0) • Preceding “no-op” guarantees GPU is invoked • Absence of such code does not mean that the GPU is not invoked • Convert some/all 2D transforms (except skew) to 3D?
  • 25. Chrome and the “Null Transform” #1) Chrome switches on hardware compositing mode (if supported and not already “on”) #2) Chrome creates a new layer and “backing surface” Comments: • A “backing surface” (= bitmap?) is a graphics context (aka texture) into which layers are drawn • Backing surfaces are uploaded to the GPU • Layers sometimes share the same “backing surface” • Rules that Chrome uses for creating new backing surfaces in the next slide…
  • 26. Chrome + Layers + Backing Surfaces Chrome creates new backing surface if a layer: 1) uses 3D or perspective transform CSS properties 2) is used by <video> element using accelerated video decoding 3) is used by a <canvas> element with a 3D context or accelerated 2D context 4) uses a CSS animation for its opacity or uses an animated webkit transform 5) uses accelerated CSS filters 6) has a descendant that is a compositing layer 7) has a sibling with a lower z-index which has a compositing layer (is the layer rendered on top of a composited layer?)
  • 27. Null Transform: can it be slower?  Try this sample code in your browser: http://dl.dropboxusercontent.com/u/17844821/zeug/ hwtest.html  Contains 4,000 small <div> elements  Original stackoverflow post (04/2012): http://stackoverflow.com/questions/10014461/why- does-enabling-hardware-acceleration-in-css3-slow- down-performance
  • 28. CSS3 Mask + Performance • Mask results in a new offscreen buffer (OSB) GPU first writes to the OSB instead of directly to VRAM (Video RAM) then the OSB contents are copied to VRAM VRAM is comparatively limited on mobile devices and it‟s “easily exhausted” rounded corners and drop shadows use mask combination of rounded corners and drop shadows is extra slow;(
  • 29. What are Reflow and Repaint? Reflow: process of calculating the position of elements in a Web page Repaint: re-rendering pixel colors in a Web page Compare “display” versus “visibility” in CSS: + display: none it‟s neither present nor visible so it requires reflow and repaint + visibility: hidden it‟s still present, so no geometry change, and only repaint is required (Performance difference is small in this scenario)
  • 30. What Causes Reflow and Repaint? scroll and hover box-shadow and drop shadows floats and tables opacity and gradients border-radius transparency and transitions changing the font size Add/remove/update the DOM Leaf-side nodes: probably small changes Top-side nodes: propagation can cause many changes
  • 31. Chrome and Layout Changes  Chrome "batches" layout changes asynchronously in order to maximize rendering performance • Style information causes synchronous updates: + offsetTop, offsetLeft + offsetWidth, offsetHeight + scrollTop/Left/Width/Height + clientTop/Left/Width/Height + getComputedStyle()  The goal: find and eliminate JavaScript code and/or CSS selectors that cause synchronous updates
  • 32. Avoid Synchronous Updates (why?) #1) Any request for style information about a node forces the browser to provide the most up-to-date value. #2) In order to do so, the browser must apply all scheduled changes, flush the queue, and perform a reflow. Minimize this type of code: el.style.left = el.offsetLeft + 10 + "px";
  • 33. The Painting Process  browser combines DOM and CSSOM  Involves “Skia” for: + rasterizing software with Canvas-like APIs + output is set of bitmaps • bitmaps are sent to the GPU and: + GPU composites them (calculates pixel values) + renders the output on screen "Compositing is the process where each of the individual textures uploaded to the GPU is drawn out in turn and results in the final page."
  • 34. Using/Examining the Timeline (1) • Open Web Inspector and click on “Timeline” • Click the (black) “start button • search for elements with significant paint time: look for “long” horizontal bars Now do this:  toggle the CSS styles of those elements to determine performance culprit(s)  search for yellow warning icon in the timeline  hover over these records  You will see a “stack trace” that contains: 1) invalidating code, and also 2) code that caused the layout
  • 35. Using/Examining the Timeline (2) Detailed Timeline instructions: https://developers.google.com/chrome- developer-tools/docs/timeline Some Topics (many others as well): Analyzing Timeline recordings Viewing details about a record Locating forced synchronous layouts Emulate touch events
  • 36. Using Chrome Continuous Paint (CCP) • #1: load a Web page into browser • #2: Web Inspector > Profiles and select: a) Collect JavaScript CPU Profile or b) Collect CSS Selector Profile • #3: “Start CPU Profiling” by clicking on black dot in lower-left corner • #4: Navigate around elements in the screen • #5: “Stop CPU Profiling” by clicking on red dot • #6: examine the newly generated timeline • Note: CCP is in Chrome v29
  • 37. CSS3 Flying Borg Cube (Demo) CSS3 2D skew (for the three cube faces) CSS3 3D linear/radial gradients CSS3 2D and 3D transforms CSS3 3D animation effects (keyframes) No JS so select CSS profiling in Chrome
  • 38. How Browsers Parse CSS Selectors browsers read selectors right-to-left: this is a "bottom up" approach the “key” selector: the right-most part of a CSS selector Why right-to-left is more efficient: a) element:parent is 1:1 whereas b) parent:child is many:1
  • 39. Rewriting CSS Selectors (1)  Sample CSS and HTML: #mylist a { ... } <ul id="mylist"> <li a=... class="abc" .../> <li a=... class="abc" .../> <li a=... class="abc" .../> …. </ul> Suppose you have: 1) 100 <a> elements, and 2) you only want the three <a> with an 'abc' class
  • 40. Rewriting CSS Selectors (2) This CSS selector matches 100 elements: #mylist a { ... } This CSS selector matches 3 elements: #mylist .abc { ... } • Ariya Hidayat (Continuous Painting): http://css.dzone.com/articles/continuous-painting- mode
  • 41. Sample Selector and “Efficient” CSS  calculate/layout/paint in a sample selector: .results h2 { // recalculate style height: 25px; // layout text-shadow: 2px black; // paint }  fast/efficient CSS (with null transform hack): scale/translate/rotate/fade (opacity) • Other operations incur layout and/or paint • Paul Irish (Performance Tooling): http://www.youtube.com/watch?v=HAqjyCH_LOE
  • 42. Translate() versus top/left/right/bottom  Factors in favor of translate(): + tends to perform better + translate() does not touch the DOM + involves subpixels (and smoother due to blurring effect) + use it for “design-y motion” (animating a button press)  Factors in favor of top/left/right/bottom: + use when element has relative/absolute/fixed positioning Note: Both can yield different results on different browsers + Detailed articles (Chris Coyier/Paul Irish): http://css-tricks.com/tale-of-animation-performance/ http://www.paulirish.com/2012/why-moving-elements-with-translate-is- better-than-posabs-topleft/
  • 43. Bootstrap 3.0 Improvements  Bootstrap 3.0 is twice as fast as BS 2.3.2  Provides a “mobile first” responsive grid  Bootswatch and WrapBootstrap (“full themes”)  Paul Irish checks BS 3.0 using CCP: http://encosia.com/the-big-change-in-bootstrap-3-that-no- ones-talking-about/ • Pamela Fox (“When Bootstrap Attacks”): http://www.youtube.com/watch?v=xbpnqbM6cRk&feature =youtu.be&goback=%2Egde_2071438_member_265749116# %21
  • 44. Issues with iOS7 and HTML5  CSS-related requestAnimationFrame animations do not suspend correctly  Resizing a composited layer (with 3D transforms) sometimes does not repaint correctly  Performance issues for SVG animation  Launching/quitting same home-screen app several times can hard- lock your device  Maximiliano Firtman‟s iOS7/HTML5 post: http://www.mobilexweb.com/blog/safari-ios7-html5-problems-apis- review
  • 45. CSS3 “Gong” Game (Demo)  Graphics: pure CSS3 (border-radius=50%)  Animation: setTimeout() function  JavaScript: for collision detection • jQuery Mobile: + updating position (jQuery css() function) + creating elements (jQuery clone() function) + event handlers (jQuery Mobile vmouse) • Deployed as an Android apk
  • 46. CSS3 on Mobile: Android (Eclipse) 1) Create an Android app Hello and modify the main xml layout file and Java file (see below) 2) modify $TOP/res/layout/activity_main.xml: insert a WebView component (shown later) 3) create the directory $TOP/assets/www 4) Copy Hello.html (+ assets) into $TOP/assets/www 5) modify $TOP/src/com/…/HelloActivity.java: reference Hello.html in the method onCreate()
  • 47. Contents of activity_main.xml <?xml version="1.0" encoding="utf-8"?> <WebView xmlns:android="http://….” android:id="@+id/webview" android:layout_width="fill_parent" android:layout_height="fill_parent" />
  • 48. Contents of onCreate() in Java File = Initial contents: super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); = Additional (appended) contents: mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.getSettings().setDomStorageEnabled(true); mWebView.loadUrl( "file:///android_asset/www/Hello.html");
  • 49. HTML5/CSS3 and PhoneGap A Plugin to create Hybrid Mobile apps A JavaScript “bridge” Available on 6 platforms PhoneGap 3.0 requires NodeJS Always creates an index.html Web page
  • 50. Why use PhoneGap? No compilation required No Java/Objective-C code Handles the manual steps for you Provides access to hardware (camera/etc) PhoneGap 3.0 camera/sensors/etc support is available via different modules
  • 51. Create/Compile/Deploy in PhoneGap 3.0 Prerequisites: install NodeJS and PhoneGap Create/compile/deploy: #1: phonegap create hello com.demo.hello Hello1 #2: cd hello #3: phonegap build android [ios …] #4: phonegap install android [ios …] Combine #3 and #4 with this step: phonegap run android ios […]
  • 52. CSS3 Demo on Google Glass Step #1: create and compile an Android project (let‟s call it “CSS3Demo”) in Eclipse Step #2: deploy the Android apk to Glass: adb install CSS3Demo.apk Step #3: get the package and main Android Activity: Let‟s call them “a.b.c” and “CSS3Main” Step #4: launch from the command line: adb shell am start -a android.intent.action.MAIN -n a.b.c/.CSS3Demo
  • 53. CSS3 Resources • caniuse.com online forums (Yahoo group) Various meetup groups in BA stackoverflow.com
  • 54. Impressive HTML5 Canvas Demos • Various HTML5 Canvas demos: http://www.craftymind.com/factory/html5video/C anvasVideo.html http://codepen.io/stuffit/pen/KrAwx http://davidwalsh.name/canvas-demos
  • 55. Some “Favorite” People • Tab Atkins • Eric Bidelman • Mike Bostock • Pamela Fox • Paul Irish • John Resig • Alex Russell • Steve Souders • Lea Verou • David Walsh • Nicholas Zakas • Vincent Hardy/Brian Leroux/Tony Parisi (*)
  • 56. Some Training Topics • D3/SVG • HTML5 (CSS3/Canvas/etc) jQuery/jQuery Mobile Android (iOS later) BackboneJS/PhoneGap
  • 57. Open Source Projects (graphics) • Graphics Projects on http://code.google.com/p: + css3-graphics and html5-canvas-graphics + css3-jquery-graphics and d3-graphics + svg-graphics and svg-filters-graphics + easel-graphics, fabric-graphics, paper-graphics + ThreeJS, jQuery, Raphael, Google Go, Android + Dart, Dojo, JSF, Two.js, JavaFX 2.0 + Lua, PHP, Perl, Python, Ruby, SWT graphics
  • 58. Recent/Upcoming Books 1) HTML5 Canvas and CSS3 Graphics (2012) 2) jQuery, CSS3, and HTML5 for Mobile (2013) 3) HTML5 Pocket Primer (2013) 4) jQuery Pocket Primer (2013) 5) HTML5 Mobile Pocket Primer (2014) 6) D3 Pocket Primer (2014) • “WebGL: Up and Running” (Tony Parisi) Co-creator of VRML and X3D