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
iOSDC2024ポスター:Swift 6に備えよう!Upcoming Feature Fla...
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
野瀬田 裕樹
May 12, 2025
Programming
89
0
Share
iOSDC2024ポスター:Swift 6に備えよう!Upcoming Feature Flagsを全て解説します!
iOSDC2024で掲示したポスター資料です
野瀬田 裕樹
May 12, 2025
More Decks by 野瀬田 裕樹
See All by 野瀬田 裕樹
iOS26時代の新規アプリ開発
yuukiw00w
0
120
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
320
Human Interface Guidelines 2
yuukiw00w
0
57
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
270
HIG学習用スライド
yuukiw00w
0
180
FlutterKaigi 2025: What is iOS Assistive Access? UI considerations for Flutter
yuukiw00w
0
56
Swift6.2時代のconcurrencyを考える会
yuukiw00w
1
1.6k
実践!App Intents対応
yuukiw00w
1
490
App Intents再入門
yuukiw00w
0
83
Other Decks in Programming
See All in Programming
過去のレビュー知見をSkillsで資産化した話
pkshadeck
PRO
1
2k
Structured Concurrency, Scoped Values and Joiners in the JDK 25 26 27
josepaumard
1
150
How We Practice Exploratory Testing in Iterative Development( #scrumniigata ) / 反復開発の中で、探索的テストをどう実施しているか
teyamagu
PRO
3
850
Agentic Elixir
whatyouhide
0
450
Agentic AI & UI: Arcitecture, HITL, Emerging Standards
manfredsteyer
PRO
0
110
From Formal Specification to Property Based Test
ohbarye
0
2.6k
Import assertionsが消えた日~ECMAScriptの仕様はどう決まり、なぜ覆るのか~
bicstone
2
180
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
0
170
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
4
460
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
150
書き換えて学ぶTemporal #fukts
pirosikick
2
380
要はバランスからの卒業 #yumemi_grow
kajitack
0
170
Featured
See All Featured
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.1k
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
Utilizing Notion as your number one productivity tool
mfonobong
4
300
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
65
54k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
190
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
How GitHub (no longer) Works
holman
316
150k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
180
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
180
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
280
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Code Review Best Practice
trishagee
74
20k
Transcript
GlobalConcurrency 概要:グローバル変数にデータ競合の可能性があると警告を表示してくれる 対処法:globalアクターに隔離する or immutableかつSendableにする 対処法1:globalアクターに隔離 対処法2:immutableかつSendable 1/10
IsolatedDefaultValues 概要:stored property/関数の引数のデフォルト値の式が、stored property/関数 に指定されているActorと同じActorで隔離されるようになる 対処法:該当の関数/stored propertyが適切なActor隔離になるように修正を行う 例えばこのようなactor隔離されてないinitで は明示的にstored propertyに初期値を設定
する必要がある (IsolatedDefaultValuesが無効だとビルドが 通るが、このinitはデータ競合の可能性があ る) 2/10
DisableOutwardActorInference 概要:property wrapperを使ったときに、型のアクター隔離が推測されなくなる 対処法:property wrapperで暗黙的にアクター隔離されていた箇所を 明示的に隔離する 元々暗黙的にMainActorWrapperの MainActorを引き継いでしまう仕様 DisableOutwardActorInferenceを有効にして 同じ挙動にしたい場合、@MainActorを付与する
3/10
ImportObjcForwardDeclarations 概要:objcで前方宣言されたinterface/protocolがSwiftでimportできるようになる ImportObjcForwardDeclarationsを有効にする と色々importしなくても使えるようになる 4/10
BareSlashRegexLiterals 概要:Regex Literalsが使える(compileチェックとtyped-capture推論もされる) /…/の形式で正規表現リテラルが書け る Enable Bare Slash Regex LiteralsをYESに
設定することでも有効化できる 5/10
ImplicitOpenExistentials 概要:存在型の値をgeneric関数に渡せる(基底型が暗黙的に開かれる) 実はImplicitOpenExistentialsを 有効にしなくてもSwift 5.10でビルドが通る (Any.Typeの存在メタタイプを開く機能については Swift 6環境のSwift 5互換モードでフラグを有効にす ると使える)
anyP(存在型)の中身を渡す(開く)形になるので、 (generic関数に)Pに適合した型として渡せる 6/10
ExistentialAny 概要:存在型には全てanyを付けなければならなくなる 対処法:存在型にanyを付ける protocolの前にanyを入れると警告が消える (Fixしても同じ) 7/10
ForwardTrailingClosures 概要:trailing closuresのスキャンが前方からになる ForwardTrailingClosuresが 有効だとこれはfirstのクロージャとして認識される (無効だとsecondとして認識される) 8/10
ConciseMagicFile 概要:#fileの評価がFullPathから<ModuleName>/<fileName>に変更される 対処法:もし従来挙動のものが欲しい場合は#filePathを使用する ConciseMagicFileを有効にすると#fileが 元々の値(#filePathの値)と違う値になる 9/10
概要:@UIApplicationMainと@NSApplicationMainが非推奨になる 対処法:@mainを使用する ※ 本ポスターではSwift 6より前に使える Upcoming Feature Flagsを解説しています。 Other Swift
Flagsに -enable-upcoming-feature DeprecateApplicationMain のように追加する と有効化できます。 DeprecateApplicationMain @mainに置き換えると警告が消える 全てのサンプルコードを見たい方はこちら → https://github.com/yuukiw00w/iosdc-2024-poster 10/10