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
SkiaとImpellerについて
Search
Taichi Moriya
November 21, 2024
Technology
0
630
SkiaとImpellerについて
Taichi Moriya
November 21, 2024
Tweet
Share
Other Decks in Technology
See All in Technology
事業成長の裏側:エンジニア組織と開発生産性の進化 / 20250703 Rinto Ikenoue
shift_evolve
PRO
1
850
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
110
KubeCon + CloudNativeCon Japan 2025 Recap
ren510dev
1
310
解析の定理証明実践@Lean 4
dec9ue
1
200
PHP開発者のためのSOLID原則再入門 #phpcon / PHP Conference Japan 2025
shogogg
4
940
AI専用のリンターを作る #yumemi_patch
bengo4com
4
2.1k
5min GuardDuty Extended Threat Detection EKS
takakuni
0
180
なぜ私はいま、ここにいるのか? #もがく中堅デザイナー #プロダクトデザイナー
bengo4com
0
1.3k
WordPressから ヘッドレスCMSへ! Storyblokへの移行プロセス
nyata
0
350
B2C&B2B&社内向けサービスを抱える開発組織におけるサービス価値を最大化するイニシアチブ管理
belongadmin
0
290
Yamla: Rustでつくるリアルタイム性を追求した機械学習基盤 / Yamla: A Rust-Based Machine Learning Platform Pursuing Real-Time Capabilities
lycorptech_jp
PRO
4
180
AWS テクニカルサポートとエンドカスタマーの中間地点から見えるより良いサポートの活用方法
kazzpapa3
2
610
Featured
See All Featured
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.3k
Building an army of robots
kneath
306
45k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
48
5.4k
Writing Fast Ruby
sferik
628
62k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
A designer walks into a library…
pauljervisheath
207
24k
Visualization
eitanlees
146
16k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
Automating Front-end Workflow
addyosmani
1370
200k
Transcript
क୩!גࣜձࣾ%F/" 4LJBͱJNQFMMFSʹ͍ͭͯ
ࣗݾհ w J04ͱ͔'MVUUFSͱ͔8FCϑϩϯ τͱ͔ͬͯ·͢ w έόϒ͕͖Ͱ͢
ಥવͰ͕͢
Ͳ͏ͬͯ6*͕දࣔ͞ΕΔͷ͔ ؾʹͳΓ·ͤΜ͔ʁ
͜ͷؒʹԿ͕ى͍ͬͯ͜Δͷ͔
6*͕දࣔ͞ΕΔ·Ͱ w (16Λհͯ͠ը໘ʹදࣔ w (16Λಈ͔͢ʹ0QFO(-ͳͲ ͷ(SBQIJDT"1*Λ༻ w 'MVUUFSʹݶΒͣͲͷϑϨʔϜϫ ʔΫͰมΘΒͳ͍ (SBQIJD"1*
0QFO(- 7VMLBO .FUBM "QQMJDBUJPO$PEF (16 σΟεϓϨΠ
'MVUUFSͰʁ w 8JEHFU 'SBNFXPSL Λ௨ͯ͠ &OHJOFͷ4LJBJNQFMMFS w 4LJBJNQFMMFS͔Β4VSGBDF͕ ଘࡏ͢Δ&NCFEEFSΛ௨ͯ͠ඳը &NCFEEFS
&OHJOF 4LJBJNQFMMFS 'MVUUFS'SBNFXPSL (SBQIJD"1* 0QFO(- 7VMLBO .FUBM
'MVUUFSͷΞʔΩςΫνϟ w ࡾߏ w 'SBNFXPSL w ΞϓϦͰ͏8JEHFUͳͲ w &OHJOF w
ϨϯμϦϯάϨΠΞτܭࢉɺJTPMBUF ͳͲ w 4LJBͱJNQFMMFS͜͜ʹҐஔ͢Δ w &NCFEEFS w ֤ϓϥοτϑΥʔϜʹରԠͨ͠ॲཧ 'MVUUFSBSDIJUFDUVSBMPWFSWJFX IUUQTEPDT fl VUUFSEFWSFTPVSDFTBSDIJUFDUVSBMPWFSWJFX
ͦͦ4LJBͬͯʁ w l%zઐ༻ͷϨϯμϦϯάΤϯδ ϯ w (PPHMF͕ओಋͯ͠։ൃ w 'MVUUFSҎ֎Ͱ"OESPJE $ISPNFͰ࠾༻͞Ε͍ͯΔ 4LJB
IUUQTTLJBPSH
JNQFMMFSͱʁ w 'MVUUFSઐ༻ͷϨϯμϦϯάΤϯ δϯ w (PPHMF͕ओಋͯ͠։ൃ w 'MVUUFS͔ΒQSFWJFX͕ ελʔτ JNQFMMFS
IUUQTHJUIVCDPN fl VUUFSFOHJOFUSFFNBJOJNQFMMFS
ϨϯμϦϯάΤϯδϯʁ w 0QFO(-ͷॻ͖Ͱ ӈͷΑ͏ʹඳըͰ͖Δ͕ʜ Θͳ͍߹
ϨϯμϦϯάΤϯδϯʁ 4LJBΛͬͯΈΔ w ઌ΄Ͳͷॲཧͱಉ͡ w ΑΓ͔Γ͍͢هड़ w ඳըॲཧΛநԽ w J04"OESPJEΛ͡Ίͱͨ͠
ϓϥοτϑΥʔϜͷରԠ w ඳըॲཧͳͲΛӅṭͨ͠ ϥΠϒϥϦ
'MVUUFSͰͷඳըϑϩʔʹ͍ͭͯ
શମ૾ 8JEHFU &MFNFOU 3FOEFS0CKFDU -BZFS %JTQMBZ-JTU 0Q *NQFMMFS4LJB
ࠓճ͢Δͷ͜͜ 8JEHFU &MFNFOU 3FOEFS0CKFDU -BZFS %JTQMBZ-JTU 0Q *NQFMMFS4LJB
͜͜ΒΜʁ 8JEHFU &MFNFOU 3FOEFS0CKFDU -BZFS 'MVUUFS,BJHJ3FOEFS0CKFDUΑΓԼͷੈքͷ'MVUUFSCZGBTUSJWFSͰৄ͘͠ղઆ͞Εͯ·͢ ͓͢͢ΊͰ͢ɺݟ·͠ΐ͏ʂʂʂʂʂ
8JEHFU w ීஈ৮Δ6*ͷཁૉ w ੜͱഁغ͕සൟʹى͜Δ w ࢠͷใΛͭ w ࣮ଶͱͯ͠8JEHFUΛܧঝͨ͠ 4JOHMF$IJME3FOEFS0CKFDU8JEHFU
ͳͲ
&MFNFOU w 8JEHFUΫϥε͕࣋ͭ DSFBUF&MFNFOU Ͱ࡞ w ϥΠϑαΠΫϧͷཧ w Ϛϯτߋ৽ɺΞϯϚϯ τͳͲ
w 3FOEFS0CKFDUͷཧ $FOUFS 4JOHMF$IJME3FOEFS 0CKFDU&MFNFOU %FDPSBUFE#PY 1BEEJOH 5FYU 4JOHMF$IJME3FOEFS 0CKFDU&MFNFOU 4JOHMF$IJME3FOEFS 0CKFDU&MFNFOU 4UBUFMFTT&MFNFOU
3FOEFS0CKFDU w ϨΠΞτܭࢉϖΠϯτΛߦ ͏ΦϒδΣΫτ w ώοτςετߦ͏ w 3FOEFS0CKFDU8JEHFUͷ࣋ͭ DSFBUF3FOEFS0CKFDU Ͱ࡞
4JOHMF$IJME3FOEFS 0CKFDU&MFNFOU 4JOHMF$IJME3FOEFS 0CKFDU&MFNFOU 4JOHMF$IJME3FOEFS 0CKFDU&MFNFOU 4UBUFMFTT&MFNFOU 3FOEFS1PTJUJPOFE #PY 3FOEFS%FDPSBUFE #PY 3FOEFS1BEEJOH 3FOEFS1BSBHSBQI
-BZFS 'SBNFXPSL w 3FOEFS0CKFDUQBJOU Λ௨ͯ͠࡞ w 1BJOUJOH$POUFYU w ࢠͷ3FOEFS0CKFDUͷQBJOUΛ ࠶ىతʹݺͼग़͢
w -BZFSΛૠೖPS$BOWBTͷ ॻ͖ࠐΈ w ࠓճͷ3FOEFS0CKFDUͰऴͷ 1JDUVSF-BZFSͷΈ࡞͞ΕΔ 1JDUVSF-BZFS 3FOEFS1PTJUJPOFE #PY 3FOEFS%FDPSBUFE #PY 3FOEFS1BEEJOH 3FOEFS1BSBHSBQI 1BJOUJOH$POUFYU
-BZFS &OHJOF w ͔͜͜Β$ ʹมΘΔ w &OHJOFଆͰ-BZFSߏΛѻ͑Δ Α͏ʹͨ͠ΦϒδΣΫτ w 4DFOF#VJMEFSʹΑͬͯ࡞
w 1JDUVSFΛ%JTQMBZ-JTUʹม w 1JDUVSF1BJOUJOH$POUFYUΛ ௨ͨ͠$BOWBTͷॻ͖ࠐΈ 1JDUVSF-BZFS %JTQMBZ-JTU-BZFS
%JTQMBZ-JTU w %JTQMBZ-JTU-BZFS͕࣋ͭ ඳը໋ྩΛ·ͱΊͨσʔλߏ w 1JDUVSF-BZFS͕͍࣋ͬͯͨ 1JDUVSF͔Βม w %JTQMBZ-JTU#VJMEFS#VJME Ͱ࡞
͞ΕΔ %JTQMBZ-JTU#VJMEFS %JTQMBZ-JTU %JTQMBZ-JTU-BZFS
0Q w %JTQMBZ-JTUʹ֨ೲ͞ΕΔඳը໋ ྩͷϞσϧ w ৭ృΓɺจࣈྻͷඳըɺը૾ͷ දࣔͱ͍༷ͬͨʑͳ໋ྩ͕͋Δ w %JTQMBZ-JTU#VJMEFSͷ 1VTI5FYU#MPC$MJQ1BUIͳͲͰ
࡞ %JTQMBZ-JTU %SBX5FYU#MPC0Q 4FU4USPLF8JEUI0Q %SBX$PMPS0Q
Α͏͘*NQFMMFS4LJB 8JEHFU &MFNFOU 3FOEFS0CKFDU -BZFS %JTQMBZ-JTU 0Q *NQFMMFS4LJB
͜͜Ͱগ͠ωΠςΟϒͷΛ
ωΠςΟϒͰͷϨϯμϦϯά w %FWJDF w நԽ͞Εͨ(16 w $PNNBOE#V ff FS w
ඳը͢ΔίϚϯυΛ̍·ͱΊʹͨ͠ͷ w 2VFVF w $PNNBOE#V ff FSͷ2VFVF w *NQFMMFS.FUBM7VMLBOΛ׆༻ w $PNNBOE#V ff FSͷੜ͕࠷ऴతͳඪ .5-$PNNBOE#V ff FS .5-%FWJDF .5-$PNNBOE2VFVF 7L$PNNBOE#V ff FS 7L%FWJDF 7L(SBQIJDT2VFVF (16
*NQFMMFSTLJBͰͷॲཧ w ͜͜·ͰͷྲྀΕͰ࡞ͨ͠0Q͕ %M0Q3FDFJWFSͰॲཧ͞ΕΔ w %M0Q3FDFJWFS0QΛड͚औͬ ͯॲཧ w %M0Q3FDFJWFSBCTUSBDUͰ࣮ମ 4LJB*NQFMMFSʹଘࡏ
%M0Q3FDFJWFS %M%JTQBUDIFS %M4L%JTQBUDIFS 0QT *NQFMMFS 4LJB
*NQFMMFSTLJBͰͷॲཧ 4LJBͷ߹ w %M4L%JTQBUDIFS w 4L$BOWBTΛอ࣋ w 4LJBͰఆٛ͞Εͨ$BOWBT w ֤0QΛ4LJBͷೖྗʹม
w $BOWBTॻ͖ࠐΈ w ͜ΕҎ߱4LJBͷॲཧ %M4L%JTQBUDIFS %M0Q 4L$BOWBT 4LJB 'MVUUFS
*NQFMMFSTLJBͰͷॲཧ *NQFMMFSͷ߹ w %M%JTQBUDIFS w $BOWBTΛอ࣋ w *NQFMMFSͰఆٛ w $BOWBTॻ͖ࠐΈ
w &OUJUZ1BTTม w ࠶ͼߏΛੜ %M%JTQBUDIFS %M0Q *NQFMMFS$BOWBT &OUJUZ1BTT &OUJUZ1BTT &OUJUZ1BTT %SBX1BJOU%SBX1BUI%SBX33FDU
*NQFMMFSTLJBͰͷॲཧ *NQFMMFSͷ߹ w &OUJUZ1BTTͱ w ෳͷ&OUJUZΛอ࣋ͯ࣍͠ͷ&OUJUZ ͷࢀরΛ࣋ͭ w -BZFSͱࣅͨ w
&OUJUZͱʁ w $POUFOUTͷอ࣋ w ࠷ऴతʹ༻͢Δ4IBEFSͳͲ ͷใΛ࣋ͭ &OUJUZ &OUJUZ1BTT &OUJUZ &OUJUZ &OUJUZ1BTT $POUFOUT &OUJUZ1BTT
*NQFMMFSTLJBͰͷॲཧ w $POUFOUTΛ3FOEFS1BTTՃ w 3FOEFS1BTT w 'MVUUFSଆͷ࠷ऴతͳϞσϧ w ֤άϥϑΟοΫε"1*ͷίϚϯ υม͢Δׂ
w .FUBM7VMLBO(-&4ͦΕͧΕ ͷ࣮ମ͕ଘࡏ 3FOEFS1BTT 3FOEFS1BTT.5- 3FOEFS1BTT7, &OUJUZ &OUJUZ1BTT &OUJUZ &OUJUZ $POUFOUT *NQFMMFSͷ߹
*NQFMMFSTLJBͰͷॲཧ w 3FOEFS1BTT͔Β֤ϓϥοτϑΥʔϜ ͷίϚϯυม w $PNNBOE#V ff FS͕2VFVFʹੵ·ΕΔ w (16ૹ৴͞ΕΔ
w ϨϯμϦϯά͞ΕΔʂʂʂ 3FOEFS1BTT.5- 3FOEFS1BTT7, .5-$PNNBOE#V ff FS 7,$PNNBOE#V ff FS .5-$PNNBOE2VFVF (16 7,(SBQIJDT2VFVF *NQFMMFSͷ߹
ϨϯμϦϯάϑϩʔʹ͍ͭͯ
w 1BUI(FOFSBUJPO w ඳըରΛύεʹม w 3BTUFSJ[F w ύε͔ΒඳըྖҬΛࡦఆ w 4IBEJOH
w ඳըྖҬͷ৭Λੜ w #MFOEJOH w 3BTUFSJ[Fͱ4IBEJOHͷ݁ՌΛ߹ 1BUI(FOFSBUJPO 4IBEJOH 3BTUFSJ[F #MFOEJOH 4L$BOWBT %SBX5FYU#MPC%SBX1BUIʜ 4LJBͷϨϯμϦϯάϑϩʔ
w 'MVUUFSͰ4IBEJOH͕ʹ w ૢ࡞࣌ʹಈతʹγΣʔμʔΛ ίϯύΠϧ͢Δ w 4L4-͔Β.4-(-4-ม w ͜ΕΛͨͳ͍ͱ͍͚ͳ͍ w
ΧΫπΩ͕ൃੜʜ 1BUI(FOFSBUJPO 4IBEJOH 3BTUFSJ[F #MFOEJOH 4L$BOWBT %SBX5FYU#MPC%SBX1BUIʜ 4LJBͷϨϯμϦϯάϑϩʔ
*NQFMMFSͷϨϯμϦϯάϑϩʔ w 4LJBͱҧ͍%·Ͱఆ w Ұൠతͳ(16ύΠϓϥΠϯͱ͍ۙ w .FUBM7VMLBOͱ΄΅ಉ͡ߏ w ΑΓࡉ͔͘(16Λѻ͑ΔΑ͏ʹ 3BTUFSJ[BUJPO
7FSUFY4IBEFS 4UFODJM5FTU 'SBHNFOU4IBEFS #MFOEJOH (FPNFUSZ4IBEFS 7FSUFY4IBEFS 'SBHNFOU4IBEFS 3BTUFSJ[BUJPO #MFOEJOH 'MVUUFS 7VMLBO
*NQFMMFSͷϨϯμϦϯάϑϩʔ w γΣʔμʔʹ͍ͭͯʁ w ࣄલίϯύΠϧ͞ΕΔΑ͏ʹ w *NQFMMFSDʹΑͬͯϏϧυ͞ΕΔ w γΣʔμʔͷݴޠ4L4-͔Β (-4-มߋ
(-4- 4IBEFS *NQFMMFSD 41*37 .FUBM4IBEFS -BOHVBHF 3F fl FDUPS $ #JOEFS .FUBM-JCSBSJFT
͜͜·Ͱઆ໌͖ͯ͠·͕ͨ͠
8JEHFU &MFNFOU 3FOEFS0CKFDU -BZFS %JTQMBZ-JTU 0Q *NQFMMFS4LJB
ͳͥ͜Μͳʹ͍ͷ͔ʁ
JNQFMMFSͷٙ w 8JEHFU͔Β*NFQMMFS4LJB·Ͱ͔ͳΓଟߏʹͳ͍ͬͯΔ͚Ͳඞཁʁ w ࣮%JTQMBZ-JTU4LJB෦ͱࣅͨΑ͏ͳσʔλߏ w 4LJBνʔϜͰͳ͘'MVUUFSνʔϜͱͯ͠ϝϯςͰ͖Δ w ΩϟογϡͷՃͳͲ͕ߦΘΕ͍ͯΔ w
4LJB*NQFMMFSͱʹγʔϜϨεʹҠߦͰ͖Δ
*NQFMMFSͰԿ͕มΘ͔ͬͨ ·ͱΊ w γΣʔμʔͷࣄલίϯύΠϧʹΑΓૢ࡞࣌ͷੑೳͷ্ w 'MVUUFSνʔϜओಋͰͷվળ w ΑΓ(16ʹ͍ۙϨϯμϦϯάύΠϓϥΠϯͷఏڙ w 'MVUUFS(16Λ͡Ίͱͨ͠ϨϕϧͳάϥϑΟοΫεૢ࡞ͷఏڙ͕Մೳʹ
w ݪཧతʹରԠ͢Δ0Q&OUJUZ͕͋ΕԿͰϨϯμϦϯάͰ͖Δ