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
300
SkiaとImpellerについて
Taichi Moriya
November 21, 2024
Tweet
Share
Other Decks in Technology
See All in Technology
Google Cloud で始める Cloud Run 〜AWSとの比較と実例デモで解説〜
risatube
PRO
0
120
終了の危機にあった15年続くWebサービスを全力で存続させる - phpcon2024
yositosi
27
23k
TSKaigi 2024 の登壇から広がったコミュニティ活動について
tsukuha
0
170
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
18
5.5k
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
190
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
380
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
200
サイバー攻撃を想定したセキュリティガイドライン 策定とASM及びCNAPPの活用方法
syoshie
3
1.4k
5分でわかるDuckDB
chanyou0311
10
3.3k
Fanstaの1年を大解剖! 一人SREはどこまでできるのか!?
syossan27
2
180
コンテナセキュリティのためのLandlock入門
nullpo_head
2
330
TypeScript開発にモジュラーモノリスを持ち込む
sansantech
PRO
2
640
Featured
See All Featured
The Invisible Side of Design
smashingmag
298
50k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2k
We Have a Design System, Now What?
morganepeng
51
7.3k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
GraphQLとの向き合い方2022年版
quramy
44
13k
Writing Fast Ruby
sferik
628
61k
Testing 201, or: Great Expectations
jmmastey
41
7.1k
Mobile First: as difficult as doing things right
swwweet
222
9k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
810
Building a Scalable Design System with Sketch
lauravandoore
460
33k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
Adopting Sorbet at Scale
ufuk
73
9.1k
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͕͋ΕԿͰϨϯμϦϯάͰ͖Δ