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
introduction to Choreographer
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Daichi Furiya (Wasabeef)
September 11, 2015
Programming
800
0
Share
introduction to Choreographer
introduction to Choreographer
Daichi Furiya (Wasabeef)
September 11, 2015
More Decks by Daichi Furiya (Wasabeef)
See All by Daichi Furiya (Wasabeef)
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
6
2.7k
About Flutter Architecture
wasabeef
1
310
2023 Flutter/Dart Summary
wasabeef
0
130
I/O Extended 2023 - Dart と Flutter の新機能
wasabeef
0
230
I/O Extended 2023 - Flutter 活用事例
wasabeef
10
3.1k
What it Takes to be a Flutter Developer
wasabeef
0
240
FlutterKaigi 2022 Keynote
wasabeef
1
710
Flutter Hooks を使ったアプリ開発 / App Development with the Flutter Hooks
wasabeef
2
1.5k
Flutter 2021 の振り返りと今後のアプリ開発に向けて / Looking back on Flutter 2021 and for future app development.
wasabeef
4
2.2k
Other Decks in Programming
See All in Programming
なぜあなたのコードには「コシ」がないのか?〜AI時代に問う、最後まで美味しい設計と戦略〜 #phpconkagawa / phpconkagawa2026
shogogg
0
210
Oxlintはいかにしてtsgolintのlint ruleを呼び出しているのか
syumai
0
280
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
23
13k
サーバーレスで作る、動画データ管理基盤
oyasumipants
0
220
AlarmKitで明後日起きれるアラームアプリを作る
trickart
0
140
WebAssembly を読み込むベストプラクティス 2026年春版 / Best Practices for Loading WebAssembly (Spring 2026)
petamoriken
5
1.1k
Import assertionsが消えた日~ECMAScriptの仕様はどう決まり、なぜ覆るのか~
bicstone
2
190
20260514_its_the_context_window_stupid.pdf
heita
0
1k
Kubernetesを使わない環境にもCloud Nativeなデプロイを実現する / Enabling Cloud Native deployments without the complexity of Kubernetes
linyows
3
420
Agentic UI in the Frontend: Architectures with Open Standards @JAX 2026 in Mainz
manfredsteyer
PRO
0
120
AgentCore Optimizationを始めよう!
licux
3
260
AI時代のエンジニアリングの原則 / Engineering Principles in the AI Era
haru860
0
1.3k
Featured
See All Featured
New Earth Scene 8
popppiees
3
2.2k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Site-Speed That Sticks
csswizardry
13
1.2k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
280
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
59
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
130
The SEO Collaboration Effect
kristinabergwall1
1
450
Agile that works and the tools we love
rasmusluckow
331
21k
GitHub's CSS Performance
jonrohan
1033
470k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
A designer walks into a library…
pauljervisheath
211
24k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Transcript
$IPSFPHSBQIFS 8BTBCFFG
"CPVU.F @wasabeef_jp CyberAgent, Inc.
Choreographer IUUQEBODFXPSLTOFUJOTQJSBUJPODIPSFPHSBQIFST
$IPSFPHSBQIFS “The choreographer receives timing pulses (such as vertical synchronization)
from the display subsystem then schedules work to occur as part of rendering the next display frame.”
'SBNF3BUF
'SBNF3BUF “ϑϨʔϜϨʔτɺಈըʹ͓͍ͯɺ୯Ґ࣌ؒ͋ ͨΓʹॲཧͤ͞ΔϑϨʔϜʢ੩ࢭը૾ɺί ϚʣͰ͋Δɻ௨ৗɺ1ඵ͋ͨΓͷͰද͠ɺ fpsʢӳ: frames per secondʹϑϨʔϜຖ ඵʣͱ͍͏୯ҐͰද͢ɻ”
IUUQTUXJUUFSDPN.D'VOLZQBOUTTUBUVT
60fps: 16.666666667/ms 40fps: 33.333333333/ms 15fps: 66.666666667/ms
74ZOD
IUUQCJUMZ&2RKL
None
)PXUPVTF
class Metronome implements Choreographer.FrameCallback { private Choreographer choreographer; public Metronome()
{ choreographer = Choreographer.getInstance(); } public void start() { choreographer.postFrameCallback(this); } public void stop() { choreographer.removeFrameCallback(this); } @Override public void doFrame(long frameTimeNanos) { Timber.i(“Callback frameTimeNanos” + frameTimeNanos); choreographer.postFrameCallback(this); } }
$IPSFPHSBQIFS$PNQBU JOGBDFCPPLSFCPVOE
None
IUUQTXXXqJDLSDPNQIPUPTUFUTVL
IUUQTHJUIVCDPNXBTBCFFG5BLU
EFQFOEFODJFT\ DPNQJMFKQXBTBCFFGUBLU ^ 5BLUTUPDL UIJT QMBZ
5IBOLT