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
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
110
AIと壁打ちしながら進めるコスト管理
fufuhu
2
1.9k
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
490
高専キャリア LT 発表内容
crysta1221
6
5.5k
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
100
AIエージェント時代のコードレビューを設計する
nogu66
5
2.4k
承認済みなのに差戻しできてしまうバグ、型で潰せます
shinchit
0
130
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
200
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.3k
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
140
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
3
460
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
140
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Navigating Weather and Climate Data
rabernat
0
510
Test your architecture with Archunit
thirion
2
2.4k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Music & Morning Musume
bryan
47
7.4k
BBQ
matthewcrist
89
10k
エンジニアに許された特別な時間の終わり
watany
108
250k
Un-Boring Meetings
codingconduct
0
410
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.5k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
320
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ͳͲʹൺϑΝΠϧͷ༰ྔ͕ܰྔ • ෳࡶͳΞχϝʔγϣϯ࣮͘͢͠ͳΔʂ
͓ΘΓ