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
リッチなアニメーションどうやって実装していますか?
Search
OG1
April 20, 2023
Programming
1.7k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
リッチなアニメーションどうやって実装していますか?
OG1
April 20, 2023
More Decks by OG1
See All by OG1
Get started with Compose Multiplatform!
ogi2ogi
1
3.1k
Compose Multiplatform入門してみた
ogi2ogi
0
310
Gradleを次のステップへ
ogi2ogi
1
550
Let's Take a Deep Dive into Pager Indicators
ogi2ogi
0
940
Other Decks in Programming
See All in Programming
プロポーザルを書いてもらう
pvcresin
0
590
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.9k
typoなんかねぇよ
raspython3
0
630
Deep dive into the select statement (GopherCon UK)
jespino
0
160
不幸な GC
chencmd
0
850
AIエージェント時代のコードレビューを設計する
nogu66
5
910
【デモ】Kiroで体験する仕様駆動開発|設計からコーディングまでAIと進める開発フロー
cmkudo
0
530
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
4
2.4k
[PyCon KR 2026] More Variants, More Diversity for AI Accelerators
achimnol
0
130
30年振りにコンパイラの定数整数除算を改善した
herumi
9
4.4k
[DroidKaigi 26] How We Moved from Android Studio to Slack
thisaay
0
130
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
400
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
850
Believing is Seeing
oripsolob
1
200
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
430
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Documentation Writing (for coders)
carmenintech
77
5.5k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
700
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
490
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Transcript
ϦονͳΞχϝʔγϣϯ Ͳ͏࣮͍ͬͯͯ͠·͔͢ʁ ϋʔυϧܹLTେձοʂ#02 2023-04-20 OG1
ࢯ໊ɿTsuyoshi Ogihara ॴଐɿגࣜձࣾVoicy ۀɿAndroidΤϯδχΞ झຯɿπʔϦϯά/VRήʔϜ/DTM ຊΑΖ͓͘͠ئ͍͠·͢ʂ ೖࣾɿ2022.07~ @ogi2ogi
ϦονͳΞχϝʔγϣϯ Ͳ͏࣮͍ͬͯͯ͠·͔͢ʁ
ϦονͳΞχϝʔγϣϯ ྫ͑ɺɺɺ ϩʔσΟϯάΞχϝʔγϣϯ Կ͔ΞΫγϣϯʹରͯ͠දࣔ
ํ๏ᶃɹgifϦιʔεͱͯ͠ඳը͢Δ
ํ๏ᶃɹgifϦιʔεͱͯ͠ඳը͢Δ //... val url = "gifϦιʔεͷURLϦιʔε໊" Glide.with(fragment) .load(url) .into(imageView) //....
͍͍ײ͡👍 Androidͷ߹ͷҰྫ https://bumptech.github.io/glide/
ํ๏ᶃɹgifϦιʔεͱͯ͠ඳը͢Δ //... val url = "gifϦιʔεͷURLϦιʔε໊" Glide.with(fragment) .load(url) .into(imageView) //....
͍͍ײ͡👍 🤔gifϦιʔεͷαΠζେ͖͍ 🤔ιʔεͰ৭Λม͍͑ͨ Androidͷ߹ͷҰྫ https://bumptech.github.io/glide/
ํ๏ᶄɹLottieϥΠϒϥϦΛ͏
ํ๏ᶄɹLottieϥΠϒϥϦΛ͏ • Android/iOS/Windows/WebͳͲ ɹɹෳͷϓϥοτϑΥʔϜʹରԠ • JSONϕʔεͷΞχϝʔγϣϯϑΝΠϧΛѻ͏ • gifʹൺܰྔͰ៉ྷͳΞχϝʔγϣϯϑΝΠϧ https://airbnb.design/lottie/ Lottieͱ
ํ๏ᶄɹLottieϥΠϒϥϦΛ͏ //… ɹval composition by rememberLottieComposition( ɹ LottieCompositionSpec.RawRes(LottieͷJSONϦιʔε) ɹ) val
dynamicProperties = rememberLottieDynamicProperties { //ΞχϝʔγϣϯϦιʔεͷ৭ΛมߋͰ͖Δ val property = LottieProperty.STROKE_COLOR val newColor = Color(0xFFFF0000) val keyPath = "Fill 1".toKeyPath() rememberLottieDynamicProperty(property, newColor, keyPath) } LottieAnimation( composition = composition, dynamicProperties = dynamicProperties, ) //.... ͞Βʹ͍͍ײ͡👍 👍ϦιʔεϑΝΠϧ͕ܰྔ 👍ιʔεͰಈతʹ৭ΛมߋՄ Androidͷ߹ͷҰྫ 👍એݴతUIʹରԠ Ξχϝʔγϣϯදࣔ
·ͱΊ
• LottieϥΠϒϥϦʹ͍ͭͯհ͠·ͨ͠ • 1ͭͷJSONϑΝΠϧͰෳͷϓϥοτϑΥʔϜʹ࣮ग़དྷΔ • gifͳͲʹൺϑΝΠϧͷ༰ྔ͕ܰྔ • ෳࡶͳΞχϝʔγϣϯ࣮͘͢͠ͳΔʂ
͓ΘΓ