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
27
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
21
Xamarin.iOS によるプロダクトアプリ開発の実践
53ningen
0
16
この実装には問題がある!
53ningen
0
1.1k
15 minutes recipe of RxSwift
53ningen
0
26
RxSwiftを用いたアプリ開発の実践
53ningen
0
31
ITSを用いた旅行の構築
53ningen
0
17
Other Decks in Programming
See All in Programming
開発者から情シスまで - 多様なユーザー層に届けるAPI提供戦略 / Postman API Night Okinawa 2026 Winter
tasshi
0
200
Data-Centric Kaggle
isax1015
2
770
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
110
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
570
今から始めるClaude Code超入門
448jp
8
8.8k
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
140
CSC307 Lecture 01
javiergs
PRO
0
690
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
620
Rust 製のコードエディタ “Zed” を使ってみた
nearme_tech
PRO
0
180
CSC307 Lecture 04
javiergs
PRO
0
660
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1k
ぼくの開発環境2026
yuzneri
0
230
Featured
See All Featured
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Side Projects
sachag
455
43k
Designing for Timeless Needs
cassininazir
0
130
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
180
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
117
110k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3k
HDC tutorial
michielstock
1
380
AI: The stuff that nobody shows you
jnunemaker
PRO
2
260
It's Worth the Effort
3n
188
29k
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ׂͳͲʣ Կ͔͠Βྑ͍ղܾࡦΛ͍࣋ͬͯΔํɺ͓Λ͓ฉ͔͍ͤͯͩ͘͞