SwiftUI

【SwiftUI】@StateにonAppearで代入しても反映されない(Xcode13、iOS15)

SwiftUIでよく使用する@Stateですが宣言時に初期化しますが、イニシャライザを作成して初期化しても無効化されます。そこでよく使われていた方法がonAppearでの代入です。onAppearを使う事で@Stateが初期化された後に値を...
SwiftUI

【SwiftUI】Swift5.5およびiOS15におけるList表示の変化

Swift5.5およびiOS15にする事でListのデフォルトの表示が変わった様です。私のアプリでは変化があったので紹介します。 最低限の動作には影響しないかもしれませんが、UIが崩れている可能性があるので確認した方が良いと思います。 De...
開発全般

AdMobのテスト広告が再生出来なくなった

今まで動作していたテスト広告が突然動かなくなりました。特に広告の箇所のコードは変えて居ませんが、9月に入った辺りで動かなくなったと思われます。なおテスト広告のみでリリース版は問題なく動作しています。 以下のエラーが出て居ました。 Canno...
SwiftUI

【SwiftUI】ObservableObjectについて(クラス、入れ子、配列など)

SwiftUIのObservableObjectはViewの再描画に便利ですが、思ったように動かない事が結構あるのでまとめました。 ObservableObjectとは ざっくり言うと@Publishedを指定した値を監視し、Viewを更新...
SwiftUI

【SwiftUI】ローカル通知と通知からのアプリ起動(DeepLink)

SwiftUIアプリでローカル通知を出し、通知から起動後に自動で画面遷移を行います。通知はバックグラウンドとフォアグラウンドに対応、アプリは起動済みにも未起動にも対応しています。 特にアプリ未起動時の通知からの起動は、AppDelegate...
Swift

【SwiftUI】ローカル通知

SwiftUIアプリで作ってるので一応タイトルにSwiftUIと付けていますが、通知部分は大した他と変わりません。 SwiftUI的な部分はObservableObjectに持たせてEnvironmentObjectで使ってる程度のもので、...
Swift

ATT(App Tracking Transparency)でrejectを繰り返した話

2021年7月半ばに新規アプリでAdmobを実装して申請したらATT(App Tracking Transparency)で繰り返しリジェクトくらいました。 実装自体は最初からしていたのですが、どうも担当者に認識してもらえなかったようでAT...
SwiftUI

【SwiftUI】SceneStorageで画面遷移状態の維持

SceneStorageで画面遷移状態の維持が簡単に出来ます。Appleのアプリ状態の維持に関するドキュメントとサンプルはこちら。 そのままだと結構色々やってあるので、今回はNavigationLinkだけ抜き出して最小限の構成で紹介します...
SwiftUI

【SwiftUI】UserDefaultsを@AppStorageから使おう

Swiftでデータを永続化する際に気軽に使えて便利なUserDefaultsですが、SwiftUIであれば@AppStorageを使う事で簡単に使用できます。 @AppStorageはUserDefaultsを監視するProperty Wr...
SwiftUI

【SwiftUI】PreviewのSimulator残留

SwiftUIのpreview機能はLive Previewで簡単に動作確認までできて非常に便利です。しかし動作確認出来るということは当然シミュレータが動作しています。previewのエラーログを見ると分るものがあると思います。 このシミュ...