Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
251126 TestState APIってなんだっけ?Step Functionsテストどう変わる?
east_takumi
0
320
TypeScriptで設計する 堅牢さとUXを両立した非同期ワークフローの実現
moeka__c
6
3k
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
160
Rediscover the Console - SymfonyCon Amsterdam 2025
chalasr
2
160
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
380
手が足りない!兼業データエンジニアに必要だったアーキテクチャと立ち回り
zinkosuke
0
680
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
110
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
470
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
120
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
120
Giselleで作るAI QAアシスタント 〜 Pull Requestレビューに継続的QAを
codenote
0
180
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
410
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
698
190k
Documentation Writing (for coders)
carmenintech
76
5.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Agile that works and the tools we love
rasmusluckow
331
21k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Building Flexible Design Systems
yeseniaperezcruz
330
39k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
Being A Developer After 40
akosma
91
590k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
What's in a price? How to price your products and services
michaelherold
246
13k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
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 Ҏ্ɺ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ