SwiftUI【SwiftUI】NavigationViewが上手く画面遷移しない時の対応 SwiftUIではNavigationViewでの画面遷移がよく行われます。この画面遷移はユーザーの操作だけではなくコード側から行う事ができ、SceneStrageでの状態維持やDeepLinkでの起動時などにも使用します。 この画面遷移動... 2021.11.15SwiftUI
Swift【Swift】actorとActor属性(attribute)の違い SwiftのActorはactorとして宣言する方法とActor属性でマークする方法があります。この2つの使い方では様々な違いがあります。 ActorはActorインスタンス毎に排他制御されます。まずは分かりやすくactorで宣言した場合で... 2021.10.06SwiftSwiftUI
Swift【Swift】非同期処理について(async、await、actor) Swift5.5で非同期処理に大幅な追加が行われました。 非同期処理でお馴染みのasync、await、そして非同期処理に欠かせない排他制御の為のactorです。 async/await await async/awaitとよく言われますが... 2021.10.04SwiftSwiftUI
Swift【Swift】Actorがうまく動作しない(シミュレータ) Actorの動作確認は実機で行うべきです。シミュレータでは実機と異なる動作をする場合があります。 おそらくシミュレータに割り当てられているスレッド数が少ないようで、異なるActorでも同一スレッドで動作します。 結果として、本来は異なるAc... 2021.10.02SwiftSwiftUI
SwiftUI【SwiftUI】Actor Swift5.5(iOS15〜)でActorが追加されました。Actorにより排他アクセスを行う事ができ、非同期でスレッドセーフな処理を行う際に役立ちます。 Actorを使用するにはasync/awaitが前提知識として必要です。async... 2021.10.02SwiftUI
SwiftUI【SwiftUI】async/await Swift5.5(iOS15〜)でasync/awaitが追加されました。async/awaitは非同期処理を行う際に使用するもので、以前ではDispatchQueueを使っていたものを書き換える事ができます。 他の言語の非同期処理を行なっ... 2021.09.30SwiftUI
SwiftUI【SwiftUI】iOS15でUIKitを使うとメモリ排他アクセスでクラッシュする iOS15にアップデートした端末でテストしていると、iOS14では問題なかった箇所でクラッシュしていました。 UIViewControllerRepresentableで使用しているViewControllerでviewDidLoad内でa... 2021.09.27SwiftUI
SwiftUI【SwiftUI】iOS15でのATT(AppTrackingTransparency)対応 iOS15ではアプリ起動時にATTダイアログが出ません。ドキュメントでは以下の様に書いてあります。 Calls to the API only prompt when the application state is: UIApplicat... 2021.09.25SwiftUI
SwiftUI【SwiftUI】@StateにonAppearで代入しても反映されない(Xcode13、iOS15) SwiftUIでよく使用する@Stateですが宣言時に初期化しますが、イニシャライザを作成して初期化しても無効化されます。そこでよく使われていた方法がonAppearでの代入です。onAppearを使う事で@Stateが初期化された後に値を... 2021.09.24SwiftUI
SwiftUI【SwiftUI】Swift5.5およびiOS15におけるList表示の変化 Swift5.5およびiOS15にする事でListのデフォルトの表示が変わった様です。私のアプリでは変化があったので紹介します。 最低限の動作には影響しないかもしれませんが、UIが崩れている可能性があるので確認した方が良いと思います。 De... 2021.09.21SwiftUI