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
iOS開発に慣れてきた時にやりがちあるある
Search
andfactory, inc.
October 25, 2018
Programming
0
210
iOS開発に慣れてきた時にやりがちあるある
10.25 and factory BeerBash#4 での@domonrさんのスライドです。
andfactory, inc.
October 25, 2018
Tweet
Share
More Decks by andfactory, inc.
See All by andfactory, inc.
UIViewのレイアウト更新メソッドを整理する
andfactory
0
440
Android開発初心者にありがちなこと
andfactory
0
250
Codableあるある
andfactory
0
210
Androidエンジニアあるある
andfactory
0
250
Collectionの罠
andfactory
0
200
Cocoa Touch Frameworkあるある
andfactory
0
350
社内勉強会資料 - スクラム・アジャイル開発
andfactory
0
620
Other Decks in Programming
See All in Programming
monorepo の Go テストをはやくした〜い!~最小の依存解決への道のり~ / faster-testing-of-monorepos
convto
2
500
そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日
mugitti9
2
3.4k
スマホから Youtube Shortsを見られないようにする
lemolatoon
27
32k
あなたとKaigi on Rails / Kaigi on Rails + You
shimoju
0
160
Pull-Requestの内容を1クリックで動作確認可能にするワークフロー
natmark
2
510
Leading Effective Engineering Teams in the AI Era
addyosmani
6
440
iOSエンジニア向けの英語学習アプリを作る!
yukawashouhei
0
200
iOSエンジニア向けの英語学習アプリを作る!
yukawashouhei
0
190
CSC305 Lecture 06
javiergs
PRO
0
240
AI Agent 時代的開發者生存指南
eddie
2
1.4k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
370
「ちょっと古いから」って避けてた技術書、今だからこそ読もう
mottyzzz
11
6.8k
Featured
See All Featured
Facilitating Awesome Meetings
lara
56
6.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
620
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Writing Fast Ruby
sferik
629
62k
Music & Morning Musume
bryan
46
6.8k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
Become a Pro
speakerdeck
PRO
29
5.5k
Faster Mobile Websites
deanohume
310
31k
Into the Great Unknown - MozCon
thekraken
40
2.1k
Transcript
J04։ൃʹ׳Ε͖ͯͨ࣌ʹ Γ͕ͪ͋Δ͋Δ EPNPOSSEBOEGBDUPSZ*OD एखΤϯδχΞ͋Δ͋Δ-5ʙεϚϗΞϓϦ։ൃฤʙ 1
"CPVUNF 2
ͲΜ wॴଐˠBOEGBDUPSZ*OD wHJUIVCˠSE wRJJUBˠSE w4XJGUྺˠ͙Β͍ 3
'JSTU͋Δ͋Δ 4
$FMMͷ࠶ར༻Ͱ7JFXΛෳճ"EE͕ͪ͠ 5 ※ॾࣄͰࠇృΓ
6
func setup(adInfoList: [AdInfo]) { for adInfo in adInfoList { switch
adInfo.asp { case .imobile: // ॳظԽॲཧ case .amoad: // ॳظԽॲཧ default: break } } } 7 "E.BOBHFSͷ4FUVQͰશࠂͷॳظԽΛߦͬͯɺ
func showAd(adInfo: AdInfo) { switch adInfo.asp { case .imobile: //
ࠂදࣔॲཧ case .amoad: // ࠂදࣔॲཧ default: break } } 8 ࢦఆͷࠂͷදࣔॲཧ͚ͩΛߦ͍͕ͬͯͨɺ
extension FullScreenAdManager:ImobileManagerDelegate { func imobile(didFinishLoadingAd adView: UIView) { self.adView.addSubview(adView) }
} 9 TFUVQͷޙʹࣗಈతʹ%FMFHBUFϝιου͕ݺΕͯେมͳ͜ͱʹ
$FMMͷ࠶ར༻Ͱ7JFXΛෳճ"EE͕ͪ͠ 10 ※ॾࣄͰࠇృΓ
ͳΜ͔ಈ͖͓͔͍͠ͳͱࢥͬͨΒ͙͢ʹ7JFX)JFSBSDIZΛ֬ೝ͠Α͏ 11
4FDPOE͋Δ͋Δ 12
1SPUPDPMΛ͏·͍͜ͱ͓͏ͱͯ͠ແݶϧʔϓͷίʔυॻ͖͕ͪ 13
14
protocol RequestProtocol { var dict: [String: String] { get }
} extension CommonRequestProtocol { var dict: [String: String] { // ͍࣋ͬͯΔશมΛྻʹͯ͠ฦ͢ॲཧ } } protocol CommonRequestProtocol: RequestProtocol { var dict: [String: String] { get } } extension CommonRequestProtocol { var dict: [String: String] { // RequestProtocolͷdictʹΞΫηε͔͕ͨͬͨ͠ɺɺɺ return self.dict.merging(["key": Const.Key], uniquingKeysWith: +) } } 15 EJDUͷதͰEJDUʹΞΫηεͯ͠ແݶϧʔϓʹʜ
ͪΌΜͱಈ࡞֬ೝPS5FTU͔ͯ͠ΒϓϧϦΫग़͠·͠ΐ͏ʂ 16
5IJSE͋Δ͋Δ 17
&OVNͷ"TTPDJBUFE7BMVFΛͬͯແବʹॲཧΛෳࡶʹ͕ͤͪ͞ 18
19
switch p { case .free(let isRental): if isRental { …
} case .ticket(let isRental): if isRental { … } } 20 ৗʹͭͷ݅Λҙࣝ͠ͳ͖Ό͍͚ͳ͍ͷͰॲཧ͕ෳࡶʹʜ
enum PublishingType { case free case ticket … } let
isRead: Bool 21 ͦΕͧΕผʑͷཁૉͳΜ͔ͩΒͦΕͧΕ࣋ͬͨ΄͏͕γϯϓϧʜ
"TTPDJBUFE7BMVF͍ॴΛߟ͍͑ͯͬͯ͜͏ʂ 22
·ͱΊ 23
w TU͋Δ͋Δ ɹ$FMMͷ࠶ར༻Ͱ7JFXΛෳճ"EE͕ͪ͠ w OE͋Δ͋Δ ɹ1SPUPDPMΛ͏·͍͜ͱ͓͏ͱͯ͠ ɹɹɹɹɹɹɹɹɹແݶϧʔϓͷίʔυॻ͖͕ͪ w SE͋Δ͋Δ ɹ&OVNͷ"TTPDJBUFE7BMVFΛͬͯ
ɹɹɹɹɹɹɹɹɹແବʹॲཧΛෳࡶʹ͕ͤͪ͞ 24
25 Ҏ্ɺ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ