Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Native look and feel of mobile JS interfaces wi...
Search
fwdays
March 05, 2013
Programming
1
820
Native look and feel of mobile JS interfaces with HTML5 canvas
fwdays
March 05, 2013
Tweet
Share
More Decks by fwdays
See All by fwdays
Symfony best practices и не только Олег Зинченко
fwdays
0
2.1k
Beyond Testing Михаил Боднарчук
fwdays
0
780
Yii2 - на пути от Alpha до GA. Взгляд с практической стороны Александр Бордун
fwdays
0
1.9k
Laravel 4: простота во всем. Евгений Косинский
fwdays
0
980
Маленькая библиотека для большой компании. Антон Шевчук
fwdays
0
3.8k
Phalcon. Что нового? Александр Торош
fwdays
0
1.1k
Выбираем поисковик умом головы. Андрей Аксенов
fwdays
0
1.4k
Past, Present, and Future: The Evolution of PHP Development. Nate Abele
fwdays
0
780
Функциональный тулчейн Nix
fwdays
1
460
Other Decks in Programming
See All in Programming
基礎から学ぶ大画面対応(Learning Large-Screen Support from the Ground Up)
tomoya0x00
0
6.5k
HTMLの品質ってなんだっけ? “HTMLクライテリア”の設計と実践
unachang113
4
3k
Testing Trophyは叫ばない
toms74209200
0
900
実践AIチャットボットUI実装入門
syumai
2
980
パフォーマンスチューニングで Web 技術を深掘り直す
progfay
5
1.5k
アプリの "かわいい" を支えるアニメーションツールRiveについて
uetyo
0
290
Compose Multiplatform × AI で作る、次世代アプリ開発支援ツールの設計と実装
thagikura
0
190
デザイナーが Androidエンジニアに 挑戦してみた
874wokiite
0
600
AIを活用し、今後に備えるための技術知識 / Basic Knowledge to Utilize AI
kishida
22
6k
テストコードはもう書かない:JetBrains AI Assistantに委ねる非同期処理のテスト自動設計・生成
makun
0
630
CloudflareのChat Agent Starter Kitで簡単!AIチャットボット構築
syumai
2
540
チームのテスト力を鍛える
goyoki
3
1.1k
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
3k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Unsuck your backbone
ammeep
671
58k
Building an army of robots
kneath
306
46k
The World Runs on Bad Software
bkeepers
PRO
70
11k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Fireside Chat
paigeccino
39
3.6k
KATA
mclloyd
32
14k
Being A Developer After 40
akosma
90
590k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
930
Transcript
More native look and feel with HTML5 canvas Cases, advantages,
issues and solutions
How to compare DOM and CANVAS? We will use FlashJS
engine. It have CANVAS and DOM renderers, so we can launch same code in both ways. flashjs.com
Why?
Why not HTML? HTML Node - is heavy to render
object. • Designed for advanced layouts, sometimes it is useless and harmful • CSS • Legacy properties, logic
Why canvas? One DOM interface - unlimited number of objects,
so much more easier to render.
Why canvas? Using canvas for UI components rendering is very
close to event delegation - you delegate not only events but rendering as well.
Cases
Typical cases Responsible components with transformation of many objects. DOM
example CANVAS example
Typical cases DOM interface decoration with animated objects. DOM example
CANVAS example
Typical cases For example - you`ll need to draw timelines
like this with DOM. How many DIVs will you need?
Your case ?
Anti-cases
Anticases Small amount of objects without transforms or transitions /
animations are enought.
Anticases Your objects have to include content with advanced layout.
And much more... CANVAS is not a silver bullet for
HTML perfomance...
Big canvas - bad canvas?
Frameworks Probably you`ll need easy to use interfaces for sprites,
animations, scales, nested objects and much more, but HTML5 canvas API is too low level thing - you`d better to use frameworks.
Canvas UI development issues Because of previous issue - you`ll
need batch assets resizing for different screen sizes.
Canvas UI development issues Using large universal engines seems to
be wrong way sometimes. There is space for your own wheel.
Questions ?
Thanks =) Denis Radin PixelsCommander.com Special thanks to FlashJS engine
- www.flashjs.com