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
UIKitのAPI Diffから見る Safe Area - iOS LT #32
Search
kazuhiro4949
October 26, 2017
Technology
8
1.4k
UIKitのAPI Diffから見る Safe Area - iOS LT #32
Safe Area関連のAPIをUIKitから抽出してきたもの
kazuhiro4949
October 26, 2017
Tweet
Share
More Decks by kazuhiro4949
See All by kazuhiro4949
SwiftUIをUIKitのライフサイクルで拡張するTips
kazuhiro4949
4
2.8k
iOS15でプッシュ通知のテストが大変だった話
kazuhiro4949
0
630
Source Editor Extensionと SwiftSyntaxでコード自動生成ツール を作る
kazuhiro4949
2
4.4k
iOS 12サポート終了で使えるAPIおさらい
kazuhiro4949
2
380
Source Editor ExtensionとSwiftSyntaxでコード自動生成
kazuhiro4949
0
130
大企業の最前線でコードを書き続けるためにやってきたこと
kazuhiro4949
28
19k
10分で振り返るここ数年のWWDCの技術トレンド
kazuhiro4949
0
330
コードを書きながら同時に設計していくためのiOSアプリ開発方針
kazuhiro4949
6
2.7k
身近な技術的課題から始めるOSSプロジェクト
kazuhiro4949
0
340
Other Decks in Technology
See All in Technology
Digitization部 紹介資料
sansan33
PRO
1
7k
Raspberry Pi AI HAT+ 2 介紹(#49)
piepie_tw
PRO
0
140
AI が Approve する開発フロー / How AI Reviewers Accelerate Our Development
zaimy
1
250
マイグレーションガイドに書いてないRiverpod 3移行話
taiju59
0
340
Databricksアシスタントが自分で考えて動く時代に! エージェントモード体験もくもく会
taka_aki
0
270
Introduction to Bill One Development Engineer
sansan33
PRO
0
380
Agentic Codingの実践とチームで導入するための工夫
lycorptech_jp
PRO
0
370
なぜAIは組織を速くしないのか 令和の腑分け
sugino
81
53k
「使いにくい」も「運用疲れ」も卒業する UIデザイナーとエンジニアが創る持続可能な内製開発
nrinetcom
PRO
1
770
OCI技術資料 : 外部接続 VPN接続 詳細
ocise
1
10k
競争優位を生み出す戦略的内製開発の実践技法
masuda220
PRO
2
520
Devinを導入したら予想外の人たちに好評だった
tomuro
0
740
Featured
See All Featured
Thoughts on Productivity
jonyablonski
75
5.1k
Six Lessons from altMBA
skipperchong
29
4.2k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
Mind Mapping
helmedeiros
PRO
1
110
The Pragmatic Product Professional
lauravandoore
37
7.2k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
GitHub's CSS Performance
jonrohan
1032
470k
Side Projects
sachag
455
43k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
180
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
620
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8k
Paper Plane (Part 1)
katiecoart
PRO
0
5k
Transcript
6*,JUͷ"1*%J⒎͔ΒݟΔ 4BGF"SFB ,B[VIJSP)":"4)* J04-5
4BGF"SFBͱ wJ04͔Βͷػೳ w7JFXͷத͕දࣔ͞ ΕΔ͜ͱΛอূͯ͠ ͍ΔྖҬ wJ1IPOF9Ͱ)PNF *OEJDBUPS4FOTPS )PVTJOHͱίϯςϯ π͕ඃΒͳ͍Α͏ʹ ઃఆ͞ΕΔ
IUUQTEFWFMPQFSBQQMFDPNJPTIVNBOJOUFSGBDFHVJEFMJOFTPWFSWJFXJQIPOFY
ΞδΣϯμ 6*,JUͷ4BGF"SFBؔ࿈ͷมߋΛௐࠪ͢Δ ΠϕϯτΛ࣮ࡍʹ৮ͬͯΈͯɺ4BGF"SFBͷϨΠΞτ ͷӨڹΛௐࠪ͢Δ
ํ๏ 6*,JU͕࣋ͭ"1*ͷJ04ʙJ04ؒͷ%J⒎Λ͏ l4BGF"SFBl lMBZPVU.BSHJOl lJOTFUTlลΓͷΩʔϫʔυ Ͱԣஅతʹݕࡧ υΩϡϝϯτʹ4BGF"SFBʹؔ͢Δهड़͕͋Εࢼͯ͠
ΈΔ
IUUQDPEFXPSLTIPQOFUPCKDEJ⒎TELEJ⒎TJPT
4BGF"SFBؔ࿈ͷ%J⒎ 6*7JFXTBGF"SFB*OTFUT 6*7JFXTBGF"SFB-BZPVU(VJEF 6*7JFXJOTFUT-BZPVU.BSHJO'PS4BGF"SFB 6*7JFXEJSFDUJPOBM-BZPVU.BSHJOT 6*7JFXTBGF"SFB*OTFUT%JE$IBOHF 6*7JFX$POUSPMMFSBEEJUJPOBM4BGF"SFB*OTFUT 6*7JFX$POUSPMMFSWJFX4BGF"SFB*OTFUT%JE$IBOHF
6*4DSPMM7JFXDPOUFOU*OTFU"EKVTUNFOU#FIBWJPS 6*4DSPMM7JFXBEKVTUFE$POUFOU*OTFU 6*4DSPMM7JFXTDSPMM7JFX%JE$IBOHF"EKVTUFE$POUFOU*OTFU @ 6*5BCMF7JFXJOTFUT$POUFOU7JFXT5P4BGF"SFB 6*$PMMFDUJPO7JFX'MPX-BZPVUTFDUJPO*OTFU3FGFSFODF
4BGF"SFBؔ࿈ͷ%J⒎ 6*7JFXTBGF"SFB*OTFUT 6*7JFXTBGF"SFB-BZPVU(VJEF 6*7JFXJOTFUT-BZPVU.BSHJO'PS4BGF"SFB 6*7JFXEJSFDUJPOBM-BZPVU.BSHJOT 6*7JFXTBGF"SFB*OTFUT%JE$IBOHF 6*7JFX$POUSPMMFSBEEJUJPOBM4BGF"SFB*OTFUT 6*7JFX$POUSPMMFSWJFX4BGF"SFB*OTFUT%JE$IBOHF
6*4DSPMM7JFXDPOUFOU*OTFU"EKVTUNFOU#FIBWJPS 6*4DSPMM7JFXBEKVTUFE$POUFOU*OTFU 6*4DSPMM7JFXTDSPMM7JFX%JE$IBOHF"EKVTUFE$POUFOU*OTFU @ 6*5BCMF7JFXJOTFUT$POUFOU7JFXT5P4BGF"SFB 6*$PMMFDUJPO7JFX'MPX-BZPVUTFDUJPO*OTFU3FGFSFODF "1*
݁ߏ͋Δ
ͻͱͭͣͭݟ͍͖ͯ·͢
6*7JFX
TBGF"SFB*OTFUT w ࢠ7JFXΛӅͯ͠͠·͏ྖҬ /BWJHBUJPO#BS5BC#BS 4UBUVT#BS ͳͲ Λ6*&EHF*OTFUͷͱͯ֨͠ೲ w ͜ͷΛ͑J04తͳදࣔྖҬͷൣғʹࢠ7JFXΛऩΊΔ͜ͱ͕ Ͱ͖Δ
w 7JFXͷஔ͔Ε͍ͯΔॴʢ4BGF"SFBͳ͍͔Ͳ͏͔ʣʹΑͬͯ ͕มΘΔ
TBGF"SFB*OTFUT DMBTT4BGF"SFB*OTFUT7JFX$POUSPMMFS6*7JFX$POUSPMMFS\ !*#0VUMFUXFBLWBS@WJFX6*7JFX PWFSSJEFGVODWJFX%JE-PBE \ TVQFSWJFX%JE-PBE ^ PWFSSJEFGVODWJFX%JE-BZPVU4VCWJFXT
\ TVQFSWJFX%JE-BZPVU4VCWJFXT @WJFXGSBNF6*&EHF*OTFUT*OTFU3FDU WJFXCPVOET WJFXTBGF"SFB*OTFUT ^ ^
w TBGF"SFB*OTFUTΛ"VUP-BZPVUͰઃఆ͢Δ࣌ͷ-BZPVU(VJEF w 4UPSZCPBSEͰ4BGF"SFBΛѻ͏࣌͜Εʹର੍ͯ͠Λு͍ͬͯΔ TBGF"SFB-BZPVU(VJEF
TBGF"SFB-BZPVU(VJEF DMBTT4BGF"SFB-BZPVU(VJEF7JFX$POUSPMMFS6*7JFX$POUSPMMFS\ !*#0VUMFUXFBLWBS@WJFX6*7JFX PWFSSJEFGVODWJFX%JE-PBE \ TVQFSWJFX%JE-PBE @WJFXUSBOTMBUFT"VUPSFTJ[JOH.BTL*OUP$POTUSBJOUTGBMTF @WJFXUPQ"ODIPSDPOTUSBJOU
FRVBM5PWJFXTBGF"SFB-BZPVU(VJEFUPQ"ODIPS JT"DUJWFUSVF @WJFXCPUUPN"ODIPSDPOTUSBJOU FRVBM5PWJFXTBGF"SFB-BZPVU(VJEFCPUUPN"ODIPS JT"DUJWFUSVF @WJFXUSBJMJOH"ODIPSDPOTUSBJOU FRVBM5PWJFXTBGF"SFB-BZPVU(VJEFUSBJMJOH"ODIPS JT"DUJWFUSVF @WJFXMFBEJOH"ODIPSDPOTUSBJOU FRVBM5PWJFXTBGF"SFB-BZPVU(VJEFMFBEJOH"ODIPS JT"DUJWFUSVF ^
JOTFUT-BZPVU.BSHJOT'SPN4BGF"SFB w 4BGF"SFBͷൣғ֎ʹ͍Δ6*7JFXͷMBZPVU.BSHJOʹ4BGF"SFBͷ Λߟྀͤ͞ΔΑ͏ಇ͖͔͚Δ w σϑΥϧτUSVF w GBMTFʹ͢Δͱ4BGF"SFBΛߟྀͤͣʹɺࠓ·Ͱ௨Γઃఆ͞Εͨ MBZPVU.BSHJOͷ͕ΘΕΔ
JOTFUT-BZPVU.BSHJOT'SPN4BGF"SFB MBZPVU.BSHJOT 4BGF"SFB
JOTFUT-BZPVU.BSHJOT'SPN4BGF"SFB MBZPVU.BSHJOT DMBTT*OTFUT-BZPVU.BSHJO'SPN4BGF"SFB7JFX$POUSPMMFS6*7JFX$POUSPMMFS\ !*#0VUMFUXFBLWBS@WJFX6*7JFX PWFSSJEFGVODWJFX%JE-PBE \ TVQFSWJFX%JE-PBE WJFXJOTFUT-BZPVU.BSHJOT'SPN4BGF"SFBGBMTF
^ ^
͓·͚ EJSFDUJPOBM-BZPVU.BSHJOT w J04͔ΒMBZPVU.BSHJOTͰͳͬͪ͘͜Λ͏Β͍͠ w /4%JSFDUJPOBM&EHF*OTFUTͱ͍͏6*&EHF*OTFUTͬΆ͍ߏମ w MFGU SJHIUͷΘΓʹMFBEJOH
USBJMJOHͷΑ͏ʢͭ·Γݴޠґଘʣ w ઌఔͷJOTFUT-BZPVU.BSHJO'PS4BGF"SFBͷ͕USVFͰ͋Εɺ4BGF "SFBͷӨڹΛड͚Δ
TBGF"SFB*OTFUT%JE$IBOHF w 4BGF"SFBͷ͕ॻ͖Θͬ ͨΒݺΕΔ w ͦͷޙͰMBZPVU4VCWJFXT͕ ݺΕΔ TBGF"SFB*OTFUT%JE$IBOHF MBZPVU4VCWJFXT
6*7JFX$POUSPMMFS
BEEJUJPOBM4BGF"SFB*OTFUT w TBGF"SFB*OTFUTηοτͰ͖ͳ͍ͨΊɺಠࣗͰ4BGF"SFBΛఆٛ ͍ͨ͠߹͜ͷΛॻ͖͑Δ w ͜͜ೖΕ͕ͨݩʑͷTBGF"SFBʹ͞ΕΔܗͰೖΔ ্ॻ͖Ͱͳ ͍ w
σϑΥϧτ6*&EHF*OTFUT[FSP w /BWJHBUJPO#BS5BC#BSͳͲͷཁૉΛ࣋ͭίϯςφ7$ΛࣗલͰ࡞Γ ͍ͨ࣌ʹར༻
BEEJUJPOBM4BGF"SFB*OTFUT DMBTT4BGF"SFB*OTFUT7JFX$POUSPMMFS6*7JFX$POUSPMMFS\ !*#0VUMFUXFBLWBS@WJFX6*7JFX PWFSSJEFGVODWJFX%JE-PBE \ TVQFSWJFX%JE-PBE ^ PWFSSJEFGVODWJFX%JE-BZPVU4VCWJFXT
\ TVQFSWJFX%JE-BZPVU4VCWJFXT @WJFXGSBNF6*&EHF*OTFUT*OTFU3FDU WJFXCPVOET WJFXTBGF"SFB*OTFUT ^ ^
BEEJUJPOBM4BGF"SFB*OTFUT DMBTT4BGF"SFB*OTFUT7JFX$POUSPMMFS6*7JFX$POUSPMMFS\ !*#0VUMFUXFBLWBS@WJFX6*7JFX PWFSSJEFGVODWJFX%JE-PBE \ TVQFSWJFX%JE-PBE BEEJUJPOBM4BGF"SFB*OTFUT6*&EHF*OTFUT
UPQ MFGU CPUUPN SJHIU ^ PWFSSJEFGVODWJFX%JE-BZPVU4VCWJFXT \ TVQFSWJFX%JE-BZPVU4VCWJFXT @WJFXGSBNF6*&EHF*OTFUT*OTFU3FDU WJFXCPVOET WJFXTBGF"SFB*OTFUT ^ ^
WJFX4BGF"SFB*OTFUT%JE$IBOHF w WJFXͷTBGF"SFB*OTFUTͷ͕࣮ࡍ ʹೖΔλΠϛϯάͰݺΕΔ w WJFX8JMM"QQFBSͷͱ͖ʹ·ͩ TBGF"SFB*OTFUTͷೖ͍ͬͯͳ ͍༷ WJFX8JMM"QQFBS @
WJFX4BGF"SFB*OTFUT%JE$IBOHF VQEBUF7JFX$POTUSBJOUT WJFX8JMM-BZPVU4VCWJFXT
6*4DSPMM7JFX
DPOUFOU*OTFU"EKVTUNFOU#FIBWJPS w 6*7JFX$POUSPMMFSͷBVUPNBUJDBMMZ"EKVTUT4DSPMM7JFX*OTFUTʹΘΔϓϩ ύςΟ w TBGF"SFBΛߟྀͯ͠DPOUFOU*OTFUT͕ࣗಈతʹηοτ͞ΕΔ w BVUPNBUJD TDSPMMBCMF"YFT OFWFS
BMXBZTͷ̐ͭͷͷͲΕ͔ʹͳΔ w σϑΥϧτBVUPNBUJD
DPOUFOU*OTFU"EKVTUNFOU#FIBWJPS TDSPMM7JFXDPOUFOU*OTFU"EKVTUNFOU#FIBWJPSBMXBZT w6*4DSPMM7JFXͷதʹXJEUI͕ IFJHIU͕ͷ7JFX͕ೖ͍ͬͯΔ wDPOUFOU4J[Fதʹஔ͍͍ͯΔ7JFXͱಉ͡αΠζͱ͢Δ ͭ·ΓਨํͷΈεΫϩʔϧՄ w-BOETDBQFͰਨํҰ൪Լ·ͰεΫϩʔϧͨ࣌͠ʹϚʔδϯ͕Ͳ͏ͳΔ͔ΛݟͯΈΔ ඞ্ͣԼࠨӈͷTBGF"SFBͷϚʔδϯ͕ͭ͘
DPOUFOU*OTFU"EKVTUNFOU#FIBWJPS TDSPMM7JFXDPOUFOU*OTFU"EKVTUNFOU#FIBWJPSOFWFS ඞͣTBGF"SFBແࢹ͞ΕΔ w6*4DSPMM7JFXͷதʹXJEUI͕ IFJHIU͕ͷ7JFX͕ೖ͍ͬͯΔ wDPOUFOU4J[Fதʹஔ͍͍ͯΔ7JFXͱಉ͡αΠζͱ͢Δ ͭ·ΓਨํͷΈεΫϩʔϧՄ w-BOETDBQFͰਨํҰ൪Լ·ͰεΫϩʔϧͨ࣌͠ʹϚʔδϯ͕Ͳ͏ͳΔ͔ΛݟͯΈΔ
DPOUFOU*OTFU"EKVTUNFOU#FIBWJPS TDSPMM7JFXDPOUFOU*OTFU"EKVTUNFOU#FIBWJPSTDSPMMBCMF"YFT εΫϩʔϧՄೳͳྖҬ ͜͜Ͱਨํ ͷΈʹϚʔδϯ͕ͭ͘ w6*4DSPMM7JFXͷதʹXJEUI͕ IFJHIU͕ͷ7JFX͕ೖ͍ͬͯΔ wDPOUFOU4J[Fதʹஔ͍͍ͯΔ7JFXͱಉ͡αΠζͱ͢Δ ͭ·ΓਨํͷΈεΫϩʔϧՄ
w-BOETDBQFͰਨํҰ൪Լ·ͰεΫϩʔϧͨ࣌͠ʹϚʔδϯ͕Ͳ͏ͳΔ͔ΛݟͯΈΔ
DPOUFOU*OTFU"EKVTUNFOU#FIBWJPS TDSPMM7JFXDPOUFOU*OTFU"EKVTUNFOU#FIBWJPSBVUPNBUJD جຊతʹTDSPMMBCMF"YJTͱಉ͡ɻBVUPNBUJDBMMZ"EKVTUT4DSPMM7JFX*OTFUT͕USVFͳΒɺ εΫϩʔϧՄೳͰ͋Ζ͏ͱͳ͔Ζ͏ͱ/BWJHBUJPO$POUSPMMFSʹର͢Δ্෦Ϛʔδϯͭ͘ ޙํޓͷͨΊͷػೳ w6*4DSPMM7JFXͷதʹXJEUI͕ IFJHIU͕ͷ7JFX͕ೖ͍ͬͯΔ wDPOUFOU4J[Fதʹஔ͍͍ͯΔ7JFXͱಉ͡αΠζͱ͢Δ ͭ·ΓਨํͷΈεΫϩʔϧՄ
w-BOETDBQFͰਨํҰ൪Լ·ͰεΫϩʔϧͨ࣌͠ʹϚʔδϯ͕Ͳ͏ͳΔ͔ΛݟͯΈΔ
BEKVTUFE$POUFOU*OTFU w TBGF"SFBΛߟྀͯࣗ͠ಈͰηοτ͞ΕΔDPOUFOU*OTFUTͷ w DPOUFOU*OTFUTʹΛηοτ͢ΔͱTBGF"SFB DPOUFOU*OTFUTͷ͕ηο τ͞ΕΔ w DPOUFOU*OTFU"EKVTUNFOU#FIBWJPSʹΑͬͯɺ͜ͷ͕TBGF"SFBΛߟྀ͢ Δ͔ܾ·Δ
OFWFSͩͱTBGF"SFBߟྀ͞Εͳ͍
BEKVTUFE$POUFOU*OTFU PWFSSJEFGVODWJFX%JE"QQFBS @BOJNBUFE#PPM \ TVQFSWJFX%JE"QQFBS BOJNBUFE QSJOU TDSPMM7JFXBEKVTUFE$POUFOU*OTFU 6*&EHF*OTFUT
UPQ MFGU CPUUPN SJHIU ɹɹQSJOU TDSPMM7JFXDPOUFOU*OTFU 6*&EHF*OTFUT UPQ MFGU CPUUPN SJHIU TDSPMM7JFXDPOUFOU*OTFU6*&EHF*OTFUT UPQ MFGU CPUUPN SJHIU QSJOU TDSPMM7JFXBEKVTUFE$POUFOU*OTFU 6*&EHF*OTFUT UPQ MFGU CPUUPN SJHIU ^
TDSPMM7JFX%JE$IBOHF"EKVTUFE$POUFOU*OTFU @ w ઌఔͷBEKVTUFE$POUFOU*OTFUͷ͕ॻ͖ΘΔͱݺΕΔ
6*5BCMF7JFX
JOTFUT$POUFOU7JFXT5P4BGF"SFB w ηϧͷDPOUFOU7JFX͕TBGF"SFBΛߟྀͨ͠ྖҬʹදࣔ͞ΕΔ͔ܾΊΒΕΔ w σϑΥϧτUSVFͰDPOUFOU7JFXTBGF"SFBͷӨڹΛड͚Δ
JOTFUT$POUFOU7JFXT5P4BGF"SFB UBCMF7JFXJOTFUT$POUFOU7JFXT5P4BGF"SFBGBMTF UBCMF7JFXJOTFUT$POUFOU7JFXT5P4BGF"SFBUSVF
6*$PMMFDUJPO7JFX'MPX-BZPVU
TFDUJPO*OTFU3FGFSFODF w 6*$PMMFDUJPO7JFX'MPX-BZPVUͷTFDUJPO*OTFUTʹରͯ͠ɺTBGF"SFB -BZPVU.BSHJO $POUFOU*OTFUTͷͲΕΛߟྀͯ͠ઃఆ͢Δ͔ܾΊΒΕΔ w GSPN$POUFOU*OTFU GSPN4BGF"SFB GSPN-BZPVU.BSHJOTͷFOVNͰߏ
͞ΕΔ w σϑΥϧτGSPN$POUFOU*OTFUͰɺTFDUJPO*OTFUTDPOUFOU*OTFUTͷӨ ڹΛड͚Δ
TFDUJPO*OTFU3FGFSFODF JGMFUMBZPVUDPMMFDUJPO7JFXDPMMFDUJPO7JFX-BZPVUBT 6*$PMMFDUJPO7JFX'MPX-BZPVU\ MBZPVUTFDUJPO*OTFU3FGFSFODFʜ͜͜ͷΛม͑Δ ^ GSPN$POUFOU*OTFU GSPN-BZPVU.BSHJOT GSPN4BGF"SFB
·ͱΊ w ҙ֎ͱ4BGF"SFBབྷΈͷ"1*%J⒎ଟ͔ͬͨ w ݩʑෳࡶͩͬͨϚʔδϯབྷΈͷϨΠΞτ͕ߋʹෳࡶʹͳ͖͍ͬͯͯΔҹ w υΩϡϝϯτΛಡΜͰԿ͕ى͖Δͷ͔ΠϚΠν͔ͭΈʹ͘͘ɺ࣮ࡍʹಈ͔͠ ͯΈͳ͍ͱΘ͔Βͳ͔ͬͨ w ϓϩύςΟͷΛมߋ͢ΔͱԿ͕ى͖Δͷ͔
w ϥΠϑαΠΫϧͲͷλΠϛϯάͰಈ͍ͯɺ͕Ͳ͏มΘΔͷ͔
αϯϓϧʹͬͨΞϓϦ ͪ͜Βஔ͍͍ͯ·͢ IUUQTHJUIVCDPNLB[VIJSP4BGF"SFB4BNQMF
ࢀߟࢿྉ w 6*,JU"QQMF%FWFMPQFS w IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOVJLJU w #VJMEJOH"QQTGPSJ1IPOF9 w IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZGBMM w
%FTJHOJOHGPSJ1IPOF9 w IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZGBMM w 6QEBUJOH:PVS"QQGPSJ04 w IUUQTEFWFMPQFSBQQMFDPNWJEFPTQMBZXXED w 6*,JUJ04UP"1*%J⒎FSFODFT w IUUQDPEFXPSLTIPQOFUPCKDEJ⒎TELEJ⒎TJPT6*,JUIUNM