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
野瀬田 裕樹
May 12, 2025
Programming
0
12
iOSDC2024ポスター:Swift 6に備えよう!Upcoming Feature Flagsを全て解説します!
iOSDC2024で掲示したポスター資料です
野瀬田 裕樹
May 12, 2025
Tweet
Share
More Decks by 野瀬田 裕樹
See All by 野瀬田 裕樹
Flutterで備える!Accessibility Nutrition Labels完全ガイド
yuukiw00w
0
120
WWDC25要約:Evaluate your app for Accessibility Nutrition Labels
yuukiw00w
0
37
モバイルアプリ設計入門
yuukiw00w
0
5
Swiftは最高だよの話
yuukiw00w
2
320
SwiftでよりSwiftyに
yuukiw00w
0
9
より良いLint設定を追い求めて
yuukiw00w
0
90
FlutterにPull Requestを 投げてみよう!
yuukiw00w
0
34
半年で成果を出すチーム作り(Flutterチームの組成の話)
yuukiw00w
0
37
Other Decks in Programming
See All in Programming
Team operations that are not burdened by SRE
kazatohiei
1
280
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
530
AIコーディング道場勉強会#2 君(エンジニア)たちはどう生きるか
misakiotb
1
270
A2A プロトコルを試してみる
azukiazusa1
2
1.3k
ReadMoreTextView
fornewid
1
490
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
1
590
Azure AI Foundryではじめてのマルチエージェントワークフロー
seosoft
0
150
Kotlin エンジニアへ送る:Swift 案件に参加させられる日に備えて~似てるけど色々違う Swift の仕様 / from Kotlin to Swift
lovee
1
260
エラーって何種類あるの?
kajitack
5
320
Systèmes distribués, pour le meilleur et pour le pire - BreizhCamp 2025 - Conférence
slecache
0
110
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
320
明示と暗黙 ー PHPとGoの インターフェイスの違いを知る
shimabox
2
380
Featured
See All Featured
Being A Developer After 40
akosma
90
590k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
20
1.3k
Become a Pro
speakerdeck
PRO
28
5.4k
How to Ace a Technical Interview
jacobian
277
23k
Thoughts on Productivity
jonyablonski
69
4.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
42
7.4k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
800
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Writing Fast Ruby
sferik
628
62k
Statistics for Hackers
jakevdp
799
220k
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