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
CSC305 Lecture 08
javiergs
PRO
0
280
業務でAIを使いたい話
hnw
0
170
SwiftDataを使って10万件のデータを読み書きする
akidon0000
0
250
Migration to Signals, Resource API, and NgRx Signal Store
manfredsteyer
PRO
0
130
Webサーバーサイド言語としてのRustについて
kouyuume
1
5k
TFLintカスタムプラグインで始める Terraformコード品質管理
bells17
2
480
Amazon ECS Managed Instances が リリースされた!キャッチアップしよう!! / Let's catch up Amazon ECS Managed Instances
cocoeyes02
0
110
ネストしたdata classの面倒な更新にさようなら!Lensを作って理解するArrowのOpticsの世界
shiita0903
1
170
釣り地図SNSにおける有料機能の実装
nokonoko1203
0
200
開発組織の戦略的な役割と 設計スキル向上の効果
masuda220
PRO
10
1.8k
bootcamp2025_バックエンド研修_WebAPIサーバ作成.pdf
geniee_inc
0
140
Leading Effective Engineering Teams in the AI Era
addyosmani
7
670
Featured
See All Featured
Designing for humans not robots
tammielis
254
26k
Practical Orchestrator
shlominoach
190
11k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Why Our Code Smells
bkeepers
PRO
340
57k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Automating Front-end Workflow
addyosmani
1371
200k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.2k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
YesSQL, Process and Tooling at Scale
rocio
173
15k
Build The Right Thing And Hit Your Dates
maggiecrowley
38
2.9k
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 Ҏ্ɺ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ