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
身近な技術的課題から始めるOSSプロジェクト
Search
kazuhiro4949
November 12, 2019
Technology
0
280
身近な技術的課題から始めるOSSプロジェクト
https://yahoo-nagoya.connpass.com/event/151788/
kazuhiro4949
November 12, 2019
Tweet
Share
More Decks by kazuhiro4949
See All by kazuhiro4949
SwiftUIをUIKitのライフサイクルで拡張するTips
kazuhiro4949
4
2.6k
iOS15でプッシュ通知のテストが大変だった話
kazuhiro4949
0
570
Source Editor Extensionと SwiftSyntaxでコード自動生成ツール を作る
kazuhiro4949
2
3.7k
iOS 12サポート終了で使えるAPIおさらい
kazuhiro4949
2
330
Source Editor ExtensionとSwiftSyntaxでコード自動生成
kazuhiro4949
0
76
大企業の最前線でコードを書き続けるためにやってきたこと
kazuhiro4949
28
19k
10分で振り返るここ数年のWWDCの技術トレンド
kazuhiro4949
0
280
コードを書きながら同時に設計していくためのiOSアプリ開発方針
kazuhiro4949
6
2.6k
WWDC 2019 AR・ML・その他Apple プラットフォームのアップデート
kazuhiro4949
0
220
Other Decks in Technology
See All in Technology
データエンジニアリング領域におけるDuckDBのユースケース
chanyou0311
9
2.2k
アジャイルな開発チームでテスト戦略の話は誰がする? / Who Talks About Test Strategy?
ak1210
1
550
Potential EM 制度を始めた理由、そして2年後にやめた理由 - EMConf JP 2025
hoyo
2
2.6k
組織におけるCCoEの役割とAWS活用事例
nrinetcom
PRO
4
130
PHPで印刷所に入稿できる名札データを作る / Generating Print-Ready Name Tag Data with PHP
tomzoh
0
180
OPENLOGI Company Profile
hr01
0
60k
【内製開発Summit 2025】イオンスマートテクノロジーの内製化組織の作り方/In-house-development-summit-AST
aeonpeople
2
610
Perlの生きのこり - エンジニアがこの先生きのこるためのカンファレンス2025
kfly8
2
270
ABWG2024採択者が語るエンジニアとしての自分自身の見つけ方〜発信して、つながって、世界を広げていく〜
maimyyym
1
140
2/18 Making Security Scale: メルカリが考えるセキュリティ戦略 - Coincheck x LayerX x Mercari
jsonf
0
190
(機械学習システムでも) SLO から始める信頼性構築 - ゆる SRE#9 2025/02/21
daigo0927
0
260
AI Agent時代なのでAWSのLLMs.txtが欲しい!
watany
2
220
Featured
See All Featured
Building Adaptive Systems
keathley
40
2.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
The Cost Of JavaScript in 2023
addyosmani
47
7.4k
The World Runs on Bad Software
bkeepers
PRO
67
11k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
Facilitating Awesome Meetings
lara
52
6.2k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
10
510
It's Worth the Effort
3n
184
28k
Rails Girls Zürich Keynote
gr2m
94
13k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
Designing Experiences People Love
moore
140
23k
Transcript
ۙͳٕज़త՝͔Β ࢝ΊΔ044ϓϩδΣΫτ ,B[VIJSP)BZBTIJ !LB[VIJSP Ϡϑʔ໊ݹ5FDI.FFUVQ
ࣗݾհ w ໊લ w ྛ߂ !LB[VIJSP w ࣄ w
:BIPP+"1"/J04ΞϓϦ w J04ΞϓϦࠇଳ
ࣾ֎͚ͷτʔΫ
Ϡϑʔ͕044ͷจԽΛੵۃతʹ औΓೖΕ͍ͯΔΠϝʔδͬͯ͋Γ·͔͢ʁ
IUUQTHJUIVCDPNZBIPPKBQBO
J04ؔ࿈Ͱ͍͏ͱ IUUQTHJUIVCDPNZBIPPKBQBO
ʑͷۀʹ͓͍ͯ w ͍ͬͯΔίʔυʹϥΠηϯεΛ͚ͭͯ ެ։ϝϯςφϯεɺ͍ͬͯ͏ͷΛҙ֎ͱ ͍ͬͯΔ w ྫ͑ΞϓϦͷЌςετπʔϧͳͲ IUUQTXXXTMJEFTIBSFOFUUFDICMPHZBIPPTT
Ϡϑʔ044จԽʹରͯ͠ ͔ͳΓ༰
ྫ͑ w ʑͷ։ൃࣗମ(JUIVC্ͰϓϧϦΫΤετϕʔεͰߦ͏ w ੈͷதʹ͋Δ044͔ͳΓ͍ͬͯΔ w ༗໊ͳ044ʹੵۃతʹίϛοτ͍ͯ͠Δ w ࣗͨͪͰ044Λ͔Β࡞ͬͯൃ৴͍ͯ͠Δ
ྫ͑ w ʑͷ։ൃࣗମ(JUIVC্ͰϓϧϦΫΤετϕʔεͰߦ͏ w ੈͷதʹ͋Δ044͔ͳΓ͍ͬͯΔ w ༗໊ͳ044ʹੵۃతʹίϛοτ͍ͯ͠Δ w ࣗͨͪͰ044Λ͔Β࡞ͬͯൃ৴͍ͯ͠Δ
ʑͷαʔϏε։ൃ͔ΒͲ͏ 044Λ࡞͍ͬͯΔ͔
ࣗͷΓํ w ࣄͰൃݟٕͨ͠ज़త՝͔Β044ϓϩδΣΫτΛ࢝ΊΔ w ʑͷ࣮ͷதͰ࣮ࡍʹ໘ͨ͠Ұൠతʹ௨͡Δ՝Λݟ͚ͭΔ
ࣗͷΓํ w ձࣾͷϓϩμΫτʹΘΕ͍ͯΔ ίʔυͰੈͷதͷٕज़త՝Λղܾ ͢Δͷɺ044ͱͯ͠Γग़͢ طଘϓϩμΫτ ίʔυ 044ͱͯ͠Γग़͠
ࣗͷΓํ w ձࣾͷϓϩμΫτ͔Β͘ੈͷதʹ ௨͡Δٕज़త՝Λൃݟ͠ɺݸਓͰ 044ͱͯ͠࡞ͬͯϑΟʔυόοΫ͢ Δ طଘϓϩμΫτ ݸਓͰ࡞ͬͨίʔυ 044ͱͯ͠ಋೖ
ࣗͷΓํ w ࣾษڧձͷωλͱͯ͠࡞ͬͯɺ έ͕ྑ͔ͬͨΒ044ͱͯ͠ެ։ ίʔυ 044ͱͯ͠ެ։ IUUQTXXXJSBTVUPZBDPN͔Β
ࣗͷΓํ w 044ͱͯ͠։ൃͨ͠ΒܦҢͳͲؚΊ ͯษڧձͳͲͰࣄͱͯ͠ൃ৴
͍͔ͭ͘ͷࣄྫΛ௨ͯ͡ɺ۩ମతʹ ۀΛͲ͏044։ൃͭͳ͖͔͛ͯͨ ͝հͰ͖Εͱࢥ͍·͢
˞ࣄྫͯ͢J04ΞϓϦ ։ൃͷʹͳΓ·͢
հ͢ΔϓϩμΫτ 4XJGU9.-1BSTFSελϯμʔυϥΠϒϥϦ͕͍ʹ͍͘ 1BHJOH,JUཁ݅ʹ߹͏ϥΠϒϥϦ͕ͳ͔ͬͨ 4XJGU6*$BUBMPH͚ࣾͷڭҭ༻ࢿྉΛެ։
4XJGUZ9.-1BSTFS
4XJGUZ9.-1BSTFS w J04Ͱ9.-Λύʔε͢Δ߹ɺ9.-1BSTFSͱ͍͏Έࠐ ΈͷΫϥεΛ͏ w 9.-1BSTFS4"9ܕͷύϑΥʔϚϯε͕ྑ͍ύʔαʔ
IUUQTUFDICMPHZBIPPDPKQBEWFOUDBMFOEBSTXJGU@PTT ୯७ͳ9.-Ͱ͜ͷ͘Β͍ͷίʔυྔʹͳΔ ࣌4XJGU
IUUQTUFDICMPHZBIPPDPKQBEWFOUDBMFOEBSTXJGU@PTT ͜ͷ9.-Λύʔε͢ΔͨΊʹ
IUUQTUFDICMPHZBIPPDPKQBEWFOUDBMFOEBSTXJGU@PTT w ύʔε͢ΔͨΊͷΫϥεΛ࡞Δ w ୳ࡧΠϕϯτΛϝιουͱ࣮ͯ͠
՝ w ࣌ͷ:BIPPγϣοϐϯά9.-͕ ଟ༻͞Ε͍ͯͨ w ύʔεͷͨΊͷେͳίʔυྔΛݮΒ͍ͨ͠ w 4XJGUݴޠͰඞཁेͳϥΠϒϥϦ͕ͳ͔ͬͨ IUUQTUFDICMPHZBIPPDPKQBEWFOUDBMFOEBSTXJGU@PTTΑΓ IUUQTDPNNFSDFBQQZBIPPDPKQTIPQQJOHBQQMJ
IUUQTHJUIVCDPNZBIPPKBQBO4XJGUZ9.-1BSTFS
4XJGUZ9.-1BSTFS w %0.ܕͷύʔαʔ w ੲ͔Β͋ΔϥΠϒϥϦ͕औΓࠐΊ͍ͯͳ͍ɺ৽͍͠ݴޠػೳΛੵۃతʹ ࠾༻ w ܰྔͰσόοά͕͍͢͠ͱ͍ͬͨɺ࣮Ͱͷ͍উखʹൺॏΛஔ͘
IUUQTUFDICMPHZBIPPDPKQBEWFOUDBMFOEBSTXJGU@PTT ίʔυྔ͕͜ͷ͘Β͍ʹݮΒͤΔ ࣌4XJGU
IUUQTUFDICMPHZBIPPDPKQBEWFOUDBMFOEBSTXJGU@PTT w ͖ͬ͞ͱಉ͡ύʔεॲཧ෦ ͜ΜͳΜ
044ͱͯ͠ެ։ w ಛఆͷΞϓϦ༻͕ͩͬͨҙ֎ͱ͍উख͕ྑ͔ͬͨͨΊɺ ͠Β͘ӡ༻ͨ͠ޙʹ044ͱͯ͠ެ։ w ݴޠͷόʔδϣϯΞοϓରԠNBD04ରԠͳͲ໘ͳϝϯ ςφϯεϓϧϦΫͰΒ͑Δ
1BHJOH,JU
͋ΔϓϩμΫτͷ6* ΛطଘϥΠϒϥϦͰ։ൃ w 4NBSU/FXTNFSDBSJͳͲͰ࠾༻͞Ε ͍ͯΔɺϖʔδϯάͱԣεΫϩʔϧϝ χϡʔͷΈ߹Θͤ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱҧ͍·͢
ͦͷϥΠϒϥϦͰɺλΠτϧจࣈྻͱը໘ͷྻΛ ͢ͱɺܾ·ͬͨσβΠϯͷϖʔδϯά6*͕࡞ΒΕΔ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱҧ͍·͢ let ary = [ { title:
“Page1", view: UIViewController() }, { title: “Page2", view: UIViewController() }, { title: “Page3”, view: UIViewController() }, ]
ͦͷϥΠϒϥϦͰɺλΠτϧจࣈྻͱը໘ͷྻΛ ͢ͱɺܾ·ͬͨσβΠϯͷϖʔδϯά6*͕࡞ΒΕΔ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱҧ͍·͢ let ary = [ { title:
“Page1", view: UIViewController() }, { title: “Page2", view: UIViewController() }, { title: “Page3”, view: UIViewController() }, ] ϝχϡʔ͕͋Δ
ͦͷϥΠϒϥϦͰɺλΠτϧจࣈྻͱը໘ͷྻΛ ͢ͱɺܾ·ͬͨσβΠϯͷϖʔδϯά6*͕࡞ΒΕΔ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱҧ͍·͢ let ary = [ { title:
“Page1", view: UIViewController() }, { title: “Page2", view: UIViewController() }, { title: “Page3”, view: UIViewController() }, ] ϖʔδϯάՄೳͳ ίϯςϯπྖҬ͕͋Δ
ελΠϧύϥϝʔλͰ͢͜ͱ͕Մೳ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱҧ͍·͢
ॳظϓϩμΫτͷ γϯϓϧͳཁ݅ຬ͍ͨͯͨ͠
͔͠͠ཁ͕݅গͣͭ͠ෳࡶԽ͍͖ͯ͠ɺ ࠾༻ͨ͠ϥΠϒϥϦͰରԠ͖͠Εͳ͘ͳΔ
ϓϩμΫτͷʹͬͯ6*͕ࡉԽ͞Εɺ ͜͏͍ͬͨ͜ͱΛٻΊΒΕΔΑ͏ʹͳ͖ͬͯͨ w ྫ͑ w ͋Δը໘Ͱϝχϡʔͷಛఆͷཁૉ ͷ্ʹαϒλΠτϧΛ͚͍ͨ w ͋Δը໘Ͱίϯςϯπͱϝχϡʔ ͷྖҬؒϘλϯΛฒ͍ͨ
˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱҧ͍·͢
ϓϩμΫτͷʹͬͯ6*͕ࡉԽ͞Εɺ ͜͏͍ͬͨ͜ͱΛٻΊΒΕΔΑ͏ʹͳ͖ͬͯͨ ˞Πϝʔδ ࣮ࡍʹؔΘͬͨϓϩμΫτͱҧ͍·͢ w ྫ͑ w ͋Δը໘Ͱϝχϡʔͷಛఆͷཁૉ ͷ্ʹαϒλΠτϧΛ͚͍ͨ w
͋Δը໘Ͱίϯςϯπͱϝχϡʔ ͷྖҬؒϘλϯΛฒ͍ͨ
6*ϥΠϒϥϦʹ ͋Γ͕ͪͳ՝ w σβΠϯʹॊೈੑ͕ͳ͘ɺ6*ͷ࠷దԽ͕Ͱ͖ͳ͍ w ͜ͷ࠶ར༻ੑʹؔ͢Δ՝Α͋͘ΔҰൠతͳͷͱߟ͑Δ w ղܾ͢ΕੈͷதతͳՁ͕ߴ͍ͨΊɺझຯͰ͜ͷ՝ʹऔΓΉ
IUUQTHJUIVCDPNLB[VIJSP1BHJOH,JU
1BHJOH,JU w ༷ʑͳελΠϧɾϨΠ Ξτͷϖʔδϯά6* Λ࣮ݱՄೳ w ۀϨϕϧͷෳࡶͳ6* ʹద༻Ͱ͖Δ IUUQTHJUIVCDPNLB[VIJSP1BHJOH,JU
044ͱͯ͠ެ։ w ݸਓͷϦϙδτϦͰެ։ w 044ʹͨ͋͠ͱɺۀͰ։ൃ͍ͯ͠ΔϓϩμΫτ࠾༻ w ඞཁͳػೳͷՃͳͲۀͱͯ͠ϝϯςφϯε͍ͯ͠Δ
w ެ։ޙʹ։ൃܦҢΛษڧձ Ͱ ࣄͱͯ͠ ൃද IUUQTTQFBLFSEFDLDPNLB[VIJSPVJSBJCVSBSJIBEPVTIFKJTBSFSVCFLJLB
4XJGU6*$BUBMPH
4XJGU6* w 88%$Ͱൃද͞Εͨ"QQMFϓ ϥοτϑΥʔϜ͚৽6*ϥΠϒϥϦ w 3FBDUKTΛॻ͘Α͏ʹΞϓϦ։ൃ͕Ͱ ͖Δ IUUQTEFWFMPQFSBQQMFDPNKQYDPEFTXJGUVJΑΓ
4XJGU6* w ൃදޙɺૣϲ݄ʹճࣾษڧձΛ։͘ w ڵຯΛ࣋ͬͯΒ͑Δ͕ɺखΛग़͢·Ͱͷෑډ͕ߴ͍͜ ͱΛײ͡Δ
4XJGU6*ͷ՝ w ެࣜυΩϡϝϯτʹेʹ࣮ํ๏͕ॻ͔Ε͍ͯͳ͍ w ެࣜαϯϓϧͷίʔυ͕͔ͳΓෳࡶͰɺॳ৺ऀʹෑډ͕ߴ͍
IUUQTHJUIVCDPNLB[VIJSP4XJGU6*$BUBMPH
4XJGU6*$BUBMPH w ࣾͷJ04ΞϓϦΤϯδχΞ͚ڭҭࢿྉͱͯ͠։ൃ w ࣮ߦ͢Δ͚ͩͰ֤6*ίϯϙʔωϯτͷදࣔಈ͖ΛࢼͤΔ w ࠷খݶͷ࣮ͱ࣮ࡍͷ࣮ߦ݁ՌΛཏ
044ͱͯ͠ެ։ w ࣗࣾʹؔΘΒͣʹཱͭࢿྉͱͳΔͨΊɺ ࣾษڧձͰར༻ޙʹެ։ w Ϡϑʔ͕͍ͬͯΔࣾ֎͚ษڧձͷωλ ͷҰͭͱͯ͠׆༻͠ɺධΛΒ͏ IUUQTZKNFFUVQDPOOQBTTDPNFWFOU
ࣗͷΓํ࠶ܝ ձࣾͷϓϩμΫτʹΘΕ͍ͯΔίʔυͰੈͷதͷٕज़త ՝Λղܾ͢Δͷɺ044ͱͯ͠Γग़͢ ձࣾͷϓϩμΫτ͔Β͘ੈͷதʹ௨͡Δٕज़త՝Λൃ ݟ͠ɺݸਓͰ044ͱͯ͠࡞ͬͯϑΟʔυόοΫ͢Δ ࣾษڧձͷωλͱͯ͠࡞ͬͯɺධͩͬͨΒެ։ 044ͱͯ͠։ൃͨ͠ΒܦҢͳͲؚΊͯษڧձͳͲͰൃ৴
ࣄͷٕज़త՝͔Β044Խ͢Δ ϝϦοτ w ࢝Ί͔ΒΓग़͢͜ͱΛҙࣝͯ͠Ϋϥεઃܭ͢Δͱɺػೳ ͕໌֬Խ͞Εͯૄ݁߹ͳίʔυ͕ॻ͚Δ w ීஈ͔Β൚༻తͳ՝͕ͳ͍͔ҙࣝ͢Δ͜ͱͰɺݸਓతʹ ϥΠϒϥϦΛ࡞Δ͖͔͚͕ͬಘΒΕΔ w ୀ৬ͨ͠ݩಉ྅͔ΒϓϧϦΫ͕Β͑Δ
w ϓϩμΫτͷϥΠηϯεཝʹࣗͷ໊લ͕ࡌΔ
Έͳ͞ΜࣄͰݟ͚ͭͨ ٕज़త՝͔Β044ϓϩδΣΫτ Λ࢝ΊͯΈ͍ͯͩ͘͞
ࢀߟࢿྉ w ۙͳٕज़త՝͔Β࢝ΊΔ044ϓϩδΣΫτ w IUUQTUFDICMPHZBIPPDPKQBEWFOUDBMFOEBS TXJGU@PTT w ϠϑʔͷΞϓϦʹ͓͚ΔձࣾશମͰͷۀޮԽʹ͍ͭͯ EFWTVNJ$ w
IUUQTXXXTMJEFTIBSFOFUUFDICMPHZBIPPTT w ZBIPPKBQBO(JUIVC w IUUQTHJUIVCDPNZBIPPKBQBO