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
25
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
19
Xamarin.iOS によるプロダクトアプリ開発の実践
53ningen
0
13
この実装には問題がある!
53ningen
0
1.1k
15 minutes recipe of RxSwift
53ningen
0
22
RxSwiftを用いたアプリ開発の実践
53ningen
0
27
ITSを用いた旅行の構築
53ningen
0
14
Other Decks in Programming
See All in Programming
アルテニア コンサル/ITエンジニア向け 採用ピッチ資料
altenir
0
100
Go言語での実装を通して学ぶLLMファインチューニングの仕組み / fukuokago22-llm-peft
monochromegane
0
120
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
840
MCPで実現するAIエージェント駆動のNext.jsアプリデバッグ手法
nyatinte
7
1.1k
Kiroの仕様駆動開発から見えてきたAIコーディングとの正しい付き合い方
clshinji
1
210
時間軸から考えるTerraformを使う理由と留意点
fufuhu
15
4.7k
Android 16 × Jetpack Composeで縦書きテキストエディタを作ろう / Vertical Text Editor with Compose on Android 16
cc4966
1
190
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
420
テストカバレッジ100%を10年続けて得られた学びと品質
mottyzzz
2
580
Cache Me If You Can
ryunen344
2
670
Ruby Parser progress report 2025
yui_knk
1
430
請來的 AI Agent 同事們在寫程式時,怎麼用 pytest 去除各種幻想與盲點
keitheis
0
120
Featured
See All Featured
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
The Art of Programming - Codeland 2020
erikaheidi
56
13k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Site-Speed That Sticks
csswizardry
10
810
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
A designer walks into a library…
pauljervisheath
207
24k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
51
5.6k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
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ׂͳͲʣ Կ͔͠Βྑ͍ղܾࡦΛ͍࣋ͬͯΔํɺ͓Λ͓ฉ͔͍ͤͯͩ͘͞