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
Dependency Injection in Swift2
Search
gomi_ningen
February 09, 2016
Programming
0
17
Dependency Injection in Swift2
2016/02/09 - kyobashi.swift #1@リクルートマーケティングパートナーズ
https://kyobashi-swift.connpass.com/event/23712/
gomi_ningen
February 09, 2016
Tweet
Share
More Decks by gomi_ningen
See All by gomi_ningen
RxSwiftのObservableとは何か | iOSDC Japan 2017
53ningen
0
14
Xamarin.iOS によるプロダクトアプリ開発の実践
53ningen
0
9
この実装には問題がある!
53ningen
0
1.1k
15 minutes recipe of RxSwift
53ningen
0
11
RxSwiftを用いたアプリ開発の実践
53ningen
0
19
ITSを用いた旅行の構築
53ningen
0
10
Other Decks in Programming
See All in Programming
Tailwind CSSを本気でカスタマイズする方法
fsubal
14
5.5k
VS Code をプロダクトにどう取り込むか
onomax
1
640
Git Rebase
bkuhlmann
11
1.6k
0→1と1→10の狭間で Javaという技術選定を振り返る/Reflecting on the Decision to Choose Java Between Scaling from 0 to 1 and 1 to 10
jaguar_imo
2
400
MicrosoftのPlatform Engineeringガイドを読んで実際になにかやってみた
ymd65536
1
500
CREってこういうこと? 体験入社 - 提案資料 - / what-is-cre-trial-employment
shinden
1
500
Compose-View Interop in Practice (mDevCamp 2024)
stewemetal
0
160
AmperとFleetを使ったAndroidアプリ
yoppie
0
250
Ruby GitHub Packages
bkuhlmann
0
640
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
220
SIMD Parallel Programming with the Vector API
josepaumard
0
220
効率化に挑戦してみたらモバイル開発が少し快適になった話
ryunakayama
0
140
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
267
19k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
117
18k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.7k
How GitHub (no longer) Works
holman
305
140k
GitHub's CSS Performance
jonrohan
1025
450k
Atom: Resistance is Futile
akmur
260
25k
Why Our Code Smells
bkeepers
PRO
331
56k
Facilitating Awesome Meetings
lara
43
5.6k
Into the Great Unknown - MozCon
thekraken
14
1k
Making Projects Easy
brettharned
109
5.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
356
18k
Transcript
LZPCBTIJTXJGU !HPNJ@OJOHFO %FQFOEFODZ*OKFDUJPOJO4XJGU
ࣗݾհ ઃఆɿϥϏοτϋεࣾͰಇࣾ͘சੜ ɾ+BWBόοΫΤϯυγεςϜอकɾػೳ։ൃ ɾJ04ʢ4XJGUʣΞϓϦ৽ن։ൃ ɾ4DBMB +BWBͰదʹπʔϧΛ࡞ͬͨΓͳͲ ɾ͖ͳݴޠ+BWB 4DBMBʢ4DBMBॻ͖͍ͨʣ
ɾ͖ͳ࡞͝จ͏͗͞Ͱ͔͢ ɾJ04ʢ4XJGUʣ։ൃܦݧ͔͍ͬͯ͠ͳ͍ऑฌɾૉਓ 🐰͕࣌ؒͳ͍ͷͰࣗݾհׂѪ͠·͢🐰 !HPNJ@OJOHFO
ࠓ͢༰ தʙେن4XJGU։ൃʹ͓͚ΔґଘΦϒδΣΫτղܾͷํ๏Λߟ͑Δ ʢ👇͜ͷ༰ɺͰऴΘΔͷ͔ʁʣ %* %FQFOEFODZ*OKFDUJPO ͱʁ %*ͷجຊతͳɿ͍ͬͯΔਓ͕ଟ͔ͬͨΒলུ༧ఆ ίϯςφ
4XJOKFDU Λ༻͍ͨ%* 4XJOKFDUͷ%*ίϯςφΛ༻͍ͨಈత%*ͷ 4XJGUʹ͓͚Δ੩త%* $BLF1BUUFSO෩ͷ੩త%*Λ4XJGUͰͳΜͱ͔࣮ݱ͢Δ
%FQFOEFODZ*OKFDUJPOͱʁ
%FQFOEFODZ*OKFDUJPOͱʁ $MJFOU͕4FSWJDFΛར༻࣮ͯ͠͞ΕΔ߹Λఆ͠Α͏
⚡ 4FSWJDFͷ࣮͕૿͑ͨΓɺࠩ͠มΘΔ͜ͱ͕༧͞ΕΔ
$MJFOU͕4FSWJDFΛར༻࣮ͯ͠͞ΕΔ߹Λఆ͠Α͏
⚡$MJFOU͕ґଘ͢Δ4FSWJDFΛࠩ͠ସ͑ΔͨΊʹ $MJFOUʹมߋΛೖΕΔඞཁ͕͋Δ %FQFOEFODZ*OKFDUJPOͱʁ ࣮࣌ʹґଘΦϒδΣΫτΛબ
ґଘΦϒδΣΫτΛίϯετϥΫλ͔Βࠩ͠ࠐΉ %FQFOEFODZ*OKFDUJPOͱʁ
%FQFOEFODZ*OKFDUJPOͱʁ ґଘΦϒδΣΫτΛͳΜΒ͔ͷํ๏Λͬͯ֎෦͔Βࠩ͠ࠐΉܗʹ͢Δ ͜ͱΛ%FQFOEFODZ*OKFDUJPOͱ͍͏ ɾ ίϯετϥΫλ͔ΒͷೖʢίϯετϥΫλɾΠϯδΣΫγϣϯʣ ɾ ηολʔ͔ΒͷೖʢηολʔɾΠϯδΣΫγϣϯʣ ɾ ϑΟʔϧυͷೖʢϑΟʔϧυɾΠϯδΣΫγϣϯʣ
ɾ ϛοΫεΠϯʹΑΔೖʢϛοΫεΠϯɾΠϯδΣΫγϣϯʣ ͳͲ ͍ͬͯΔ͜ͱґଘΦϒδΣΫτΛ֎෦͔Βࠩ͠ࠐΜͰΔ͚ͩ
ෳࡶͳγεςϜͰͨ͘͞ΜͷґଘΦϒδΣΫτΛղܾ͢Δඞཁ͕͋Δ ઢͷͱʁ
ෳࡶͳγεςϜͰͨ͘͞ΜͷґଘΦϒδΣΫτΛղܾ͢Δඞཁ͕͋Δ ઢͷͱʁ
࣮ࡍʹى͜Γ͏Δέʔε • -PHJO7JFX$POUSPMMFSɺ6TFS4FSWJDFʹґଘ͢Δ • 6TFS4FSWJDFͷ࣮ɺ6TFS3FQPTJUPSZʹґଘ͢Δ • 6TFS3FQPTJUPSZͷ࣮ɺ"QQ"QJ$MJFOUʹґଘ͢Δ • "QQ"QJ$MJFOUͷ࣮ɺ)UUQ$MJFOUʹґଘ͢Δ
ϞδϡʔϧԽͱ%*ʹΑΓ͕Ͱ͖͕ͨɺΫϥΠΞϯτίʔυ͔ ΒαʔϏεͷΠϯελϯεΛऔಘ͢Δͷ͕͘͠ͳͬͯ͠·ͬͨ😇 ઢͷͱʁ
ίϯςφʢ4XJOKFDUʣΛ༻͍ͨ%*
ίϯςφΛ༻͍ͨ%* %*ίϯςφͱʁ • ͋Β͔͡ΊɺίϯςφʹґଘΦϒδΣΫτΛొ͓ͯ͘͠ • ར༻͍ͨ͠ͱ͖ʹίϯςφ͔ΒऔΓग़͢ ຊʹ৭ʑ͗མͱͯ͠·ͱΊΔͱ͜Μͳ͔Μ͡ ൃද͔࣌ؒ̑͠ͳ͍͠Ͷʢ͑ʣ
ίϯςφΛ༻͍ͨ%* ҎԼͷΑ͏ͳؔͷΦϒδΣΫτ͕͋Δͱ͢Δ
"#$ͷΠϯελϯεΛಘΔʹɺ"# "ͷΠϯελϯε͕ඞཁͰ͋Δ
ίϯςφΛ༻͍ͨ%* 4XJOKFDUͷ$POUBJOFSΛ༻͍ͨґଘΦϒδΣΫτղܾ
ɾొࡁΈΦϒδΣΫτͷΠϯελϯεऔಘͰ͖Δ ɾͦ͏Ͱͳ͍ͷɺOJM͕ฦͬͯ͘Δ
ίϯςφΛ༻͍ͨ%* 1MBZHSPVOEͰ࣮ࡍʹࢼͤΔͷΛ(JU)VCʹ͍͋͛ͯ·͢ ໘ന͍ͳͱࢥͬͨਓɺDMPOFͯ͠ಈ͔ͯ͠Έͯཉ͍͠Ͱ͢ ``` git clone
[email protected]
:53ningen/SwiftDISample.git SwinjectPlayground
```
4XJGUʹ͓͚Δ੩త%*
ࢀߟจݙ ͔͜͜Βͷ༰ҎԼͷهࣄΛࢀߟʹͯ͠ॻ͔Ε͍ͯ·͢ IUUQBDRVJIJSFNFEFQFOEFODZJOKFDUJPOXJUIUIF DBLFQBUUFSOJOTXJGU େมΘ͔Γ͍͢༰Ͱɺ͔͍ͭͷͰɺڵຯΛ࣋ͬͨਓϦϯΫઌΛ ͝ཡʹͳΔͱྑ͍ͱࢥ͍·͢
αϯϓϧίʔυ ·ͨҎԼʹ1MBZHSPVOEͰಈ͘αϯϓϧΛαϯϓϧίʔυΛॻ͍ͯ ͋Γ·͢ɻ IUUQTHJTUHJUIVCDPNOJOHFOCBCEDBG ಈ͔͠ͳ͕ΒΛฉ͍͍͚ͯͨͩΔͱཧղ͕͍͢͠ͱࢥ͍·͢ɻ ΞΫηεम০ࢠΛ͚ɺϑΝΠϧʹׂ͍ͯ͠Δ9DPEFϓϩδΣΫτ ൛͋Γ·͢ͷͰDMPOFͯ͠ಈ͔ͯ͠Έ͍ͯͩ͘͞
IUUQTHJUIVCDPNOJOHFO4XJGU$BLF
લఏͱͳΔঢ়گ HFU" Λ࣋ͭ"ͱHFU"# Λ࣋ͭ"#͕ఆٛͯ͋͠Δ
4XJGUͰͷ੩త%*ͷํ๏ྫ ͦΕͧΕͷϞδϡʔϧʹର͢Δ$PNQPOFOUΛఆٛ
4XJGUͰͷ੩త%*ͷํ๏ྫ $PNQPOFOUΛ߹͢Δ͜ͱʹΑΓઢ͕ྃ͢Δ
·ͱΊ
%FQFOEFODZ*OKFDUJPOJO4XJGU 4XJOKFDUΛ༻͍ͨಈత%* • ಈత%*ɺΑ͏͑ͦ͘͏ͳίϯςφ͕ੜ·Ε͖ͯͨ • (PPHMF(VJDFͷΑ͏ͳͷͱɺ·ͩ΄Ͳԕ͍ɺ࣮ݱͦ͠͏ • ݱ࣮తʹߟ͑Δͱͨ͠Βͪ͜ΒΛ࠾༻͢Δ͜ͱʹͳΔ͔ʁ
$BLF1BUUFSOͬΆ͍ͷΛ༻͍ͨ੩త%* • QSPUPDPMFYUFOTJPOʹΑΓ੩త%*͕ߦ͑Δ • ͔͠͠ɺղͳ$BLF1BUUFSO͕༨ܭෳࡶʹͳͬͨͷ • ༨ܭͳϥΠϒϥϦʹґଘ͠ͳ͍ɺ࣮Ϋϥε͕࿐ग़͠ͳ͍ྑ͍
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ ࠙ձͰ͜Μͳ͓͕͍ͨ͠ • 7JFX$POUSPMMFSΛΧΦεʹ͠ͳ͍ͨΊͷऔΓΈ • ϓϨθϯςʔγϣϯͷঢ়ଶཧ •
ΑΓ҆શͳΫϥΠΞϯτίʔυ͕ॻ͚ΔΑ͏ͳϞσϧઃܭ • ϏϧυվળͷͨΊͷऔΓΈʢ$BSUIBHFUBSHFUׂͳͲʣ Կ͔͠Βྑ͍ղܾࡦΛ͍࣋ͬͯΔํɺ͓Λ͓ฉ͔͍ͤͯͩ͘͞