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
23
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
10
この実装には問題がある!
53ningen
0
1.1k
15 minutes recipe of RxSwift
53ningen
0
18
RxSwiftを用いたアプリ開発の実践
53ningen
0
26
ITSを用いた旅行の構築
53ningen
0
10
Other Decks in Programming
See All in Programming
ヤプリ新卒SREの オンボーディング
masaki12
0
110
Click-free releases & the making of a CLI app
oheyadam
2
110
Outline View in SwiftUI
1024jp
1
300
AWS Lambdaから始まった Serverlessの「熱」とキャリアパス / It started with AWS Lambda Serverless “fever” and career path
seike460
PRO
0
180
讓數據說話:用 Python、Prometheus 和 Grafana 講故事
eddie
0
390
CSC509 Lecture 09
javiergs
PRO
0
140
弊社の「意識チョット低いアーキテクチャ」10選
texmeijin
5
24k
カスタムしながら理解するGraphQL Connection
yanagii
1
1.5k
RailsのPull requestsのレビューの時に私が考えていること
yahonda
5
2.8k
Streams APIとTCPフロー制御 / Web Streams API and TCP flow control
tasshi
2
340
OpenTelemetryでRailsのパフォーマンス分析を始めてみよう(KoR2024)
ymtdzzz
5
2k
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
4
1k
Featured
See All Featured
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.2k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
GraphQLとの向き合い方2022年版
quramy
43
13k
Why You Should Never Use an ORM
jnunemaker
PRO
54
9k
Gamification - CAS2011
davidbonilla
80
5k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
Thoughts on Productivity
jonyablonski
67
4.3k
What's new in Ruby 2.0
geeforr
343
31k
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ׂͳͲʣ Կ͔͠Βྑ͍ղܾࡦΛ͍࣋ͬͯΔํɺ͓Λ͓ฉ͔͍ͤͯͩ͘͞