Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
身近な技術的課題から始めるOSSプロジェクト
Search
kazuhiro4949
November 12, 2019
Technology
370
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
身近な技術的課題から始めるOSSプロジェクト
https://yahoo-nagoya.connpass.com/event/151788/
kazuhiro4949
November 12, 2019
More Decks by kazuhiro4949
See All by kazuhiro4949
SwiftUIをUIKitのライフサイクルで拡張するTips
kazuhiro4949
4
2.9k
iOS15でプッシュ通知のテストが大変だった話
kazuhiro4949
0
670
Source Editor Extensionと SwiftSyntaxでコード自動生成ツール を作る
kazuhiro4949
2
5k
iOS 12サポート終了で使えるAPIおさらい
kazuhiro4949
2
410
Source Editor ExtensionとSwiftSyntaxでコード自動生成
kazuhiro4949
0
140
大企業の最前線でコードを書き続けるためにやってきたこと
kazuhiro4949
27
19k
10分で振り返るここ数年のWWDCの技術トレンド
kazuhiro4949
0
360
コードを書きながら同時に設計していくためのiOSアプリ開発方針
kazuhiro4949
6
2.7k
WWDC 2019 AR・ML・その他Apple プラットフォームのアップデート
kazuhiro4949
0
300
Other Decks in Technology
See All in Technology
メルペイ 会計システム概要と歴史
mewuto
0
170
AIに攻撃される前に、AIに攻撃させる
tsuchikazu
0
150
プロダクト価値を、 チームが使える判断軸に変える
vivion
0
130
全社共通データ基盤をつくる。ソニーのDatabricks活用とデータガバナンス設計の裏側
sony
0
430
SREでアラート疲れを 解決しよう!
kairim0
1
200
組み立てて楽しむ AWS Blocks 入門
kmiya84377
0
220
[2026 Oracle Technical Deep Dive] VMwareワークロードのOCI移行実践ガイド - OCVSでの継続利用からOCIコンピュートへの移行まで (2026年9月17日開催)
oracle4engineer
PRO
0
130
並行性の問題を防げ!実践トランザクション入門
occhi
0
280
Snapshot Testing in Practice: Predictable and Reliable SwiftUI Views
fespinoza
0
130
3つのアプローチで目指す チームを強くするAI駆動開発
thkt
0
120
AI時代だからこそ推したい!Gitコマンド再入門
munakata
0
150
2026-10-01_MagicPod_QAハーネスエンジニアリングとQA組織の未来像
ynisqa1988
1
540
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
4
520
How to build a perfect <img>
jonoalderson
1
6.1k
Docker and Python
trallard
47
4.2k
Tell your own story through comics
letsgokoyo
1
1.1k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
540
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
A better future with KSS
kneath
240
18k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
970
Producing Creativity
orderedlist
PRO
348
41k
The Language of Interfaces
destraynor
162
27k
My Coaching Mixtape
mlcsv
0
340
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