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
Swift 5 Exclusivity Enforcement
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
darquro
February 12, 2019
Technology
900
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Swift 5 Exclusivity Enforcement
darquro
February 12, 2019
More Decks by darquro
See All by darquro
技術的負債を解消してくための組織づくり
darquro
1
1.1k
Jailbreakと向き合おう
darquro
0
3k
ラクマでのSwiftUI導入方針とTips / Rakuma SwiftUI Introduction Policy and Tips
darquro
2
5.6k
Half modal comparision in iOS15
darquro
2
2.9k
2 Years Challenge as Engineering Manager in Rakuma
darquro
0
160
Property Wrappersがもたらす新しいSwiftプログラミング / New Swift programming with Property Wrappers
darquro
3
1.8k
iOS View Class Design Basic
darquro
3
860
SDK連携を用いたAdMob活用法
darquro
1
1.1k
ContributingSwift
darquro
0
120
Other Decks in Technology
See All in Technology
AI、CDK と協働する Full TypeScript アプリケーション開発 / Full TypeScript Application with AI and CDK
geekplus_tech
2
490
Amplify Gen2でbackend.tsにCDKを定義する/しない事によるCDKの挙動の違いとユースケース
smt7174
1
500
壊して学ぶAWS CDK: そのcdk deployで消えるもの、残るもの
k_adachi_01
1
490
伝票作成AIエージェントを支える、LLMOpsとインフラの選択肢 / AICon2026_takeda
rakus_dev
0
270
2026年のソフトウェア開発を考える(2026/07版) / Agentic Software Engineering 2026-07 Findy Edition
twada
PRO
26
12k
AI時代のPlaywright活用(システムテストを自動化する ー 実行エンジンにPla ywrightを選んだ理由)
ynisqa1988
2
980
Alphaモジュール使っていいのかい!?いけないのかい!?どっちなんだいっ!?
watany
1
320
AIツールを導入しても生産性はあがらない? カオナビが直面した 3つの壁と乗り越え方。/ Overcoming 3 Barriers to AI-Driven Productivity at kaonavi
kaonavi
0
230
AmplifyHostingConstructからSSRフレームワークのためのホスティング設計を考察する/amplify-hosting-construct
fossamagna
1
310
Webの技術とガジェットで子どもも大人も楽しめるワクワク体験を提供する / Qiita Tech Festa Day 2026
you
PRO
1
240
「休む」重要さ
smt7174
6
1.6k
AI時代の開発生産性は、個人技からチーム設計へ
moongift
PRO
4
2.5k
Featured
See All Featured
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
180
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
410
A Modern Web Designer's Workflow
chriscoyier
698
190k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
460
Abbi's Birthday
coloredviolet
3
8.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.5k
Raft: Consensus for Rubyists
vanstee
141
7.6k
Skip the Path - Find Your Career Trail
mkilby
1
170
Product Roadmaps are Hard
iamctodd
55
12k
Transcript
Re:valua t ion https://fril.jp/ L ead & Delight User F
irst Ownership Fail Smart 4XJGU&YDMVTJWJUZ&OGPSDFNFOU 'FCUI BU4XJGUѪձWPM
.PCJMF&OHJOFFS 3BLVUFO JOD "CPVU.F :VLJ,VSPEB !EBSRVSP !EBSRVSP
None
4XJGU&YDMVTJWJUZ&OGPSDFNFOU IUUQTTXJGUPSHCMPHTXJGUFYDMVTJWJUZ
#BDLHSPVOE
#BDLHSPVOE 4XJGUͰϝϞϦ҆શੑΛ୲อ͢ΔͨΊʹɺ ഉଞతΞΫηε͕ඞཁ
#BDLHSPVOE func modifyTwice(_ value: inout Int, by modifier:
(inout Int) -> ()) { modifier(&value) modifier(&value) } func testCount() { var count = 1 modifyTwice(&count) { $0 += count } print(count) }
#BDLHSPVOE func modifyTwice(_ value: inout Int, by modifier:
(inout Int) -> ()) { modifier(&value) modifier(&value) } func testCount() { var count = 1 modifyTwice(&count) { $0 += count } print(count) } 0WFSMBQQJOHBDDFTTFTUPDPVOU CVUNPEJpDBUJPOSFRVJSFTFYDMVTJWF BDDFTTDPOTJEFSDPQZJOHUPBMPDBMWBSJBCMF
#BDLHSPVOE w ಉ࣌ΞΫηεʹରͯ͠ίϯύΠϥಈ࡞Λอূ͠ͳ͍ w ίϯύΠϥͷΦϓςΟϚΠθʔγϣϯʹΑΓɺ༧ଌͰ ͖ͳ͍ಈ࡞ʹͳΔ͜ͱ͕͋Δɻ w 4XGJUͰഉଞతΞΫηεͷڧ੍Λಋೖͨ͠ɻ
4& IUUQTHJUIVCDPNBQQMFTXJGUFWPMVUJPOCMPCNBTUFSQSPQPTBMTFOGPSDF FYDMVTJWFBDDFTTUPNFNPSZNE
#BDLHSPVOE ίϯύΠϥͷഉଞతΞΫηεͷڧ੍ w ίϯύΠϧ࣌νΣοΫ $PNQJMFUJNF w ࣮ߦ࣌νΣοΫ
3VOUJNF
#BDLHSPVOE 4XJGU 4XJGU $PNQJMFUJNF %FCVH#VJME 3FMFBTF#VJME %FCVH#VJME 3FMFBTF#VJME
3VOUJNF %FCVH#VJME %FCVH#VJME 3FMFBTF#VJME ഉଞతϝϞϦΞΫηεͷEFGBVMUઃఆ
*NQBDUPO4XJGU1SPKFDUT
*NQBDUPO4XJGU1SPKFDUT طଘϓϩδΣΫτͷӨڹ w ഉଞϧʔϧʹҧ͍ͯͯ͠ɺσόοάςετͰ࣮ߦͰ ͖ͳ͔ͬͨίʔυʹରͯ͠Ϋϥογϡ͢ΔՄೳੑ w ύϑΥʔϚϯεʹӨڹ͕ͰΔՄೳੑ͕͋Δɻ w
ಛʹϧʔϓॲཧʹ͓͍ͯҟͳΔΦϒδΣΫτؒͰΞΫηε͢Δ߹ʹҙ͢Δɻ w ΫϥεͷϓϩύςΟͳͲQSJWBUFͱ͔JOUFSOBMʹ͢Δ͜ͱͰίϯύΠϥʹ໌ࣔతʹ ͑ΔͳͲ͕ඞཁɻ
*NQBDUPO4XJGU1SPKFDUT 9DPEFͰl&YDMVTJWF"DDFTTUP.FNPSZzͰมߋͰ͖Δ͕ɺ ύϑΥʔϚϯε༏ઌͷͨΊͷϦϦʔεϏϧυͰແޮʹ͢Δ͜ͱ ਪ͠ͳ͍ɻ ΫϥογϡϝϞϦഁյͳͲ༧ظ͠ͳ͍ڍಈΛট͘Մೳੑ
&YBNQMFT
&YBNQMF func modifyTwice(_ value: inout Int, by modifier:
(inout Int) -> ()) { modifier(&value) modifier(&value) } func testCount() { var count = 1 let incrementBy = count modifyTwice(&count) { $0 += incrementBy } print(count) }
&YBNQMF func modifyTwice(_ value: inout Int, by modifier:
(inout Int) -> ()) { modifier(&value) modifier(&value) } var count = 1 modifyTwice(&count) { $0 += count } print(count) 4JNVMUBOFPVTBDDFTTUPY CVUNPEJpDBUJPOSFRVJSFTFYDMVTJWFBDDFTT
.PUJWBUJPO
.PUJWBUJPO ϓϩάϥϜͷن͕େ͖͘ͳΔʹͭΕɺͲ͜ͰͲ͏ ͕มߋ͞ΕΔͷ͔ঢ়ଶ͕༧ଌͰ͖ͳ͍ ݴޠ༷ͱͯ͠༧ଌෆೳͳৼΔ͍Λഉআ "#*҆ఆੑʹෆՄܽ
ύϑΥʔϚϯεͷ࠷దԽ 0XOFSTIJQͱNPWFPOMZUZQFTʹඞཁ
·ͱΊ
4XJGU&YDMVTJWJUZ&OGPSDFNFOU w 4XJGUͰഉଞతϝϞϦΞΫηεͷ࣮ߦ࣌νΣοΫ͕ ϦϦʔεϏϧυͰσϑΥϧτ༗ޮͱͳΔ w 4XJGUͷ҆શੑɺݎ࿚ੑ͕ڧԽ w ύϑΥʔϚϯεʹର͢ΔΦϓςΟϚΠθʔγϣϯͷ্
5IBOLZPVGPSMJTUFOJOH