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
CSC307 Lecture 04
javiergs
PRO
0
660
20260127_試行錯誤の結晶を1冊に。著者が解説 先輩データサイエンティストからの指南書 / author's_commentary_ds_instructions_guide
nash_efp
1
980
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
290
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
740
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1k
高速開発のためのコード整理術
sutetotanuki
1
400
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
270
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
470
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
QAフローを最適化し、品質水準を満たしながらリリースまでの期間を最短化する #RSGT2026
shibayu36
2
4.4k
AIによる開発の民主化を支える コンテキスト管理のこれまでとこれから
mulyu
3
340
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
0
32k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Documentation Writing (for coders)
carmenintech
77
5.3k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
YesSQL, Process and Tooling at Scale
rocio
174
15k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
180
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.9k
Thoughts on Productivity
jonyablonski
74
5k
Become a Pro
speakerdeck
PRO
31
5.8k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
WCS-LA-2024
lcolladotor
0
450
AI: The stuff that nobody shows you
jnunemaker
PRO
2
260
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ׂͳͲʣ Կ͔͠Βྑ͍ղܾࡦΛ͍࣋ͬͯΔํɺ͓Λ͓ฉ͔͍ͤͯͩ͘͞