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
Daichi Furiya (Wasabeef)
September 11, 2015
Programming
0
770
introduction to Choreographer
introduction to Choreographer
Daichi Furiya (Wasabeef)
September 11, 2015
Tweet
Share
More Decks by Daichi Furiya (Wasabeef)
See All by Daichi Furiya (Wasabeef)
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
5
1.4k
About Flutter Architecture
wasabeef
1
200
2023 Flutter/Dart Summary
wasabeef
0
57
I/O Extended 2023 - Dart と Flutter の新機能
wasabeef
0
160
I/O Extended 2023 - Flutter 活用事例
wasabeef
10
2.9k
What it Takes to be a Flutter Developer
wasabeef
0
180
FlutterKaigi 2022 Keynote
wasabeef
1
580
Flutter Hooks を使ったアプリ開発 / App Development with the Flutter Hooks
wasabeef
2
1.4k
Flutter 2021 の振り返りと今後のアプリ開発に向けて / Looking back on Flutter 2021 and for future app development.
wasabeef
4
2.1k
Other Decks in Programming
See All in Programming
XStateを用いた堅牢なReact Components設計~複雑なClient Stateをシンプルに~ @React Tokyo ミートアップ #2
kfurusho
1
990
Bedrock Agentsレスポンス解析によるAgentのOps
licux
3
930
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
250
良いコードレビューとは
danimal141
5
900
データベースのオペレーターであるCloudNativePGがStatefulSetを使わない理由に迫る
nnaka2992
0
240
Jakarta EE meets AI
ivargrimstad
0
520
楽しく向き合う例外対応
okutsu
0
700
ナレッジイネイブリングにAIを活用してみる ゆるSRE勉強会 #9
nealle
0
160
dbt Pythonモデルで実現するSnowflake活用術
trsnium
0
270
SwiftUI移行のためのインプレッショントラッキング基盤の構築
kokihirokawa
0
160
『テスト書いた方が開発が早いじゃん』を解き明かす #phpcon_nagoya
o0h
PRO
9
2.5k
SwiftUI Viewの責務分離
elmetal
PRO
2
280
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
How STYLIGHT went responsive
nonsquared
99
5.4k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
GitHub's CSS Performance
jonrohan
1030
460k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
580
Visualization
eitanlees
146
15k
RailsConf 2023
tenderlove
29
1k
Code Reviewing Like a Champion
maltzj
521
39k
Typedesign – Prime Four
hannesfritz
41
2.5k
How to Ace a Technical Interview
jacobian
276
23k
Unsuck your backbone
ammeep
669
57k
Designing for humans not robots
tammielis
250
25k
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