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
広告実装の苦しみ
Search
ryokosuge
October 23, 2018
Programming
0
380
広告実装の苦しみ
ryokosuge
October 23, 2018
Tweet
Share
More Decks by ryokosuge
See All by ryokosuge
広告実装、こうすると幸せだよ
ryokosuge
6
1.4k
6年ほど育ったiOSプロジェクトを刷新した話 / Renewed iOS project that grew up for about 6 years
ryokosuge
2
730
アプリ開発とSDK開発の違い
ryokosuge
1
590
アプリを十数個作った僕が初めて書いたテストの話
ryokosuge
2
2.2k
広告SDKを駆使して 売り上げを5倍にした
ryokosuge
2
4k
早期発見プロジェクト
ryokosuge
0
51
Other Decks in Programming
See All in Programming
プロダクトの品質に コミットする / Commit to Product Quality
pekepek
2
770
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
270
Haze - Real time background blurring
chrisbanes
1
510
Recoilを剥がしている話
kirik
5
6.6k
StarlingMonkeyを触ってみた話 - 2024冬
syumai
3
270
CQRS+ES の力を使って効果を感じる / Feel the effects of using the power of CQRS+ES
seike460
PRO
0
120
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
1
120
menu基盤チームによるGoogle Cloudの活用事例~Application Integration, Cloud Tasks編~
yoshifumi_ishikura
0
110
これでLambdaが不要に?!Step FunctionsのJSONata対応について
iwatatomoya
2
3.6k
テストコードのガイドライン 〜作成から運用まで〜
riku929hr
1
190
103 Early Hints
sugi_0000
1
230
nekko cloudにおけるProxmox VE利用事例
irumaru
3
430
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
365
19k
Making the Leap to Tech Lead
cromwellryan
133
9k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Speed Design
sergeychernyshev
25
670
Why Our Code Smells
bkeepers
PRO
335
57k
Imperfection Machines: The Place of Print at Facebook
scottboms
266
13k
The Invisible Side of Design
smashingmag
298
50k
RailsConf 2023
tenderlove
29
940
The Art of Programming - Codeland 2020
erikaheidi
53
13k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Code Reviewing Like a Champion
maltzj
520
39k
A designer walks into a library…
pauljervisheath
204
24k
Transcript
ࠂ࣮ͷۤ͠Έ 2017/08/18 খੁ ྒ
ࣗݾհ • גࣜձࣾ Nagisa iOS ΤϯδχΞ • 19902݄12ੜ·Εʢ27ʣ • ࡞ͬͨΞϓϦ
• ϚϯΨZEROɺetc… • ਗ਼͞ΜͷհͰొஃ͖ͤͯ͞·ͨ͠
ΞδΣϯμ • ݱࡏͷϚϯΨZEROͷࠂʹ͍ͭͯ • ͕͜͜ਏ͍ࠂ࣮
ೖͬͯΔࠂSDKʢҰ෦ൈਮʣ
None
ZEROͷࠂࣄ • σΠϦʔͷ૯imp • 2,446ສimp • idൃߦʢશࠂഔମʣ • 53ݸ •
Firebase RemoteConfigͰimpͷৼΓ͚࣮ͯ͠ΔͷͰಉ ͡ʹෳͷid͕͋Δ
ࠂ࣮ͷۤ͠Έ…
1. ࠂSDKͷ༷͕όϥόϥ • ֤ࣾͷࠂSDKͰ༷͕όϥόϥͳͨΊ࣮͕ຖ0͔Βε λʔτ͢Δ • ͏ڻ͔ͳ͍ • ܦݧ͍Βͳ͍ •
SingletonͰάϩʔόϧʹΛอ࣋͠ଓ͚Δ༷͋Εɺͬ͜ ͪͰࢀরͬͨΓ • UIViewΛܧঝ͍ͯ͠ΔΫϥε͢Βੜͯ͘͠Εͳ͔ͬͨΓ
2. SDKͷιʔε͕ͱͯݹ͍ • Objective-CͰॻ͔Ε͍ͯΔ • Swiftͩͱbridge͠ͳ͚ΕͳΒͳ͍ • nullablenonnullͷએݴΛͯ͠ͳ͍͔ΒSwiftͰ͏ͱ Fourced Unwrappingঢ়ଶͰ͏ͷͰΫϥογϡͷԹচʹͳΔ
• ຊʹdelegateʹnilͰฦͯ͘͠ΔΫιSDK͋Δ • ίϯύΠϧ࣌ʹwarning͕ग़·ͬͯ͘ςϯγϣϯԼ͕Δ
3. iOSΛཧղ͍ͯ͠ͳ͍ • ڧࢀরɺऑࢀরɺࢀর॥ͳͲͷ͓࡞๏Λແࢹ ͍ͯ͠ΔSDKଟ • ΞϓϦଆͰରԠ͠ͳ͍ͱΫϥογϡʂ • ԿSDKΛ࡞Βͤͯ͘Εͱ͓ئ͍ͨ͜͠ͱ͔ •
ܧঝ͖͢protocolΛશͯແࢹͨ͠ಠࣗΫϥε
SDKͷ ͜͜·Ͱ
࣍ਓ(ձࣾ)ͱͯ͠Ͳ͏ͳΜͩ ͱ͍͏
4. ͓͍߹Θͤʹର͢Δ ฦࣄ͕͍ • ͍͍ͩͨॳΊ࣮ͯ͢ΔࠂදࣔͰ͖ͳ͍ • ඞཁͳʢidʣ͕ҧ͏ͱ͔ • ͚ͩͲݪҼ͕Θ͔Βͳ͍ •
Other Error͕ฦͬͯ͘Δ͠ • ࣭͢Δͱ3΄Ͳ͔͔Δ • ͏ࠂ࣮ϑΣʔζͰͳ͍͔Βࠩ͠ࠐΈʹͳΔ
5. iOSΛཧղͯ͠ͳ͍ ΤϯδχΞ͔Βͷࢦࣔ • SwiftͷOptionalΛཧղͯ͠ͳ͍ • OptionalΛWrapͨ͠ঢ়ଶͰͯ͠Δͷʹ ʮnil͡Όͳ͍Ͱ͔͢ʁʯͱདྷͨ࣌ΩϨͨ • ϥΠϑαΠΫϧΛཧղͯ͠ͳ͍
6. ʮιʔείʔυ͍ͩ͘͞ʯ • ΊͬͪΌ͕ͬͪٙ͜ΘΕ͍ͯ·͢ • υΩϡϝϯτ௨Γ࣮ͨ͠ͱ͑ͯ৴͡ͳ͍ • ࠷ۙͰࢲ͕ڧҾʹRemoteConfigͰग़͚͠Ͱ͖ΔΑ ͏ʹ࣮͍ͯͭ͠ͰΓࣺͯΒΕΔ४උΛ͠·ͨ͠ •
͜ͷൃݴΛͯ͘͠Δձ͍͍ࣾͩͨΤϯδχΞͱӦۀͷ ͕ѱ͍ʢݸਓతײʣor ࣾ͘͠ʹ࡞ͬͨਓ͕͍ͳ ͍
Ҏ্ʹͳΓ·͢ ͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ