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
Musicアプリのトランジションを再現する
Search
kNagadou
August 31, 2018
Programming
3
2.5k
Musicアプリのトランジションを再現する
iOSDC Japan 2018/8/31 TrackC 15:10~15:40
kNagadou
August 31, 2018
Tweet
Share
More Decks by kNagadou
See All by kNagadou
勇気を出して、Appleにバグレポートを出してみませんか?
knagadou
0
1.2k
iPhoneX対応とScrollViewのcontentInset
knagadou
1
720
テスト実行時に 不要な初期化コードを実行しないようにする
knagadou
4
1.5k
Other Decks in Programming
See All in Programming
Namespace and Its Future
tagomoris
6
710
Deep Dive into Kotlin Flow
jmatsu
1
370
testingを眺める
matumoto
1
140
プロパティベーステストによるUIテスト: LLMによるプロパティ定義生成でエッジケースを捉える
tetta_pdnt
0
4.3k
JSONataを使ってみよう Step Functionsが楽しくなる実践テクニック #devio2025
dafujii
1
640
パッケージ設計の黒魔術/Kyoto.go#63
lufia
3
440
楽して成果を出すためのセルフリソース管理
clipnote
0
190
go test -json そして testing.T.Attr / Kyoto.go #63
utgwkk
3
310
rage against annotate_predecessor
junk0612
0
170
より安全で効率的な Go コードへ: Protocol Buffers Opaque API の導入
shwatanap
2
790
AIと私たちの学習の変化を考える - Claude Codeの学習モードを例に
azukiazusa1
11
4.4k
🔨 小さなビルドシステムを作る
momeemt
4
690
Featured
See All Featured
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
61k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Intergalactic Javascript Robots from Outer Space
tanoku
272
27k
The Pragmatic Product Professional
lauravandoore
36
6.9k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
850
Fireside Chat
paigeccino
39
3.6k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.4k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
580
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Transcript
.VTJDΞϓϦͷ τϥϯδγϣϯΛ࠶ݱ͢Δ ,":"$ٕज़෦ ,B[VNBTB/"("%0 J04%$+BQBO5SBDL$d JPTEDDےΤϯδχΞ
/BNF,B[VNBTB/"("%0 8PSL,":"$d 5XJUUFS!L[NTOHE /1$+/FX(FOFSBUJPO$MBTTJD 1IZTJRVF/PWJDFDN 1SPpMF
ࠓ͔Βग़དྷΔےංେΫΠζ 2 τϨʔχϯά͍࣌ؒ΄͏͕ྑ͍ʁ ͍΄͏͕ྑ͍ʁ
ࠓ͔Βग़དྷΔےංେΫΠζ " τϨʔχϯά͍࣌ؒ΄͏͕ྑ͍ ɹˠʙ͘Β͍͕ͪΐ͏Ͳ͍͍ͱ͞Ε͍ͯΔ τϨʔχϯά͕͍࣌ؒͱʜ ɾےղ͕ਐΈ͗ͯ͢͠·͏ ɹˠےղΛଅਐ͢ΔͱݴΘΕ͍ͯΔίϧνκʔϧ͕૿Ճ͢Δ ɾΦʔόʔτϨʔχϯάʹͳΔ ɹˠճ෮͕͍͔ͭͳ͘ͳΔ ɾूதྗ͕อͯͳ͍
ɹˠոզͷϦεΫ
ˎJ5VOFT"QQ4UPSF IUUQTJUVOFTBQQMFDPNKQBQQMPCJϩϏʔJE NU ˎ"OESPJE IUUQTQMBZHPPHMFDPNTUPSFBQQTEFUBJMT JEDPNLBZBDOBLBNBQIMKB ˎ8FC൛ IUUQTXFCMPCJDP
ήʔϜ߈ུνϟοτ4/4 -PCJ
Ϟʔμϧʹ͍ͭͯ
Ϟʔμϧͱ 8IFOBNPEBMWJFXBQQFBSTPOTDSFFO UIFVTFSNVTUNBLF BDIPJDFCZUBQQJOHBCVUUPOPSPUIFSXJTFFYJUJOHUIF NPEBMFYQFSJFODF "QQMF)VNBO*OUFSGBDF(VJEFMJOF.PEBMJUZΑΓ
Ϟʔμϧͱ ϞʔμϧϏϡʔɺҰ࣌తͳঢ়ଶʢϞʔυʣΛ࡞ͬͯ ಛఆͷΞΫγϣϯΛϢʔβʔʹଅ͢ɻ ˠ͍ͭͰલͷঢ়ଶɾը໘ʹΕΔ͜ͱ͕ Θ͔Δ6*͕ٻΊΒΕΔ
Ϟʔμϧͷྫ ϑϧεΫϦʔϯ
Ϟʔμϧͷྫ Ξϥʔτܕ
Ϟʔμϧͷྫ .VTJDͷϞʔμϧϏϡʔ
Ϟʔμϧͷྫ ϛϡʔδοΫϓϨΠϠʔ ˠΠϯλϥΫςΟϒʹ։ด ˠԻָͷ࠶ੜͱݕࡧ͕ಉ࣌ʹͰ͖Δ
Ϟʔμϧͷྫ ΠϯλϥΫςΟϒͳཁૉ ˎഎܠը໘ͷଘࡏ ˎεϫΠϓͷྔʹԠͨ͡ ɹϞʔμϧϏϡʔͷτϥϯδγϣϯ ˎϞʔμϧϏϡʔ্෦ͷ ɹόλϑϥΠϋϯυϧ
࣮ݱ͍ͨ͜͠ͱ
࣮ݱ͍ͨ͜͠ͱ -PCJͷಛ ήʔϜʹಛԽͨ͠ίϛϡχςΟ
࣮ݱ͍ͨ͜͠ͱ ήʔϜΛ͕͢͞ը໘ΛϦχϡʔΞϧ
࣮ݱ͍ͨ͜͠ͱ ᶃؾʹͳΔήʔϜ͓ؾʹೖΓͷήʔϜΛ͕͢͞ .VTJDΞϓϦͷΑ͏ʹɺΠϯλϥΫςΟϒͳ ϞʔμϧϏϡʔʹ͍ͨ͠ ᶄήʔϜͷίϛϡχςΟίϯςϯπΛ͕͢͞ ϝΠϯίϯςϯπ
࣮ݱ͍ͨ͜͠ͱ
࣮ݱ͍ͨ͜͠ͱ ϞʔμϧϏϡʔτϥϯδγϣϯ ΠϯλϥΫςΟϒͳτϥϯδγϣϯ 6*5BCMF7JFX 6*4FBSDI$POUSPMMFS ֎෦ϥΠϒϥϦΛΘͣʹɺͰ͖Δ͚ͩγϯϓϧɾ࠷ݶͷ ࣮ͰΓ͍ͨ
αϯϓϧίʔυ IUUQTHJUIVCDPNL/BHBEPV.PEBM1SFTFOUBUJPO$VTUPN ্ख͍͔͘ͳͯ͘ϋϚͬͨύλʔϯ͋Γ·͢
ΠϯλϥΫςΟϒͳτϥϯδγϣϯ ࣮ݱ·Ͱͷεςοϓ ̍ɼϞʔμϧτϥϯδγϣϯΛ࣮ ̎ɼΞχϝʔλʔΦϒδΣΫτΛ࣮ ̏ɼΠϯλϥΫςΟϒΞχϝʔλʔΦϒδΣΫτΛ࣮
ϞʔμϧϏϡʔτϥϯδγϣϯ ϞʔμϧτϥϯδγϣϯΛ༗ޮʹ͢Δ αϯϓϧίʔυɿ7JFX$POUSPMMFSN 6*.PEBM1SFTFOUBUJPO$VTUPNΛ7$ʹηοτ͢Δ
ϞʔμϧϏϡʔτϥϯδγϣϯ ϞʔμϧϏϡʔͷഎ໘ʹӨΛ͚Δ αϯϓϧίʔυɿ7JFX$POUSPMMFSN 6*1SFTFOUBUJPO$POUSPMMFSͷαϒΫϥεΛ࡞͠ɺ USBOTJUJPO%FMFHBUFͰฦ͢ ˠ࣮͍ͯ͠ͳ͍ͱɺඪ४ͷ6*1SFTFOUBUJPO$POUSPMMFS͕ར༻ ͞ΕΔɻ IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOVJLJUVJWJFXDPOUSPMMFSUSBOTJUJPOJOHEFMFHBUF
QSFTFOUBUJPODPOUSPMMFSGPSQSFTFOU MBOHVBHFPCKD
ϞʔμϧϏϡʔτϥϯδγϣϯ ϞʔμϧϏϡʔͷഎ໘ʹӨΛ͚Δ αϯϓϧίʔυɿ7JFX$POUSPMMFSN 6*1SFTFOUBUJPO$POUSPMMFSͷαϒΫϥεΛ࡞͠ɺ USBOTJUJPO%FMFHBUFͰฦ͢ ˠ࣮͍ͯ͠ͳ͍ͱɺඪ४ͷ6*1SFTFOUBUJPO$POUSPMMFS͕ར༻ ͞ΕΔɻ IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOVJLJUVJWJFXDPOUSPMMFSUSBOTJUJPOJOHEFMFHBUF
QSFTFOUBUJPODPOUSPMMFSGPSQSFTFOU MBOHVBHFPCKD
ΠϯλϥΫςΟϒͳτϥϯδγϣϯ ΞχϝʔλʔΦϒδΣΫτΛ࣮͢Δ αϯϓϧίʔυɿ$VTUPN.PEBM"OJNBUPSN I 6*7JFX$POUSPMMFS"OJNBUFE5SBOTJUJPOJOHϓϩτίϧ
ΠϯλϥΫςΟϒͳτϥϯδγϣϯ ΞχϝʔλʔΦϒδΣΫτΛ࣮͢Δ αϯϓϧίʔυɿ$VTUPN.PEBM"OJNBUPSN I JT1SFTFOUJOH QSFTFOUͱEJTNJTTͷΞχϝʔγϣϯΛ ͍͚ΔͨΊͷϑϥά
ΠϯλϥΫςΟϒͳτϥϯδγϣϯ ΠϯλϥΫςΟϒΞχϝʔλʔΦϒδΣΫτΛ࣮͢Δ αϯϓϧίʔυɿ %SBHHBCMF1FSDFOU%SJWFO*OUFSBDUJWF5SBOTJUJPON I 6*1FSDFOU%SJWFO*OUFSBDUJWF5SBOTJUJPOͷαϒΫϥε
ΠϯλϥΫςΟϒͳτϥϯδγϣϯ ΠϯλϥΫςΟϒΞχϝʔλʔΦϒδΣΫτΛ࣮͢Δ αϯϓϧίʔυɿ %SBHHBCMF1FSDFOU%SJWFO*OUFSBDUJWF5SBOTJUJPON I ϞʔμϧϏϡʔʹύϯδΣενϟʔΛՃ εϫΠϓྔʹԠͯ͡ɺϞʔμϧϏϡʔͷEJTNJTTΞχϝʔ
γϣϯΛਐΊΔ
ΠϯλϥΫςΟϒͳτϥϯδγϣϯ ΠϯλϥΫςΟϒΞχϝʔλʔΦϒδΣΫτΛ࣮͢Δ αϯϓϧίʔυɿ %SBHHBCMF1FSDFOU%SJWFO*OUFSBDUJWF5SBOTJUJPON I EJTBCMF*OUFSBDUJWF5SBOTJUJPO ΠϯλϥΫςΟϒτϥϯδγϣϯͷແޮϑϥά
ˠύϯδΣενϟʔΛೝࣝͨ͠߹ͷΈΠϯλϥΫςΟϒ τϥϯδγϣϯΛ༗ޮʹ͢ΔͨΊ
6*5BCMF7JFX 6*4FBSDI$POUSPMMFS ΧελϜͷϞʔμϧϏϡʔͰ 6*5BCMF7JFX 6*4FBSDI$POUSPMMFS ͷΈ߹ΘͤΛར༻͠Α͏ͱͨ͠ͱ͜ΖɺࢥΘ͵མͱ͕݀͠ɻ
6*5BCMF7JFX 6*4FBSDI$POUSPMMFS མͱ݀̍͠ ϞʔμϧϏϡʔͷࠨӈʹϚʔδϯΛ͚Α͏ͱ͢Δ J04Ͱ6*4FBSDI$POUSPMMFS6*4FBSDI#BS͕ ্ʹͣΕΔ
6*5BCMF7JFX 6*4FBSDI$POUSPMMFS མͱ݀̎͠ "OJNBUPSͰϞʔμϧϏϡʔͷGSBNFΛม͑Α͏ͱ͢Δ ʢྫ͑ɺҙͷZʹϞʔμϧϏϡʔΛදࣔ͢ΔɺͳͲʣ ˠJ04Ͱ6*4FBSDI$POUSPMMFS6*4FBSDI#BS͕ͣΕΔ
6*5BCMF7JFX 6*4FBSDI$POUSPMMFS ͍Ζ͍ΖͱϞʔμϧϏϡʔΛΧελϚΠζ͠Α͏ͱ͢Δͱɺ 6*4FBSDI$POUSPMMFS͕͍ͮΒ͘ͳ͍ͬͯ͘ʜ
6*5BCMF7JFX 6*4FBSDI$POUSPMMFS 6*5BCMF7JFX 6*4FBSDI#BS 6*4FBSDI#BS%FMFHBUF ͱ͍͏ख͋Δɻ ˠͲͷམͱ݀͠ύλʔϯͰɺ 6*4FBSDI#BSͳΒਖ਼͘͠දࣔͰ͖ͦ͏
·ͱΊ
ΠϯλϥΫςΟϒτϥϯδγϣϯ ࣮ݱ·Ͱͷεςοϓ ̍ɼϞʔμϧτϥϯδγϣϯΛ࣮ 6*.PEBM1SFTFOUBUJPO$VTUPN USBOTJUJPO%FMFHBUF 6*1SFTFOUBUJPO$POUSPMMFSͷαϒΫϥε ̎ɼΞχϝʔλʔΦϒδΣΫτΛ࣮ 6*7JFX$POUSPMMFS"OJNBUFE5SBOTJUJPOJOHΛ࣮
̏ɼΠϯλϥΫςΟϒΞχϝʔλʔΦϒδΣΫτΛ࣮ 6*1FSDFOU%SJWFO*OUFSBDUJWF5SBOTJUJPOͷαϒΫϥε
ΧελϜϞʔμϧϏϡʔͰ6*4FBSDI$POUSPMMFSΛ͏߹ গ͕͠ඞཁ͔͠Εͳ͍ ˠఘΊͯɺ6*4FBSDI#BSͰ࣮ͯ͠͠·͏ͷΞϦͩͱࢥ͏
J04ɺ"OESPJEɺͳͲͳͲ ΤϯδχΞઈࢍืूதʂ
߹ಉτϨʔχϯάઈࢍืूதʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠
Ҿ༻ɾࢀߟ <>IUUQTEFWFMPQFSBQQMFDPNEFTJHOIVNBOJOUFSGBDFHVJEFMJOFTJPTBQQ BSDIJUFDUVSFNPEBMJUZ <>IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOVJLJU VJWJFXDPOUSPMMFSUSBOTJUJPOJOHEFMFHBUF MBOHVBHFPCKD <>IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOVJLJU VJWJFXDPOUSPMMFSBOJNBUFEUSBOTJUJPOJOH MBOHVBHFPCKD <>IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOVJLJU
VJWJFXDPOUSPMMFSJOUFSBDUJWFUSBOTJUJPOJOH MBOHVBHFPCKD IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOVJLJUVJQSFTFOUBUJPODPOUSPMMFS MBOHVBHFPCKD <>IUUQTEFWFMPQFSBQQMFDPNKQEPDVNFOUBUJPOGFBUVSFEBSUJDMFT 7JFX$POUSPMMFS1(GPSJ1IPOF04$VTUPNJ[JOHUIF5SBOTJUJPO"OJNBUJPOT $VTUPNJ[JOHUIF5SBOTJUJPO"OJNBUJPOTIUNMBQQMF@SFGEPDVJE51 $)48 <>IUUQTOPUFNVVTBHJNBSVNBOODDFD