アプリ開発の逆引き辞典

アプリ開発のTipsをまとめました

Firebase Analytics for iOSで setScreenName(_:screenClass:) がdeprecatedになった

Firebase Analytics for iOSを 6.6.2 から 6.7.0 へアップデートしたところ、setScreenName(_:screenClass:) でdeprecatedになったよと警告が出るようになりました。 開発中のアプリでは下記のようなメソッドで画面名をトラッキングしています。 import Fire…

Swiftで 数字がキーになっているJSONデータをデシリアライズする

下記のように店舗情報のキーが数字になっているJSONデータをデシリアライズできるか?と質問があり回答しました。 { "response": { "total_hit_count": 4, "0": { "shop_id": "6072772", "shop_name": "店舗A" }, "1": { "shop_id": "6072773", "shop_name":…

SwiftUIで UIActivityViewControllerを使って Tweetbotへ画像を共有して文字入力すると勝手にdismissされてしまう

iOSでテキストデータや画像を共有したい場合、UIActivityViewController を使用します。 SwiftUIではこのUIActivityViewControllerをラッピングして利用すると便利です。SwiftUIでUIActivityViewController を使う方法については「SwiftUIで UIActivityViewC…

SwiftUIで NavigationLinkで遷移した画面から戻ってきたときのイベントをハンドルしたい

NavigationLinkを使って画面Aから画面Bへ遷移して、画面Bから戻ったときにたとえばデータの再読み込みなどなんらかの処理をしたいが、普通にViewを書いていると 戻ってきたときに onAppear が呼ばれない現象が発生する。 本記事では、NavigationLinkを使って…

SwiftUIで Listの同じ行に複数のButtonを置くと両方とも反応してしまい個別にタップできない

SwiftUIで List の同じ行に複数の Button を置くと、すべてのButtonのアクションイベントが発生してしまい、それぞれのボタンを個別にタップできない。 本記事では、個別にタップする方法と、よりボタンらしく見せるために ButtonSyle を利用する方法を紹介…

SwiftUIで システムで定義されているUIColorの色を使いたい

SwiftUIでは直接UIColorを使うことができません。 実行環境 Xcode 11.6 iOS 13.6 UIColor to Color UIColorをSwiftUIのColorに変換するのは簡単です。 let color = Color(UIColor.label) システムで定義されているUIColorの色を使いたい Xcode 11.6時点で不…

SwiftUIで UIActivityViewControllerを使って画像を共有する

iOSで画像やテキストなどを他のアプリへシェアするときには UIActivityViewController を利用する。SwiftUIでも UIActivityViewControllerを使って画像を共有する処理を紹介する。 実行環境 Xcode 11.6 iOS 13.6 UIActivityViewControllerを使って画像を共有…